class MagicLocales::Locale

Constants

STATES
> C O N S T A N T S <=============================================================== #

Public Class Methods

Public Instance Methods

do_transition!( transition ) click to toggle source

MicroMachine .. (Finite State Machine)

# File lib/app/models/magic_locales/locale.rb, line 39
def do_transition!( transition )
  state.trigger( transition.to_sym )
  self.save
end
state() click to toggle source
# File lib/app/models/magic_locales/locale.rb, line 44
def state
  @state ||= begin
    fsm = MicroMachine.new(locale_state || "inactive")
    fsm.when(:activate, "inactive" => "active")
    fsm.when(:release, "active" => "live")
    fsm.when(:deactivate, "active" => "inactive", "live" => "inactive")
    fsm.on(:any) { self.locale_state = state.state }
    fsm
  end
end
with_translations(*locales) click to toggle source
> I N S T A N C E - M E T H O D S <================================================= #
# File lib/app/models/magic_locales/locale.rb, line 57
def with_translations(*locales)
  locales = translated_locales if locales.empty?
  includes(:translations).with_locales(locales).with_required_attributes
end

Private Instance Methods

clean_up_values() click to toggle source
> P R I V A T E ! <======================================================== # # # # # # # #
# File lib/app/models/magic_locales/locale.rb, line 66
def clean_up_values
  if self.iso_code.present? && self.iso_code_changed?
    self.iso_code = if self.iso_code.split("-").count > 1
      "#{self.iso_code.split("-")[0].to_s.downcase}-#{self.iso_code.split("-")[1].to_s.upcase}"
    else
      self.iso_code.to_s.downcase
    end
  end
  
end