crystal_clear 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d73a83f2207f99739fac6dd09847da492c4adacf4f84d2e81dc91dcbb531a7b
4
- data.tar.gz: 4a5bbbc38ad3bfe860ea8e470e8e93b2d8fd79317f8659a1a6c33f363aefb827
3
+ metadata.gz: a3ef6fea1c34113faa3119ab57c8a490f9b22f30fc3024e512c0b8c151fb875d
4
+ data.tar.gz: 2986e65eef0b4328a1d79dff694a578252d3196a0a8d8c94abb3dcb7617e920b
5
5
  SHA512:
6
- metadata.gz: 2449c3232478d64e2cb2eb48259befcddaed5625e21435ce88ebcdf755e16659a22faec7d4329ddffb50024c5356885b85d838073a2878287ffc42e23a7e4e8d
7
- data.tar.gz: 60eaec3a450c33ebfc83b406295cdb1b80887bcbaf6a572f0692e0b081e0372efa6393057eb6601735f57ce4e7560ebee4eb8a706ec426221787d7db0506b482
6
+ metadata.gz: 0df814f4ae719b651419acf286845fcee0a6d332d559b449d352626b0ed0a8a68aa2b1ce4820a9a895abd485009b46534c41e0e960c2d95f21082aaa6997eb53
7
+ data.tar.gz: 158938ec47d9a21883dd69ceba6f5bb7ecdf405d6cdc48d05c051dfebce3135651bec5c7cec1dcb3be37c678cde4177256131edb0e7d3003f77cda7c89c437f1
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --format documentation
2
2
  --color
3
- --require spec_helper
@@ -6,10 +6,13 @@ module CrystalClear
6
6
  def initialize(class_name)
7
7
  @instance = nil
8
8
  @provider_class = class_name
9
+ @lock = Mutex.new
9
10
  end
10
11
 
11
12
  def instantiate
12
- @instance ||= @provider_class.new
13
+ @lock.synchronize do
14
+ @instance ||= @provider_class.new
15
+ end
13
16
  end
14
17
 
15
18
  end
@@ -7,12 +7,15 @@ module CrystalClear
7
7
  # @param [Class<? extends CrystalClear::Provider>]
8
8
  def initialize(provider_class)
9
9
  @provider_class = provider_class
10
+ @lock = Mutex.new
10
11
  end
11
12
 
12
13
  # @return [<? extends CrystalClear::Provider>]
13
14
  def instantiate
14
- @provider_instance ||= @provider_class.new
15
- @provider_instance.provide
15
+ @lock.synchronize do
16
+ @provider_instance ||= @provider_class.new
17
+ @provider_instance.provide
18
+ end
16
19
  end
17
20
  end
18
21
 
@@ -1,3 +1,3 @@
1
1
  module CrystalClear
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crystal_clear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jiri Stefek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-13 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubygems_version: 3.1.2
101
+ rubygems_version: 3.3.3
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Simple implementation of DI in ruby.