Module: Cases::ClassMethods

Defined in:
lib/cases.rb

Instance Method Summary collapse

Instance Method Details

#casesObject



29
30
31
# File 'lib/cases.rb', line 29

def cases
  Case.all
end

#define_case(method, cases) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/cases.rb', line 13

def define_case(method, cases)
  if block_given?
    define_case_with_block(method, cases, &Proc.new)
  else
    cases.each_pair do |event, action|
      Case.new(method, event, { on_self: true }, &Proc.new { |object| object.send(action) })
    end
  end

  define_execute_cases(method)
end

#define_caseable(method) ⇒ Object



25
26
27
# File 'lib/cases.rb', line 25

def define_caseable(method)
  proxy_result(method) { |result, &block| Caseable.execute(result, &block) }
end