ruby-conf 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "rspec", "~> 2.8.0"
10
+ gem "rr", "~> 1.0.4"
10
11
  gem "yard", "~> 0.7"
11
12
  gem "rdoc", "~> 3.12"
12
13
  gem "bundler", "~> 1.0.0"
data/Gemfile.lock CHANGED
@@ -13,6 +13,7 @@ GEM
13
13
  rcov (1.0.0)
14
14
  rdoc (3.12)
15
15
  json (~> 1.4)
16
+ rr (1.0.4)
16
17
  rspec (2.8.0)
17
18
  rspec-core (~> 2.8.0)
18
19
  rspec-expectations (~> 2.8.0)
@@ -31,5 +32,6 @@ DEPENDENCIES
31
32
  jeweler (~> 1.8.3)
32
33
  rcov
33
34
  rdoc (~> 3.12)
35
+ rr (~> 1.0.4)
34
36
  rspec (~> 2.8.0)
35
37
  yard (~> 0.7)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.1.0
data/lib/ruby-conf.rb CHANGED
@@ -0,0 +1,60 @@
1
+ class RubyConf
2
+ @@configs = {}
3
+
4
+ class Config
5
+ def initialize
6
+ @attributes = {}
7
+ end
8
+
9
+ def method_missing(name, *args, &block)
10
+ case(args.size)
11
+ when 0:
12
+ if @attributes.has_key? name.to_sym
13
+ value = @attributes[name.to_sym]
14
+
15
+ if value.is_a?(Proc)
16
+ value.call
17
+ else
18
+ value
19
+ end
20
+ else
21
+ super
22
+ end
23
+ when 1:
24
+ @attributes[name.to_sym] = args.first
25
+ else
26
+ @attributes[name.to_sym] = args
27
+ end
28
+ end
29
+
30
+ def respond_to?(name)
31
+ if @attributes.has_key? name.to_sym
32
+ true
33
+ else
34
+ super
35
+ end
36
+ end
37
+ end
38
+
39
+ def self.define(name, &block)
40
+ @@configs[name.to_sym] = Config.new
41
+
42
+ @@configs[name.to_sym].instance_eval &block
43
+ end
44
+
45
+ def self.method_missing(name, *args, &block)
46
+ if @@configs.has_key? name.to_sym
47
+ @@configs[name.to_sym]
48
+ else
49
+ super
50
+ end
51
+ end
52
+
53
+ def self.respond_to?(name)
54
+ if @@configs.has_key? name.to_sym
55
+ true
56
+ else
57
+ super
58
+ end
59
+ end
60
+ end
data/ruby-conf.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ruby-conf}
8
- s.version = "0.0.0"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Curtis Schofield & Hollin Wilkins"]
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  "VERSION",
29
29
  "lib/ruby-conf.rb",
30
30
  "ruby-conf.gemspec",
31
- "spec/ruby-conf_spec.rb",
31
+ "spec/lib/ruby-conf_spec.rb",
32
32
  "spec/spec_helper.rb"
33
33
  ]
