service_container 0.5.0 → 1.0.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.
- checksums.yaml +4 -4
- data/lib/di.rb +8 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb3c26d617ddc0e0a918ab082abff4b7ffcd3efc
|
4
|
+
data.tar.gz: c9aa1c9aed12fcaaaa249a1adc7e0380d3898031
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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:
|
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
|
43
|
+
summary: A light-weight di container for ruby
|
44
44
|
test_files: []
|