Class: ConditionalMessages::Collection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/conditional_messages/collection.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



23
24
25
# File 'lib/conditional_messages/collection.rb', line 23

def [](key)
  ReadCategory.new(categories.fetch(key.to_s))
end

#categoriesObject



19
20
21
# File 'lib/conditional_messages/collection.rb', line 19

def categories
  @categories ||= {}
end

#category(name, &definition) ⇒ Object



12
13
14
15
16
17
# File 'lib/conditional_messages/collection.rb', line 12

def category(name, &definition)
  category = Category.new(name.to_s)
  categories[name.to_s] = category
  category.define(&definition) if definition
  category
end

#define(&definition) ⇒ Object



8
9
10
# File 'lib/conditional_messages/collection.rb', line 8

def define(&definition)
  instance_eval(&definition)
end

#eachObject



27
28
29
30
31
# File 'lib/conditional_messages/collection.rb', line 27

def each
  categories.each do |name, category|
    yield self[name]
  end
end