Module: ActionJackson::DSL

Defined in:
lib/action_jackson/dsl.rb

Instance Method Summary collapse

Instance Method Details

#action(opts, &block) ⇒ Object Also known as: filter



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/action_jackson/dsl.rb', line 3

def action(opts, &block)
  @@deps ||= {}
  case opts
  when String
    return super(opts)
  when Symbol
    name = opts
  when Hash
    name = opts.keys.first
    @@deps[name] =  opts[name]
  end
  define_method(name, block)
end

#register_filter(dependent, dependency) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/action_jackson/dsl.rb', line 31

def register_filter(dependent, dependency)
  case @@deps[dependency].class
  when String
    register_filter(dependency, @@deps[dependency])
  when Array
    @@deps[dependency].each do |dependencydependency|
      register_filter(dependency, dependencydependency)
    end
  end
  send(:before_filter, dependency, :only => dependent)
end

#register_filtersObject

How else can we hook into closing the class?



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/action_jackson/dsl.rb', line 18

def register_filters
  @@deps.each do |dependent, dependencies|
    case dependencies
    when Symbol
      register_filter(dependent, dependencies)
    when Array
      dependencies.each do |dependency|
        register_filter(dependent, dependency)
      end
    end
  end
end