labor 0.1.1 → 0.1.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/lib/labor/config.rb CHANGED
@@ -19,8 +19,9 @@ module Labor
19
19
  class Config
20
20
  include Enumerable
21
21
 
22
- def initialize
22
+ def initialize(parent = nil)
23
23
  @config = {}
24
+ @parent = parent unless parent.nil?
24
25
  end
25
26
 
26
27
  # Loads a config file.
@@ -88,7 +89,7 @@ module Labor
88
89
  #
89
90
  # Returns a Boolean of whether or not the key exists.
90
91
  def group(key, &block)
91
- @config[key.to_sym] ||= Config.new
92
+ @config[key.to_sym] = Config.new(self)
92
93
  @config[key.to_sym].instance_eval(&block) if block_given?
93
94
  end
94
95
 
@@ -97,6 +98,8 @@ module Labor
97
98
  def method_missing(sym, *args)
98
99
  if args.length == 0 && @config.has_key?(sym)
99
100
  get(sym)
101
+ else
102
+ @parent.get(sym) unless @parent.nil?
100
103
  end
101
104
  end
102
105
  end
data/lib/labor/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Labor
2
- VERSION = Version = "0.1.1"
2
+ VERSION = Version = "0.1.2"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -5,59 +5,65 @@ describe Labor::Config do
5
5
  @config = Labor::Config.new
6
6
  end
7
7
 
8
- it "loads config from a file" do
9
- @config.load File.join(File.dirname(__FILE__), 'files', 'sample_config.rb')
10
- @config.get(:foo).should == "bar"
11
- end
8
+ describe "config files" do
9
+ it "can be loaded" do
10
+ @config.load File.join(File.dirname(__FILE__), 'files', 'sample_config.rb')
11
+ @config.get(:foo).should == "bar"
12
+ end
12
13
 
13
- it "allows write access to a key" do
14
- @config.set(:foo, "bar")
15
- @config.get(:foo).should == "bar"
14
+ it "should provide in-line variables for set keys" do
15
+ @config.instance_eval <<-CONFIG
16
+ set :foo, "bar"
17
+ set :i_am, "at the \#{foo}"
18
+ CONFIG
19
+ @config.get(:i_am).should == "at the bar"
20
+ end
16
21
  end
17
22
 
18
- it "allows read access to a key" do
19
- @config.set(:foo, "bar")
20
- @config.get(:foo).should == "bar"
21
- end
23
+ describe "write access" do
24
+ it "provides access to a key" do
25
+ @config.set(:foo, "bar")
26
+ @config.get(:foo).should == "bar"
27
+ end
22
28
 
23
- it "allows read access to keys via bracket method" do
24
- @config.set(:foo, "bar")
25
- @config[:foo].should == "bar"
26
- end
29
+ it "provides access to keys via bracket method" do
30
+ @config[:foo] = "bar"
31
+ @config.get(:foo).should == "bar"
32
+ end
27
33
 
28
- it "provides access to keys using methods" do
29
- @config.set(:foo, "bar")
30
- @config.foo.should == "bar"
34
+ it "allows deletion of a key" do
35
+ @config.set(:foo, "a noob")
36
+ @config.delete(:foo)
37
+ @config.get(:foo).should be_nil
38
+ end
31
39
  end
32
40
 
33
- it "allows write access to keys via bracket method" do
34
- @config[:foo] = "bar"
35
- @config.get(:foo).should == "bar"
36
- end
41
+ describe "read access" do
42
+ it "provides access to a key" do
43
+ @config.set(:foo, "bar")
44
+ @config.get(:foo).should == "bar"
45
+ end
37
46
 
38
- it "allows deletion of a key" do
39
- @config.set(:foo, "a noob")
40
- @config.delete(:foo)
41
- @config.get(:foo).should be_nil
42
- end
47
+ it "provides access to keys via bracket method" do
48
+ @config.set(:foo, "bar")
49
+ @config[:foo].should == "bar"
50
+ end
51
+
52
+ it "provides access to keys using methods" do
53
+ @config.set(:foo, "bar")
54
+ @config.foo.should == "bar"
55
+ end
43
56
 
44
- it "allows checking existence of a key" do
45
- @config.set(:foo, "bar")
46
- @config.exists?(:foo)
57
+ it "allows checking existence of a key" do
58
+ @config.set(:foo, "bar")
59
+ @config.exists?(:foo)
60
+ end
47
61
  end
48
62
 
49
63
  it "have each defined" do
50
64
  @config.respond_to?(:each)
51
65
  end
52
-
53
- it "allow configs to use keys as in-line variables" do
54
- @config.instance_eval <<-CONFIG
55
- set :foo, "bar"
56
- set :i_am, "at the \#{foo}"
57
- CONFIG
58
- @config.get(:i_am).should == "at the bar"
59
- end
60
-
66
+
61
67
  describe :grouping do
62
68
  before(:each) do
63
69
  @config.instance_eval <<-CONFIG
metadata CHANGED
@@ -1,48 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: labor
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 2
9
+ version: 0.1.2
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Brett Buddin
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2011-02-20 00:00:00.000000000 -05:00
16
+
17
+ date: 2011-03-29 00:00:00 -04:00
13
18
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
16
21
  name: gearman-ruby
17
- requirement: &2157813680 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
18
24
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
23
31
  type: :runtime
24
- prerelease: false
25
- version_requirements: *2157813680
26
- - !ruby/object:Gem::Dependency
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
27
34
  name: json
28
- requirement: &2157813100 !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
29
37
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ version: "0"
34
44
  type: :runtime
35
- prerelease: false
36
- version_requirements: *2157813100
37
- description: Wrapper for gearman-ruby that provides a different, and more portable,
38
- way of defining jobs.
45
+ version_requirements: *id002
46
+ description: Wrapper for gearman-ruby that provides a different, and more portable, way of defining jobs.
39
47
  email: brett@intraspirit.net
40
48
  executables: []
49
+
41
50
  extensions: []
42
- extra_rdoc_files:
51
+
52
+ extra_rdoc_files:
43
53
  - LICENSE
44
54
  - README.md
45
- files:
55
+ files:
46
56
  - LICENSE
47
57
  - README.md
48
58
  - Rakefile
@@ -61,29 +71,36 @@ files:
61
71
  has_rdoc: true
62
72
  homepage: http://github.com/brettbuddin/labor
63
73
  licenses: []
74
+
64
75
  post_install_message:
65
76
  rdoc_options: []
66
- require_paths:
77
+
78
+ require_paths:
67
79
  - lib
68
- required_ruby_version: !ruby/object:Gem::Requirement
80
+ required_ruby_version: !ruby/object:Gem::Requirement
69
81
  none: false
70
- requirements:
71
- - - ! '>='
72
- - !ruby/object:Gem::Version
73
- version: '0'
74
- required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
89
  none: false
76
- requirements:
77
- - - ! '>='
78
- - !ruby/object:Gem::Version
79
- version: '0'
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ segments:
94
+ - 0
95
+ version: "0"
80
96
  requirements: []
97
+
81
98
  rubyforge_project:
82
- rubygems_version: 1.5.2
99
+ rubygems_version: 1.3.7
83
100
  signing_key:
84
101
  specification_version: 3
85
102
  summary: More portable jobs for Gearman workers.
86
- test_files:
103
+ test_files:
87
104
  - spec/config_spec.rb
88
105
  - spec/files/sample_config.rb
89
106
  - spec/labor_spec.rb