service_container 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/di.rb +8 -1
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4367bca35ecb50760faf9afe65f82504a3f1e61f
4
- data.tar.gz: f116ed953eb79109b65d0611365af49fee4b38f8
3
+ metadata.gz: bb3c26d617ddc0e0a918ab082abff4b7ffcd3efc
4
+ data.tar.gz: c9aa1c9aed12fcaaaa249a1adc7e0380d3898031
5
5
  SHA512:
6
- metadata.gz: 2490f9922ceecd85073ba8cd52d260b2fde4bf64d3ea6e9d3f29d5eee966fd9d8809f4b0e1712ea9a9da4e4086e5c117b58ef634dfb492f17d024cc0b4a11bde
7
- data.tar.gz: c3a8e0fade9428ce517b8afe9f978e4c0b7c369930869b7aa39d287e98af9787dfdd614224ef0e40a37f16eee5153be3c0bfa01ec991bb02321932793acab4d4
6
+ metadata.gz: e73ca96135fc7c0372d44e8616c98b66dab8c3e24a27a4256bd299b57f469e8e332ab574bf3d64d40fdff3d1d113ce69cbb3851e5f6aa25f31b2d6f62136f63b
7
+ data.tar.gz: 07eeed84e78e15a6ddbf6e552a9a39e615119d70230acf3f62a99903a469c418b76fb20c9c1167262c8ad8032a4a8a361da1231437ed4d08c5c086de6bf247a1
data/lib/di.rb CHANGED
@@ -17,6 +17,7 @@ module DI
17
17
 
18
18
  def initialize
19
19
  @services = {}
20
+ @cache = {}
20
21
  end
21
22
 
22
23
  # Registers a service named +name+. The +block+ will be used to
@@ -29,8 +30,9 @@ module DI
29
30
  @services[name] = block
30
31
  end
31
32
 
33
+ # Retrieves a service named +name+
32
34
  def get(name)
33
- service_block(name).call(self)
35
+ @cache[name] ||= service_block(name).call(self)
34
36
  end
35
37
 
36
38
  # Return the block that creates the named service. Throw an
@@ -39,5 +41,10 @@ module DI
39
41
  def service_block(name)
40
42
  @services[name] || fail(MissingServiceError, "No service is registered with the name '#{name}'")
41
43
  end
44
+
45
+ # Resets the cached services
46
+ def clear_cache!
47
+ @cache = {}
48
+ end
42
49
  end
43
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_container
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chanaka Sandaruwan
@@ -10,7 +10,7 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-07-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A small dependendency injection container
13
+ description: A small dependendency injection container for ruby
14
14
  email: chanakasan@gmail.com
15
15
  executables: []
16
16
  extensions: []
@@ -29,7 +29,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 1.9.3
33
33
  required_rubygems_version: !ruby/object:Gem::Requirement
34
34
  requirements:
35
35
  - - ">="
@@ -40,5 +40,5 @@ rubyforge_project:
40
40
  rubygems_version: 2.2.3
41
41
  signing_key:
42
42
  specification_version: 4
43
- summary: A light-weight IOC container
43
+ summary: A light-weight di container for ruby
44
44
  test_files: []