Module: StateHandler::Mixing::ClassMethods
- Defined in:
- lib/state-handler/mixing.rb
Instance Method Summary collapse
- #class_attribute(*attrs) ⇒ Object
- #code(*codes, &block) ⇒ Object
- #group(name, &block) ⇒ Object
- #map(&block) ⇒ Object
- #match(regexp) ⇒ Object
Instance Method Details
#class_attribute(*attrs) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/state-handler/mixing.rb', line 75 def class_attribute(*attrs) attrs.each do |name| class_eval " def self.\#{name}() nil end\n def self.\#{name}?() !!\#{name} end\n\n def self.\#{name}=(val)\n singleton_class.class_eval do\n define_method(:\#{name}) { val }\n end\n val\n end\n RUBY\n end\nend\n", __FILE__, __LINE__ + 1 |
#code(*codes, &block) ⇒ Object
103 104 105 106 107 108 109 |
# File 'lib/state-handler/mixing.rb', line 103 def code(*codes, &block) if codes.first.kind_of?(Hash) create(codes.first.values.first, codes.first.keys.first) elsif block_given? create(yield, codes) end end |
#group(name, &block) ⇒ Object
111 112 113 114 115 |
# File 'lib/state-handler/mixing.rb', line 111 def group(name, &block) @current_group = name.to_sym class_eval(&block) @current_group = nil end |
#map(&block) ⇒ Object
91 92 93 94 95 |
# File 'lib/state-handler/mixing.rb', line 91 def map(&block) # TODO: refactor # Create Dsl class class_eval(&block) end |
#match(regexp) ⇒ Object
97 98 99 100 101 |
# File 'lib/state-handler/mixing.rb', line 97 def match(regexp) state = regexp.values.first self.patterns[state] = regexp.keys.first add_to_group(state) end |