Module: Wukong::HashlikeClass

Defined in:
lib/wukong/extensions/hashlike_class.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/wukong/extensions/hashlike_class.rb', line 35

def self.included base
  base.class_eval do
    extend ClassMethods
    include HashLike
    class_inheritable_accessor :members

    def to_hash *args
      super(*args).merge 'type' => self.class.to_s
    end
  end
end

Instance Method Details

#[](key) ⇒ Object



19
20
21
# File 'lib/wukong/extensions/hashlike_class.rb', line 19

def [](key)
  self.send(key)
end

#[]=(key, val) ⇒ Object



23
24
25
# File 'lib/wukong/extensions/hashlike_class.rb', line 23

def []=(key, val)
  self.send("#{key}=", val)
end

#to_aObject



27
28
29
# File 'lib/wukong/extensions/hashlike_class.rb', line 27

def to_a
  values_of(*members)
end

#to_flatObject



31
32
33
# File 'lib/wukong/extensions/hashlike_class.rb', line 31

def to_flat
  to_a.map(&:to_flat).flatten
end