Skip to content

Instantly share code, notes, and snippets.

Mitch VanDuyn catmando

View GitHub Profile
View hyper_store.rb
module HyperStore
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def state_reader(state_name)
define_method(state_name) { React::State.get_state(self, state_name) }
end
end
# render {}
View date_picker.rb
class DateTimePicker < React::Component::Base
param :record # typically an active_record model, but can be any object really
param :field # attr (read and write) of the object to be updated.
after_mount do
initialize_timepicker
initialize_datepicker
end
def initialize_timepicker
@catmando
catmando / controller_op.rb
Last active Jun 22, 2017
hyper operation Controller Operation experimental patch
View controller_op.rb
# app/hyperloop/operations/controller_op.rb
# make sure to also require 'operations/controller_op'
# at the *END* of config/initializers/hyperloop.rb
module Hyperloop
# monkey patch HyperloopController to pass controller instance from controller method to ServerOp
Engine.routes.append do
View mapper.rb
class Something
def self.display_map
[
{
key: :position,
name: 'Number'
},
{
key: :design_collection,
name: 'Collection',
@catmando
catmando / gist:096c29d0fb06873ad978
Last active Sep 27, 2017
Carrierwave Custom Version
View gist:096c29d0fb06873ad978
class CustomUploader < CarrierWave::Uploader::Base
# complete example of custom carrierwave version generator that does not use manipulate with hopefully helpful comments
# in this case we are uploading a .psd (photoshop file) and then rendering to a png. We want to
# save the original psd, so we create a png version.
storage :file
version :png do # tells carrierwave to generate a new version of the upload in this case a "png"
@catmando
catmando / linked_list.rb
Created Oct 13, 2017
Translate this code please
View linked_list.rb
class Node
# each node has a val (value) and a link to the next node.
def val # reads the instance variable val
@val
end
def next_node # reads the instance variable next_node
@next_node
View todo-item-compare-react.jsx
import React, {Component} from 'react';
import './ToDoItem.css';
class ToDoItem extends Component {
render() {
return (
<div className="ToDoItem">
<p className="ToDoItem-Text">{this.props.item}</p>
<button className="ToDoItem-Delete"
View todo-item-compare-hyperstack.rb
class TodoItem < HyperComponent
param :item
fires :delete_item
render(DIV, class: 'ToDoItem') do
P(class: 'ToDoItem-Text') { @Item }
BUTTON(class: 'ToDoItem-Delete').on(:click) { delete_item! }
end
end
View todo-compare-react.jsx
import React, {Component} from 'react';
import './ToDo.css';
import ToDoItem from './components/ToDoItem';
import Logo from './assets/logo.png';
class ToDo extends Component {
constructor(props) {
super(props);
this.state = {
// this is where the data goes
View todo-compare-hyperstack.rb
class TodoIndex < HyperComponent
# TodoIndex is the conventional name for listing
# a set of items.
INITIAL_TODOS = [
{
todo: 'clean the house'
},
{
todo: 'buy milk'
}
You can’t perform that action at this time.