34
34
  s.homepage = %q{http://github.com/blazingpair/ruby-conf}
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
42
42
 
43
43
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
44
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
45
+ s.add_development_dependency(%q<rr>, ["~> 1.0.4"])
45
46
  s.add_development_dependency(%q<yard>, ["~> 0.7"])
46
47
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
47
48
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -49,6 +50,7 @@ Gem::Specification.new do |s|
49
50
  s.add_development_dependency(%q<rcov>, [">= 0"])
50
51
  else
51
52
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
53
+ s.add_dependency(%q<rr>, ["~> 1.0.4"])
52
54
  s.add_dependency(%q<yard>, ["~> 0.7"])
53
55
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
54
56
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -57,6 +59,7 @@ Gem::Specification.new do |s|
57
59
  end
58
60
  else
59
61
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
62
+ s.add_dependency(%q<rr>, ["~> 1.0.4"])
60
63
  s.add_dependency(%q<yard>, ["~> 0.7"])
61
64
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
62
65
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+ require 'ruby-conf'
3
+
4
+ # write it
5
+ #
6
+ #RubyConf.define "namespace" do
7
+ # thingy 'aoeuaoe'
8
+ #end
9
+ #
10
+ ## read it
11
+ #
12
+ #RubyConf.namespace.thingy
13
+
14
+
15
+ describe RubyConf do
16
+ subject { RubyConf }
17
+
18
+ describe ".define" do
19
+ it "defines a new configuration with a given name" do
20
+ subject.define "thing" do end
21
+ subject.should respond_to(:thing)
22
+ end
23
+ it "sets a variable in new configuration with a given name to a value" do
24
+ subject.define "thing" do
25
+ honky true
26
+ end
27
+ subject.thing.honky.should be_true
28
+ end
29
+ describe "namespace with attribute with lambda arg" do
30
+ before do
31
+ subject.define 'with_llama' do
32
+ get_wool lambda {
33
+ @shear_count = @shear_count.to_i + 1
34
+ }
35
+ end
36
+ end
37
+ it "should return the value of lambda" do
38
+ subject.with_llama.get_wool.should == 1
39
+ end
40
+ it "should return the value of lambda dynamicly" do
41
+ subject.with_llama.get_wool.should == 1
42
+ subject.with_llama.get_wool.should == 2
43
+ subject.with_llama.get_wool.should == 3
44
+ end
45
+ end
46
+ describe "namespace with attribute with extra args" do
47
+ before do
48
+ subject.define "namespace" do
49
+ attribute "hello", "tiny" , "tim"
50
+ end
51
+ end
52
+ it "sets an array" do
53
+ subject.namespace.attribute.should == %w(hello tiny tim)
54
+ end
55
+ end
56
+ describe "namespaced to 'cake' with flour and water" do
57
+ before do
58
+ subject.define "cake" do
59
+ flour "1 cup"
60
+ water "1/3 cup"
61
+ skim_milk "2/3 cup"
62
+ end
63
+ end
64
+ it "cake has 1 cup of flour" do
65
+ subject.cake.flour.should == '1 cup'
66
+ end
67
+ it "cake has 1 cup of water" do
68
+ subject.cake.water.should == '1/3 cup'
69
+ end
70
+ it "responds to skim_milk" do
71
+ subject.cake.should respond_to(:skim_milk)
72
+ end
73
+ it "our cake has no bees and raises NameError" do
74
+ lambda do
75
+ subject.cake.bees
76
+ end.should raise_error NameError
77
+ end
78
+ end
79
+ end
80
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
+ require 'rr'
4
5
  require 'ruby-conf'
5
6
 
6
7
  # Requires supporting files with custom matchers and macros, etc,
@@ -8,5 +9,5 @@ require 'ruby-conf'
8
9
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
10
 
10
11
  RSpec.configure do |config|
11
-
12
+ config.mock_with :rr
12
13
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-conf
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 0.0.0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Curtis Schofield & Hollin Wilkins
@@ -36,9 +36,25 @@ dependencies:
36
36
  requirement: *id001
37
37
  - !ruby/object:Gem::Dependency
38
38
  prerelease: false
39
- name: yard
39
+ name: rr
40
40
  type: :development
41
41
  version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 31
47
+ segments:
48
+ - 1
49
+ - 0
50
+ - 4
51
+ version: 1.0.4
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ prerelease: false
55
+ name: yard
56
+ type: :development
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
42
58
  none: false
43
59
  requirements:
44
60
  - - ~>
@@ -48,12 +64,12 @@ dependencies:
48
64
  - 0
49
65
  - 7
50
66
  version: "0.7"
51
- requirement: *id002
67
+ requirement: *id003
52
68
  - !ruby/object:Gem::Dependency
53
69
  prerelease: false
54
70
  name: rdoc
55
71
  type: :development
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
57
73
  none: false
58
74
  requirements:
59
75
  - - ~>
@@ -63,12 +79,12 @@ dependencies:
63
79
  - 3
64
80
  - 12
65
81
  version: "3.12"
66
- requirement: *id003
82
+ requirement: *id004
67
83
  - !ruby/object:Gem::Dependency
68
84
  prerelease: false
69
85
  name: bundler
70
86
  type: :development
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
72
88
  none: false
73
89
  requirements:
74
90
  - - ~>
@@ -79,12 +95,12 @@ dependencies:
79
95
  - 0
80
96
  - 0
81
97
  version: 1.0.0
82
- requirement: *id004
98
+ requirement: *id005
83
99
  - !ruby/object:Gem::Dependency
84
100
  prerelease: false
85
101
  name: jeweler
86
102
  type: :development
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
103
+ version_requirements: &id006 !ruby/object:Gem::Requirement
88
104
  none: false
89
105
  requirements:
90
106
  - - ~>
@@ -95,12 +111,12 @@ dependencies:
95
111
  - 8
96
112
  - 3
97
113
  version: 1.8.3
98
- requirement: *id005
114
+ requirement: *id006
99
115
  - !ruby/object:Gem::Dependency
100
116
  prerelease: false
101
117
  name: rcov
102
118
  type: :development
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
119
+ version_requirements: &id007 !ruby/object:Gem::Requirement
104
120
  none: false
105
121
  requirements:
106
122
  - - ">="
@@ -109,7 +125,7 @@ dependencies:
109
125
  segments:
110
126
  - 0
111
127
  version: "0"
112
- requirement: *id006
128
+ requirement: *id007
113
129
  description: rubyconf is a ruby configuration dsl that aims to make it simple to write and read configurations for ruby apps without a yaml or xml file
114
130
  email: blazingpair@blazingcloud.net
115
131
  executables: []
@@ -131,7 +147,7 @@ files:
131
147
  - VERSION
132
148
  - lib/ruby-conf.rb
133
149
  - ruby-conf.gemspec
134
- - spec/ruby-conf_spec.rb
150
+ - spec/lib/ruby-conf_spec.rb
135
151
  - spec/spec_helper.rb
136
152
  has_rdoc: true
137
153
  homepage: http://github.com/blazingpair/ruby-conf
@@ -1,7 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "RubyConf" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end