module StateStore::Extension::InstanceMethods

Public Class Methods

included(base) click to toggle source
# File lib/state_store/extension.rb, line 71
def self.included(base)
  def method_missing(method_name, *args)
    state_method_name = method_name.to_s.match(/^has_(\w+)\?$/)
    state_method_name = state_method_name && state_method_name[1].to_sym
    if state_method_name
      options = self.class.states_stores_options.detect{|key,value| value[:in].to_sym == state_method_name}
      options = options && options[1]
      if options
        instance_method_name = options && options[:in]
        self.class.states_stores[options[:as]].has_status?(args[0],self.send(instance_method_name))
      else
        super
      end
    else
      super
    end
  end 
end

Public Instance Methods

method_missing(method_name, *args) click to toggle source
Calls superclass method
# File lib/state_store/extension.rb, line 72
def method_missing(method_name, *args)
  state_method_name = method_name.to_s.match(/^has_(\w+)\?$/)
  state_method_name = state_method_name && state_method_name[1].to_sym
  if state_method_name
    options = self.class.states_stores_options.detect{|key,value| value[:in].to_sym == state_method_name}
    options = options && options[1]
    if options
      instance_method_name = options && options[:in]
      self.class.states_stores[options[:as]].has_status?(args[0],self.send(instance_method_name))
    else
      super
    end
  else
    super
  end
end