Sha256: 0acb789b505daeef251bd582392d51d8ac2636458e6cf44412bafe92e85fd695

Contents?: true

Size: 765 Bytes

Versions: 5

Compression:

Stored size: 765 Bytes

Contents

class Releaf::Settings < RailsSettings::Base

  scope :registered, -> { where(var: registered_keys, thing_type: nil, thing_id: nil).order(:var) }

  cattr_accessor :registry
  @@registry = {}.with_indifferent_access

  def releaf_title
    var
  end

  def input_type
    metadata[:type] || :text
  end

  def description
    metadata[:description]
  end

  def metadata
    self.class.registry.fetch(var, {})
  end

  def self.register_scoped
    where(var: registered_keys)
  end

  def self.registered_keys
    @@registry.keys
  end

  def self.register(*args)
    Releaf::Settings::Register.call(settings: args)
  end

  def self.supported_types
    [:boolean, :date, :time, :datetime, :integer, :float, :decimal, :email, :text, :textarea, :richtext]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
releaf-core-2.1.2 app/models/releaf/settings.rb
releaf-core-2.1.1 app/models/releaf/settings.rb
releaf-core-2.1.0 app/models/releaf/settings.rb
releaf-core-2.0.1 app/models/releaf/settings.rb
releaf-core-2.0.0 app/models/releaf/settings.rb