mc-settings 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
@@ -1,5 +1,6 @@
1
1
  require 'singleton'
2
2
  require 'yaml'
3
+ require 'erb'
3
4
 
4
5
  class Hash
5
6
  def recursive_merge!(other)
@@ -168,7 +169,7 @@ class Setting
168
169
 
169
170
  files.flatten.each do |file|
170
171
  begin
171
- @available_settings.recursive_merge!(YAML::load(File.open(file)) || {}) if File.exists?(file)
172
+ @available_settings.recursive_merge!(YAML::load(ERB.new(IO.read(file)).result) || {}) if File.exists?(file)
172
173
  rescue Exception => e
173
174
  raise FileError.new("Error parsing file #{file}, with: #{e.message}")
174
175
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mc-settings}
8
- s.version = "0.1.4"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Edwin Cruz", "Colin Shield"]
12
- s.date = %q{2011-06-07}
12
+ s.date = %q{2011-07-14}
13
13
  s.description = %q{implement custom keys indenendently of environment}
14
14
  s.email = %q{rubydev@modcloth.com}
15
15
  s.extra_rdoc_files = [
@@ -1,5 +1,5 @@
1
1
  shipping_config:
2
- default: Defaulted
2
+ default: <%= 'Defaulted' %>
3
3
  domestic:
4
4
  service: MyService
5
5
  countries:
@@ -31,4 +31,6 @@ shipping_config:
31
31
  - "FR"
32
32
  - "GR"
33
33
  - "RU"
34
- shipping_carrier: Bar
34
+ shipping_carrier: Bar
35
+ number: <%= 5%>
36
+ stringified: <%= nil || "stringified"%>
@@ -143,4 +143,18 @@ describe Setting do
143
143
  Setting.shipping_config(:domestic)['non_shippable_regions'].size.should > 0
144
144
  end
145
145
  end
146
+
147
+ context "Ruby code inside yml file" do
148
+ before :each do
149
+ Setting.reload(
150
+ :path => File.join(File.dirname(__FILE__)) + '/fixtures',
151
+ :files => ['shipping.yml']
152
+ )
153
+ end
154
+ it "should interpret ruby code and put correct values" do
155
+ Setting.shipping_config.should == "Defaulted"
156
+ Setting.number == 5
157
+ Setting.stringified == "stringified"
158
+ end
159
+ end
146
160
  end
@@ -50,10 +50,10 @@ CONTENT
50
50
 
51
51
  File.stub!(:exists?).and_return(true)
52
52
  File.stub!(:exists?).with("config/settings/environments/development.yml").and_return(false)
53
- File.stub!(:open).with("config/settings/default.yml").and_return(defaults)
54
- File.stub!(:open).with("config/settings/environments/test.yml").and_return(test)
55
- File.stub!(:open).with("config/settings/local/custom.yml").and_return(custom)
56
- File.stub!(:open).with("config/settings/local/empty.yml").and_return(empty)
53
+ IO.stub!(:read).with("config/settings/default.yml").and_return(defaults)
54
+ IO.stub!(:read).with("config/settings/environments/test.yml").and_return(test)
55
+ IO.stub!(:read).with("config/settings/local/custom.yml").and_return(custom)
56
+ IO.stub!(:read).with("config/settings/local/empty.yml").and_return(empty)
57
57
 
58
58
  Dir.stub!(:glob).and_return(["config/settings/local/empty.yml", "config/settings/local/custom.yml"])
59
59
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mc-settings
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Edwin Cruz
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-07 00:00:00 -05:00
19
+ date: 2011-07-14 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency