configus 0.0.1 → 0.0.2

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