merlin 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,13 @@
1
1
  module Merlin
2
2
  class Configuration
3
+ attr_reader :raw
4
+
3
5
  def initialize(config_file_path, environment = ::Rails.env, connection = nil)
4
6
  @environment = environment
5
7
  @local_raw = from_file(config_file_path)
6
8
  @remote_raw = merlin_server ? from_server(connection) : {}
7
- @struct = OpenStruct.deep(@remote_raw.deep_merge(@local_raw))
9
+ @raw = @remote_raw.deep_merge(@local_raw)
10
+ @struct = OpenStruct.deep(raw.clone, true)
8
11
  end
9
12
 
10
13
  def method_missing(name, *args, &block)
@@ -29,8 +32,6 @@ module Merlin
29
32
  else
30
33
  {}
31
34
  end
32
- rescue Faraday::Error::ConnectionFailed
33
- {}
34
35
  end
35
36
 
36
37
  private
@@ -1,3 +1,3 @@
1
1
  module Merlin
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/ostruct/deep.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  require 'ostruct'
2
2
 
3
- def OpenStruct.deep(obj)
3
+ def OpenStruct.deep(obj, freeze = false)
4
4
  case obj
5
5
  when Array
6
- obj.map {|e| OpenStruct.deep(e)}
6
+ obj.map {|e| OpenStruct.deep(e, freeze)}
7
7
  when Hash
8
8
  OpenStruct.new( obj.each do |k,v|
9
- obj[k] = OpenStruct.deep(v)
9
+ obj[k] = OpenStruct.deep(v, freeze)
10
10
  end )
11
11
  else
12
12
  obj
13
- end
13
+ end.tap { |res| res.freeze if freeze }
14
14
  end
@@ -1,4 +1,6 @@
1
- # desc "Explaining what the task does"
2
- # task :merlin do
3
- # # Task goes here
4
- # end
1
+ namespace :merlin do
2
+ desc "Print configuration for current environment"
3
+ task :config => :environment do
4
+ y $merlin.raw
5
+ end
6
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merlin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: