blueprints 0.8.1 → 0.8.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/VERSION +1 -1
- data/blueprints.gemspec +2 -2
- data/lib/blueprints/buildable.rb +4 -3
- data/lib/blueprints/dependency.rb +3 -1
- data/spec/unit/dependency_spec.rb +14 -4
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/blueprints.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{blueprints}
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andrius Chamentauskas"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-23}
|
13
13
|
s.default_executable = %q{blueprintify}
|
14
14
|
s.description = %q{Another replacement for factories and fixtures. The library that lazy typists will love}
|
15
15
|
s.email = %q{sinsiliux@gmail.com}
|
data/lib/blueprints/buildable.rb
CHANGED
@@ -17,7 +17,7 @@ module Blueprints
|
|
17
17
|
|
18
18
|
# Defines blueprint dependencies. Used internally, but can be used externally too.
|
19
19
|
def depends_on(*scenarios)
|
20
|
-
@parents = (@parents || []) + scenarios.map{|s| s.to_sym}
|
20
|
+
@parents = (@parents || []) + scenarios.map { |s| s.to_sym }
|
21
21
|
self
|
22
22
|
end
|
23
23
|
|
@@ -80,12 +80,13 @@ module Blueprints
|
|
80
80
|
def self.normalize_attributes(attributes)
|
81
81
|
attributes = attributes.dup
|
82
82
|
attributes.each do |attr, value|
|
83
|
-
attributes[attr] = value.
|
83
|
+
attributes[attr] = value.blueprint_value if value.respond_to?(:blueprint_value)
|
84
84
|
if value.is_a? Symbol and value.to_s =~ /^@.+$/
|
85
85
|
STDERR.puts "DEPRECATION WARNING: :@variables are deprecated in favor of `d` method"
|
86
86
|
attributes[attr] = Blueprints::Namespace.root.context.instance_variable_get(value)
|
87
87
|
end
|
88
88
|
end
|
89
|
+
attributes
|
89
90
|
end
|
90
91
|
|
91
92
|
def build_parents
|
@@ -118,7 +119,7 @@ module Blueprints
|
|
118
119
|
def parse_name(name)
|
119
120
|
case name
|
120
121
|
when Hash
|
121
|
-
return name.keys.first.to_sym, [name.values.first].flatten.map{|sc| parse_name(sc).first}
|
122
|
+
return name.keys.first.to_sym, [name.values.first].flatten.map { |sc| parse_name(sc).first }
|
122
123
|
when Symbol, String
|
123
124
|
name = name.to_sym unless name == ''
|
124
125
|
return name, []
|
@@ -11,6 +11,8 @@
|
|
11
11
|
# d = Blueprints::Dependency.new(:blueprint).name.size
|
12
12
|
# d.value # => 4 when @blueprint.name == 'John'
|
13
13
|
class Blueprints::Dependency
|
14
|
+
instance_methods.each { |m| undef_method m if m =~ /^(to_|id$)/ }
|
15
|
+
|
14
16
|
# Initializes new copy of Blueprints::Dependency with name, iv_name and options.
|
15
17
|
def initialize(name, *args)
|
16
18
|
@name = name
|
@@ -20,7 +22,7 @@ class Blueprints::Dependency
|
|
20
22
|
end
|
21
23
|
|
22
24
|
# Builds blueprint (if necessary) and returns the value of instance variable.
|
23
|
-
def
|
25
|
+
def blueprint_value
|
24
26
|
Blueprints::RootNamespace.root.build @name => @options
|
25
27
|
@registry.inject(Blueprints::RootNamespace.root.context.instance_variable_get(:"@#{@iv_name}")) do |value, (method, args, block)|
|
26
28
|
value.send(method, *args, &block)
|
@@ -15,15 +15,15 @@ describe Blueprints::Dependency do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should allow getting instance variable value" do
|
18
|
-
Blueprints::Dependency.new(:blueprint).
|
18
|
+
Blueprints::Dependency.new(:blueprint).blueprint_value.should == @mock
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should allow getting another instance variable" do
|
22
|
-
Blueprints::Dependency.new(:blueprint, :value).
|
22
|
+
Blueprints::Dependency.new(:blueprint, :value).blueprint_value.should == @value
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should allow passing options for building" do
|
26
|
-
Blueprints::Dependency.new(:blueprint, :option => 'value').
|
26
|
+
Blueprints::Dependency.new(:blueprint, :option => 'value').blueprint_value.should == {:option => 'value'}
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should record all missing methods" do
|
@@ -34,6 +34,16 @@ describe Blueprints::Dependency do
|
|
34
34
|
mock1.expects(:method2).with(1).returns(mock2 = mock)
|
35
35
|
mock2.expects(:method3).with().yields(mock(:method4 => true)).returns(result = mock)
|
36
36
|
|
37
|
-
dependency.
|
37
|
+
dependency.blueprint_value.should == result
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should record to_s, id and other standard methods" do
|
41
|
+
dependency = Blueprints::Dependency.new(:blueprint)
|
42
|
+
dependency.id.to_s
|
43
|
+
|
44
|
+
@mock.expects(:id).returns(mock1 = mock)
|
45
|
+
mock1.expects(:to_s).returns(result = mock)
|
46
|
+
|
47
|
+
dependency.blueprint_value.should == result
|
38
48
|
end
|
39
49
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blueprints
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 2
|
10
|
+
version: 0.8.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrius Chamentauskas
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-23 00:00:00 +03:00
|
19
19
|
default_executable: blueprintify
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|