dependancy 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -49,6 +49,12 @@ foo.bar1.is_a? Bar # true
49
49
  foo.bar2.is_a? Bar # true
50
50
  foo.bar2.name == foo.name # true
51
51
 
52
+ bar = Bar.new
53
+ foo = Foo.bild bar: bar
54
+ foo.bar == bar # true
55
+
56
+ foo = Dependancy::Bild.bild Foo, bar: bar
57
+ foo.bar == bar # true
52
58
  ```
53
59
 
54
60
  Tested in ruby 1.9.2
@@ -1,6 +1,10 @@
1
- require "dependancy/version"
1
+ require 'dependancy/version'
2
2
 
3
3
  module Dependancy
4
+ autoload :Bild, 'dependancy/bild'
5
+
6
+ include Bild::ClassMethods
7
+
4
8
  def _dependancies
5
9
  @_dependancies || []
6
10
  end
@@ -0,0 +1,34 @@
1
+ module Dependancy
2
+ module Bild
3
+ module ClassMethods
4
+ def bild(dependancies = {})
5
+ Bild.bild self, dependancies
6
+ end
7
+ end
8
+
9
+ #
10
+ # class Foo
11
+ # dependancy :bar
12
+ # end
13
+ #
14
+ # class Bar
15
+ # end
16
+ #
17
+ # bar = Bar.new
18
+ #
19
+ # include Dependancies::Bild
20
+ # foo = bild Foo, bar: bar
21
+ #
22
+ def bild(klass, dependancies = {})
23
+ obj = klass.new
24
+
25
+ dependancies.each do |k, v|
26
+ obj.send "#{k}=", v
27
+ end
28
+
29
+ obj
30
+ end
31
+
32
+ extend self
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module Dependancy
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'dependancy'
3
+ require 'dependancy/bild'
4
+
5
+ describe Dependancy::Bild do
6
+ class Bar
7
+ end
8
+
9
+ class Bild
10
+ end
11
+
12
+ class Foo2
13
+ extend Dependancy
14
+
15
+ dependancy :bar
16
+ dependancy :bild
17
+ end
18
+
19
+ let(:bar) { Bar.new }
20
+
21
+ it '#bild' do
22
+ foo = Dependancy::Bild.bild(Foo2, bar: bar)
23
+ foo.bar.should == bar
24
+ end
25
+
26
+ it 'Mixin .build' do
27
+ foo = Foo2.bild bar: bar
28
+ foo.bar.should == bar
29
+ end
30
+ 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.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-15 00:00:00.000000000Z
12
+ date: 2012-03-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &9510300 !ruby/object:Gem::Requirement
16
+ requirement: &9786350 !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: *9510300
24
+ version_requirements: *9786350
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard-rspec
27
- requirement: &9509770 !ruby/object:Gem::Requirement
27
+ requirement: &9786120 !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: *9509770
35
+ version_requirements: *9786120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: ruby-debug19
38
- requirement: &9509220 !ruby/object:Gem::Requirement
38
+ requirement: &9785900 !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: *9509220
46
+ version_requirements: *9785900
47
47
  description: Getters & setters for dependency injection
48
48
  email:
49
49
  - Aaron2Ti@gmail.com
@@ -61,7 +61,9 @@ files:
61
61
  - Rakefile
62
62
  - dependancy.gemspec
63
63
  - lib/dependancy.rb
64
+ - lib/dependancy/bild.rb
64
65
  - lib/dependancy/version.rb
66
+ - spec/lib/dependancy/bild_spec.rb
65
67
  - spec/lib/dependancy_spec.rb
66
68
  - spec/spec_helper.rb
67
69
  homepage: https://github.com/Aaron2Ti/dependancy
@@ -89,6 +91,7 @@ signing_key:
89
91
  specification_version: 3
90
92
  summary: Java style getters & setters with default values
91
93
  test_files:
94
+ - spec/lib/dependancy/bild_spec.rb
92
95
  - spec/lib/dependancy_spec.rb
93
96
  - spec/spec_helper.rb
94
97
  has_rdoc: