merlin 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: