configus 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.
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - ree
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - rbx
7
+ - jruby
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  Configus helps you easily manage environment specific settings
6
6
 
7
+ [![Build Status](https://secure.travis-ci.org/mokevnin/configus.png)](http://travis-ci.org/mokevnin/configus)
8
+
7
9
  ## Installing
8
10
 
9
11
  Add this to your `Gemfile`:
data/Rakefile CHANGED
@@ -1 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ task :default => :spec
5
+ task :test => :spec
data/configus.gemspec CHANGED
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # specify any dependencies here; for example:
22
22
  s.add_development_dependency "rspec"
23
- s.add_runtime_dependency "activesupport"
23
+ s.add_runtime_dependency "rake"
24
24
  end
data/lib/configus.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'active_support/core_ext/hash'
2
-
3
1
  require "configus/version"
4
2
  require 'configus/builder'
5
3
  require 'configus/proxy'
@@ -29,7 +29,7 @@ module Configus
29
29
  parent = e[:options][:parent]
30
30
  if parent
31
31
  parent_config = result(parent)
32
- current_config = parent_config.deep_merge!(current_config)
32
+ current_config = deep_merge(parent_config, current_config)
33
33
  end
34
34
 
35
35
  current_config
@@ -45,5 +45,13 @@ module Configus
45
45
  @envs[env][:block] = block if block_given?
46
46
  end
47
47
 
48
+ def deep_merge(target, source)
49
+ source.each_pair do |k,v|
50
+ tv = target[k]
51
+ target[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? deep_merge(tv, v) : v
52
+ end
53
+ target
54
+ end
55
+
48
56
  end
49
57
  end
@@ -25,6 +25,11 @@ module Configus
25
25
  @config[key]
26
26
  end
27
27
 
28
+ def each_pair(&block)
29
+ #TODO: hash values should be Configus instance object
30
+ @config.each_pair(&block)
31
+ end
32
+
28
33
  def method_missing(meth, *args, &blk)
29
34
  raise "'#{meth}' key does not exists in your configus"
30
35
  end
@@ -1,3 +1,3 @@
1
1
  module Configus
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -7,7 +7,8 @@ describe Configus::Config do
7
7
  :sections => {
8
8
  :first => 'first_value',
9
9
  :second => 'second_value'
10
- }
10
+ },
11
+ :pairs => { :pkay => "vkay" }
11
12
  }
12
13
  @config = Configus::Config.new(@options)
13
14
  end
@@ -25,5 +26,9 @@ describe Configus::Config do
25
26
  @config[:foo] == @options[:foo]
26
27
  @config[:sections].second == @options[:sections][:second]
27
28
  end
29
+
30
+ it 'should passing each key-value pair' do
31
+ @config.pairs.each_pair { |key, value| } == @options[:pairs].each_pair { |key, value| }
32
+ end
28
33
  end
29
34
 
metadata CHANGED
@@ -1,61 +1,47 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: configus
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Mokevnin Kirill
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-05 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &16603100 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: activesupport
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *16603100
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &16602680 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
46
33
  type: :runtime
47
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *16602680
48
36
  description: Configus helps you easily manage environment specific settings
49
- email:
37
+ email:
50
38
  - mokevnin@gmail.com
51
39
  executables: []
52
-
53
40
  extensions: []
54
-
55
41
  extra_rdoc_files: []
56
-
57
- files:
42
+ files:
58
43
  - .gitignore
44
+ - .travis.yml
59
45
  - Gemfile
60
46
  - README.md
61
47
  - Rakefile
@@ -71,37 +57,26 @@ files:
71
57
  - spec/spec_helper.rb
72
58
  homepage: https://github.com/kaize/configus
73
59
  licenses: []
74
-
75
60
  post_install_message:
76
61
  rdoc_options: []
77
-
78
- require_paths:
62
+ require_paths:
79
63
  - lib
80
- required_ruby_version: !ruby/object:Gem::Requirement
64
+ required_ruby_version: !ruby/object:Gem::Requirement
81
65
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
89
- required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
71
  none: false
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- hash: 3
95
- segments:
96
- - 0
97
- version: "0"
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
98
76
  requirements: []
99
-
100
77
  rubyforge_project: configus
101
78
  rubygems_version: 1.8.10
102
79
  signing_key:
103
80
  specification_version: 3
104
81
  summary: Configus helps you easily manage environment specific settings
105
82
  test_files: []
106
-
107
- has_rdoc: