dependancy 0.0.2 → 0.0.3
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/dependancy.rb +15 -4
- data/lib/dependancy/version.rb +1 -1
- data/spec/lib/dependancy_spec.rb +27 -3
- metadata +7 -7
data/lib/dependancy.rb
CHANGED
@@ -21,10 +21,21 @@ module Dependancy
|
|
21
21
|
attr_writer name
|
22
22
|
|
23
23
|
define_method name do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
var_name = "@#{name}"
|
25
|
+
|
26
|
+
if instance_variable_defined?(var_name)
|
27
|
+
instance_variable_get(var_name)
|
28
|
+
|
29
|
+
else
|
30
|
+
val = begin
|
31
|
+
yield self
|
32
|
+
rescue
|
33
|
+
nil
|
34
|
+
end
|
35
|
+
|
36
|
+
instance_variable_set var_name, val
|
37
|
+
|
38
|
+
val
|
28
39
|
end
|
29
40
|
end
|
30
41
|
end
|
data/lib/dependancy/version.rb
CHANGED
data/spec/lib/dependancy_spec.rb
CHANGED
@@ -27,12 +27,25 @@ describe Dependancy do
|
|
27
27
|
Blur.new
|
28
28
|
end
|
29
29
|
|
30
|
-
dependancy :bar4
|
30
|
+
dependancy :bar4 do
|
31
|
+
counter
|
32
|
+
Bar.new
|
33
|
+
end
|
34
|
+
|
35
|
+
dependancy :bar5
|
36
|
+
|
37
|
+
def self.counter
|
38
|
+
@count ||= 0
|
39
|
+
@count += 1
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.count
|
43
|
+
@count
|
44
|
+
end
|
31
45
|
end
|
32
46
|
|
33
47
|
it '._dependancies' do
|
34
|
-
Foo._dependancies.should have(
|
35
|
-
Foo._dependancies.should == [:bar1, :bar2, :bar3, :bar4]
|
48
|
+
Foo._dependancies.should have(5).items
|
36
49
|
end
|
37
50
|
|
38
51
|
it 'dependancy have default value' do
|
@@ -58,4 +71,15 @@ describe Dependancy do
|
|
58
71
|
foo = Foo.new
|
59
72
|
foo.bar3.should be_nil
|
60
73
|
end
|
74
|
+
|
75
|
+
it 'only eval dependancy block once' do
|
76
|
+
foo = Foo.new
|
77
|
+
foo.bar4
|
78
|
+
foo.bar4.should be_a Bar
|
79
|
+
|
80
|
+
foo.bar4 = 'stub'
|
81
|
+
foo.bar4.should == 'stub'
|
82
|
+
|
83
|
+
Foo.count.should == 1
|
84
|
+
end
|
61
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependancy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-03-15 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &9991900 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *9991900
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: guard-rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &9991640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *9991640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ruby-debug19
|
38
|
-
requirement: &
|
38
|
+
requirement: &9991370 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *9991370
|
47
47
|
description: Getters & setters for dependency injection
|
48
48
|
email:
|
49
49
|
- Aaron2Ti@gmail.com
|