breadboard 1.1.0.rc4 → 1.1.0
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/.rvmrc +1 -1
- data/CHANGELOG +4 -0
- data/Gemfile.lock +7 -7
- data/VERSION +1 -1
- data/features/configure.feature +6 -8
- data/features/step_definitions/configure_steps.rb +17 -0
- data/lib/breadboard/env_config.rb +10 -6
- data/readme.md +12 -0
- metadata +58 -75
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm gemset use breadboard
|
1
|
+
rvm gemset use breadboard --create
|
data/CHANGELOG
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
breadboard (1.1.0.
|
4
|
+
breadboard (1.1.0.rc4)
|
5
5
|
activeresource (~> 3.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (3.0.
|
11
|
-
activesupport (= 3.0.
|
10
|
+
activemodel (3.0.20)
|
11
|
+
activesupport (= 3.0.20)
|
12
12
|
builder (~> 2.1.2)
|
13
13
|
i18n (~> 0.5.0)
|
14
|
-
activeresource (3.0.
|
15
|
-
activemodel (= 3.0.
|
16
|
-
activesupport (= 3.0.
|
17
|
-
activesupport (3.0.
|
14
|
+
activeresource (3.0.20)
|
15
|
+
activemodel (= 3.0.20)
|
16
|
+
activesupport (= 3.0.20)
|
17
|
+
activesupport (3.0.20)
|
18
18
|
builder (2.1.2)
|
19
19
|
cucumber (0.10.2)
|
20
20
|
builder (>= 2.1.2)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.0
|
1
|
+
1.1.0
|
data/features/configure.feature
CHANGED
@@ -3,34 +3,32 @@ Feature: Configuring Breadboard
|
|
3
3
|
I want to be able to configure breadboard in ruby (not YAML)
|
4
4
|
So that my engines can each update the breadboard configuration
|
5
5
|
|
6
|
-
|
6
|
+
Background:
|
7
7
|
Given I have required breadboard
|
8
|
+
|
9
|
+
Scenario: Configure Breadboard with Ruby, not YAML
|
8
10
|
Then I should be able to configure breadboard via Ruby blocks
|
9
11
|
|
10
12
|
Scenario: default configuration
|
11
|
-
Given I have required breadboard
|
12
13
|
Then I should be able to create a default configuration via the "default" Config method
|
13
14
|
|
14
15
|
Scenario: configuring a model by lowercase methods
|
15
|
-
Given I have required breadboard
|
16
16
|
Then I should be able to configure models via their lowercased, underscored method equivalents
|
17
17
|
|
18
18
|
Scenario: configuring a model via the "model" method
|
19
|
-
Given I have required breadboard
|
20
19
|
Then I should be able to configure a model by passing the constant for the model to the "model" method
|
21
20
|
|
22
21
|
Scenario: configuring multiple models via the "models" method
|
23
|
-
Given I have required breadboard
|
24
22
|
Then I should be able to configure multiple models simultaneously by passing their constants to the "models" method
|
25
23
|
|
26
24
|
Scenario: configuring the method for determining the Rails environment
|
27
|
-
Given I have required breadboard
|
28
25
|
Then I should be able to override the default Rails.env environment retrieval in case I'm not in a rails app
|
29
26
|
|
30
27
|
Scenario: Configure Breadboard with hash instead of url
|
31
|
-
Given I have required breadboard
|
32
28
|
Then I should be able to configure breadboard with hash
|
33
29
|
|
34
30
|
Scenario: Configure model with user, password
|
35
|
-
Given I have required breadboard
|
36
31
|
Then I should be able to configure model with user, password
|
32
|
+
|
33
|
+
Scenario: Configure model with block
|
34
|
+
Then I should be able to configure a model with a block
|
@@ -136,3 +136,20 @@ Then /^I should be able to configure model with user, password$/ do
|
|
136
136
|
Venue.password.should == "secret"
|
137
137
|
end
|
138
138
|
|
139
|
+
Then /^I should be able to configure a model with a block$/ do
|
140
|
+
class ConfigWithBlockModel < ActiveResource::Base
|
141
|
+
end
|
142
|
+
|
143
|
+
Breadboard.configure do
|
144
|
+
env { "production" }
|
145
|
+
|
146
|
+
model ConfigWithBlockModel do
|
147
|
+
all do
|
148
|
+
site -> { "http://foobar" }
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
ConfigWithBlockModel.site.should be_kind_of URI
|
154
|
+
ConfigWithBlockModel.site.to_s.should == "http://foobar"
|
155
|
+
end
|
@@ -3,12 +3,16 @@ module Breadboard
|
|
3
3
|
# holds site, user, password values for an environment instance
|
4
4
|
class EnvConfig
|
5
5
|
def site(url=nil)
|
6
|
-
|
7
|
-
|
8
|
-
if
|
9
|
-
|
10
|
-
|
11
|
-
@site
|
6
|
+
@site = url if url
|
7
|
+
|
8
|
+
return @site if @site.kind_of?(URI)
|
9
|
+
|
10
|
+
if @site
|
11
|
+
if @site.respond_to? :call
|
12
|
+
URI.parse @site.call
|
13
|
+
else
|
14
|
+
URI.parse @site
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
data/readme.md
CHANGED
@@ -142,3 +142,15 @@ via the `models` method:
|
|
142
142
|
production "http://my.production.publishing.service.provider"
|
143
143
|
end
|
144
144
|
end
|
145
|
+
|
146
|
+
### block values
|
147
|
+
|
148
|
+
If you want a lazily evaluated site attribute (for example, if you need to add parameters into your site url at runtime), then simply set the site as a block:
|
149
|
+
|
150
|
+
```ruby
|
151
|
+
Breadboard.configure do
|
152
|
+
some_model do
|
153
|
+
all -> { "http://somewhere/parents/#{Parent.instance.id}" }
|
154
|
+
end
|
155
|
+
end
|
156
|
+
```
|
metadata
CHANGED
@@ -1,80 +1,72 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: breadboard
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
- rc
|
11
|
-
- 4
|
12
|
-
version: 1.1.0.rc4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
|
+
prerelease:
|
13
6
|
platform: ruby
|
14
|
-
authors:
|
7
|
+
authors:
|
15
8
|
- Matt Parker
|
16
9
|
autorequire:
|
17
10
|
bindir: bin
|
18
11
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-04-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
23
15
|
name: activeresource
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
26
17
|
none: false
|
27
|
-
requirements:
|
18
|
+
requirements:
|
28
19
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
segments:
|
32
|
-
- 3
|
33
|
-
- 0
|
34
|
-
version: "3.0"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: cucumber
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
25
|
none: false
|
42
|
-
requirements:
|
26
|
+
requirements:
|
43
27
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: cucumber
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
50
37
|
version: 0.10.0
|
51
38
|
type: :development
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: rspec
|
55
39
|
prerelease: false
|
56
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.10.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
57
49
|
none: false
|
58
|
-
requirements:
|
50
|
+
requirements:
|
59
51
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 31
|
62
|
-
segments:
|
63
|
-
- 2
|
64
|
-
- 4
|
65
|
-
- 0
|
52
|
+
- !ruby/object:Gem::Version
|
66
53
|
version: 2.4.0
|
67
54
|
type: :development
|
68
|
-
|
69
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.4.0
|
62
|
+
description: ! 'Breadboard allows you to define what services your ActiveResource
|
63
|
+
derived classes connect to based on your rails environment. '
|
70
64
|
email: moonmaster9000@gmail.com
|
71
65
|
executables: []
|
72
|
-
|
73
66
|
extensions: []
|
74
|
-
|
75
|
-
extra_rdoc_files:
|
67
|
+
extra_rdoc_files:
|
76
68
|
- readme.md
|
77
|
-
files:
|
69
|
+
files:
|
78
70
|
- .gitignore
|
79
71
|
- .rvmrc
|
80
72
|
- CHANGELOG
|
@@ -100,38 +92,29 @@ files:
|
|
100
92
|
- readme.md
|
101
93
|
homepage: http://github.com/moonmaster9000/breadboard
|
102
94
|
licenses: []
|
103
|
-
|
104
95
|
post_install_message:
|
105
96
|
rdoc_options: []
|
106
|
-
|
107
|
-
require_paths:
|
97
|
+
require_paths:
|
108
98
|
- lib
|
109
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
100
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
|
115
|
-
|
116
|
-
- 0
|
117
|
-
version: "0"
|
118
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ! '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
106
|
none: false
|
120
|
-
requirements:
|
121
|
-
- -
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
|
124
|
-
segments:
|
125
|
-
- 0
|
126
|
-
version: "0"
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
127
111
|
requirements: []
|
128
|
-
|
129
112
|
rubyforge_project:
|
130
|
-
rubygems_version: 1.8.
|
113
|
+
rubygems_version: 1.8.24
|
131
114
|
signing_key:
|
132
115
|
specification_version: 3
|
133
116
|
summary: Simple, environment-based service provider configuration for ActiveResource
|
134
|
-
test_files:
|
117
|
+
test_files:
|
135
118
|
- features/active_resource.feature
|
136
119
|
- features/configure.feature
|
137
120
|
- features/reset.feature
|