module SSM::ClassMethods

Public Instance Methods

state_validation(*states) { |resource| ... } click to toggle source
# File lib/ssm/ssm.rb, line 14
def state_validation(*states, &block)
  states.each do |state|
    is_state = (state.to_s + "?").to_sym
    with_options if: is_state do |resource|
      yield resource
    end
  end
end
states(*_states) click to toggle source
# File lib/ssm/ssm.rb, line 7
def states(*_states)
  _states.each do |state|
    define_state_boolean(state)
    define_state_scope(state)
  end
end

Private Instance Methods

define_state_boolean(_state) click to toggle source
# File lib/ssm/ssm.rb, line 24
def define_state_boolean(_state)
  method_name = "#{ _state }?"
  define_method method_name do
    self.state == _state.to_s
  end
end
define_state_scope(_state) click to toggle source
# File lib/ssm/ssm.rb, line 31
def define_state_scope(_state)
  self.send :scope, _state, -> do
    where(state: _state)
  end
end