Class: RailsSettings::Default

Inherits:
Hash
  • Object
show all
Defined in:
lib/rails-settings/default.rb

Defined Under Namespace

Classes: MissingKey

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDefault

Returns a new instance of Default.



36
37
38
39
40
41
# File 'lib/rails-settings/default.rb', line 36

def initialize
  content = open(self.class.source_path).read
  hash = content.empty? ? {} : YAML.load(ERB.new(content).result).to_hash
  hash = hash[Rails.env] || {}
  self.replace hash
end

Class Method Details

.[](key) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/rails-settings/default.rb', line 18

def [](key)
  # foo.bar.dar Nested fetch value
  keys = key.to_s.split('.')
  val = instance
  keys.each do |k|
    val = val.fetch(k.to_s, nil)
    break if val.nil?
  end
  val
end

.enabled?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/rails-settings/default.rb', line 6

def enabled?
  source_path && File.exists?(source_path)
end

.instanceObject



29
30
31
32
33
# File 'lib/rails-settings/default.rb', line 29

def instance
  return @instance if defined? @instance
  @instance = new
  @instance
end

.source(value = nil) ⇒ Object



10
11
12
# File 'lib/rails-settings/default.rb', line 10

def source(value = nil)
  @source ||= value
end

.source_pathObject



14
15
16
# File 'lib/rails-settings/default.rb', line 14

def source_path
  @source || Rails.root.join('config/app.yml')
end