module Atomsphere::Action::InstanceMethods
Public Class Methods
extended(base)
click to toggle source
# File lib/atomsphere/action.rb, line 75 def self.extended base %w(required one_of optional).each do |m| base.class_variable_set :"@@#{m}", [] end method_name = base.name.split('::').last.snakecase Atomsphere.define_singleton_method(method_name) do |*params| base.new(*params).run end end
Public Instance Methods
action(a)
click to toggle source
# File lib/atomsphere/action.rb, line 86 def action a class_variable_set :@@action, a end
api_method(m)
click to toggle source
# File lib/atomsphere/action.rb, line 90 def api_method m class_variable_set :@@api_method, m end
one_of(*params)
click to toggle source
# File lib/atomsphere/action.rb, line 108 def one_of *params if params.size < 2 raise ArgumentError, "one_of requires two or more parameters" end class_variable_get(:@@one_of) << [*params] params.each{ |param| attr_accessor param } end
optional(*params)
click to toggle source
# File lib/atomsphere/action.rb, line 101 def optional *params params.each do |param| class_variable_get(:@@optional) << param attr_accessor param end end
required(*params)
click to toggle source
# File lib/atomsphere/action.rb, line 94 def required *params params.each do |param| class_variable_get(:@@required) << param attr_accessor param end end