merlin 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/app/models/merlin/configuration.rb +4 -3
- data/lib/merlin/version.rb +1 -1
- data/lib/ostruct/deep.rb +4 -4
- data/lib/tasks/merlin_tasks.rake +6 -4
- metadata +1 -1
@@ -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
|
-
@
|
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
|
data/lib/merlin/version.rb
CHANGED
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
|
data/lib/tasks/merlin_tasks.rake
CHANGED