configa 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/lib/configa.rb CHANGED
@@ -19,7 +19,14 @@ module Configa
19
19
  @yamls = {}
20
20
  @yaml = {}
21
21
 
22
- @default_env = opts[:env]
22
+ if opts[:env]
23
+ fn = File.join(@base_dir, opts[:env].to_s + @base_extname)
24
+ if File.exist?(fn)
25
+ @default_env = opts[:env]
26
+ else
27
+ puts "Configa WARNING: can't find #{fn}, using base configuration"
28
+ end
29
+ end
23
30
 
24
31
  parser(@base_env)
25
32
  end
@@ -41,6 +48,7 @@ module Configa
41
48
  def load_yaml(env)
42
49
  @yamls[env] ||= begin
43
50
  path = File.join(@base_dir, env.to_s + @base_extname)
51
+
44
52
  file = File.read(path)
45
53
  yaml = YAML.load(file)
46
54
  yaml
@@ -1,3 +1,3 @@
1
1
  module Configa
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -89,6 +89,15 @@ describe Configa do
89
89
  proc{ @config.production.mysql.username }.must_raise Configa::UnknownEnvironment
90
90
  end
91
91
 
92
+ it "should work with default env that don't exist" do
93
+ path = File.expand_path("../../base.yml", __FILE__)
94
+ @config = Configa.new(path, env: :some_non_exist_env)
95
+ @config.mysql.username.must_equal "root"
96
+ @config.storage.must_equal "tmp"
97
+ @config.mysql.host.must_equal "localhost"
98
+ @config.production.mysql.username.must_equal "admin"
99
+ end
100
+
92
101
  it "should return result as a hash" do
93
102
  path = File.expand_path("../../config.yml", __FILE__)
94
103
  @config = Configa.new(path)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-06 00:00:00.000000000 Z
12
+ date: 2012-11-28 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: YAML configuration file parser
15
15
  email:
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  version: '0'
55
55
  requirements: []
56
56
  rubyforge_project:
57
- rubygems_version: 1.8.23
57
+ rubygems_version: 1.8.24
58
58
  signing_key:
59
59
  specification_version: 3
60
60
  summary: Configa makes it easier to use multi environment YAML configs