class Flattery::Settings

Attributes

klass[RW]
raw_settings[RW]
resolved[RW]
resolved_settings[RW]

Public Class Methods

new(klass=nil) click to toggle source
# File lib/flattery/settings.rb, line 8
def initialize(klass=nil)
  self.klass = klass
  reset!
end

Public Instance Methods

add_setting(options={}) click to toggle source
# File lib/flattery/settings.rb, line 13
def add_setting(options={})
  if options.nil?
    reset!
    return
  end
  return if options.empty?
  unresolved!
  self.raw_settings << parse_option_setting(options)
end
parse_option_setting(options) click to toggle source

Process options and return a standardised raw_setting hash

# File lib/flattery/settings.rb, line 24
def parse_option_setting(options)
  cache_options = setting_template

  opt = options.symbolize_keys
  as_setting = opt.delete(:as).try(:to_s)
  method_setting = opt.delete(:method).try(:to_sym)
  background_setting = opt.delete(:background_with).try(:to_sym)
  batch_size_setting = opt.delete(:batch_size).try(:to_i)

  if from_entity = opt.keys.first
    cache_options[:from_entity] = from_entity
    cache_options[:to_entity] = opt[from_entity].try(:to_sym)
  end
  cache_options[:as] = as_setting
  cache_options[:method] = method_setting if method_setting
  cache_options[:background_with] = background_setting if background_setting
  cache_options[:batch_size] = batch_size_setting if batch_size_setting

  cache_options
end
reset!() click to toggle source

Command: clear/reset all settings

# File lib/flattery/settings.rb, line 56
def reset!
  self.raw_settings = []
  self.resolved_settings = {}
  self.resolved = false
end
resolve_settings!() click to toggle source

Command: sets resolved_settings. Returns true if resolution was success (which will set the resolution status)

# File lib/flattery/settings.rb, line 71
def resolve_settings!
  true
end
setting_template() click to toggle source

Returns the basic settings template

# File lib/flattery/settings.rb, line 46
def setting_template
  {}
end
settings() click to toggle source

Returns resolved settings

# File lib/flattery/settings.rb, line 63
def settings
  unless resolved
    self.resolved = resolve_settings!
  end
  self.resolved_settings
end
unresolved!() click to toggle source

Command: mark settings as unresolved

# File lib/flattery/settings.rb, line 51
def unresolved!
  self.resolved = false
end