Module: L43Peg::Box
- Defined in:
- lib/l43_peg/box.rb
Instance Attribute Summary collapse
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#value ⇒ Object (readonly)
Returns the value of attribute value.
6 7 8 |
# File 'lib/l43_peg/box.rb', line 6 def value @value end |
Class Method Details
.make(class_name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/l43_peg/box.rb', line 9 def make(class_name) case class_name when String, Symbol make_new(class_name) when Class class_name else raise ArgumentError, "need a string, symbol or class, got: #{class_name.inspect}" end end |
.make_new(class_name) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/l43_peg/box.rb', line 20 def make_new(class_name) klass = Object.const_get(class_name) if Object.const_defined?(class_name) raise NotABox, "#{class_name} is already defined but not a Box!" if klass && !(klass < self) klass = Object.const_set(class_name, Class.new.include(self)) unless klass klass end |
Instance Method Details
#deconstruct_keys ⇒ Object
28 |
# File 'lib/l43_peg/box.rb', line 28 def deconstruct_keys(*) = {class: self, value:} |