module MethodAttributes
Public Instance Methods
define(klass, param_name, &block)
click to toggle source
# File lib/clean-annotations/method_attr.rb, line 7 def define klass, param_name, &block klass.define_singleton_method(param_name) do |*args| @@METHOD_OPTS[param_name] ||= [] @@METHOD_OPTS[param_name].push block ? block.call(*args) : args end klass.define_singleton_method(:method_added) do |name| return unless @@METHOD_OPTS.keys.first @@GLOBAL_OPTS[to_s] ||= {} @@GLOBAL_OPTS[to_s][name] = @@METHOD_OPTS.dup @@METHOD_OPTS.clear end end
get(klass, method_name=nil)
click to toggle source
# File lib/clean-annotations/method_attr.rb, line 22 def get klass, method_name=nil return @@GLOBAL_OPTS[klass.to_s] unless method_name klass.ancestors.map(&:to_s).each do |a_klass| v = @@GLOBAL_OPTS[a_klass][method_name] return v if v end end