simple_facade 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 60422f3e16b0e053a12724a0989d1c673f0add38
4
- data.tar.gz: ab44dfe4e40213511cee3f4271238256a509549f
3
+ metadata.gz: 1183065ffac905cb9395cc1c8b7e5c490b4de30e
4
+ data.tar.gz: b5fd29ea1807caac9c758a1540f3c406cb9a6a93
5
5
  SHA512:
6
- metadata.gz: cf72ab829d5035deddbba60cc84645a98576cb197f1d830bb267ac4c24fea8519f655b5e29ce6ad8c93d2c99c09226743b9c1de9dd02c6009591eb5b983dc530
7
- data.tar.gz: f52c02533e65905d9b6f6097c2b697e649b7ead9b0e55074cabe985db0e2bf51128956c74f061261234b413639c1c7802851c75a030a55ae0d286e5a666bec23
6
+ metadata.gz: 37736b2c7749b99cd7f4a774a36d759e4ff863f67da33d6cfaf9909ba4d9404ef4e7bdd3045880d4dd00417a9db84fd02e949cd73351f532316c3bd9efbd5f1c
7
+ data.tar.gz: 7bc6f47156e1184ea94307971acf61ea1428de0de3849b71ffc50cfdc5424c74c503769edbd0f481d8a6eff829a637a946d3acd540eed918dbe44e2445e12861
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_facade (0.1.1)
4
+ simple_facade (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,34 +14,46 @@ module SimpleFacade
14
14
  end
15
15
 
16
16
  def members
17
- subjects.to_h
17
+ @members ||= subjects.to_h
18
18
  end
19
19
 
20
20
  def push(k, v)
21
+ return if v.nil? || k.nil? || key_exists?(k)
22
+ @members = nil
21
23
  subjects.push([k, v])
22
24
  end
23
25
 
24
26
  def pop
27
+ @members = nil
25
28
  subjects.pop
26
29
  end
27
30
 
28
31
  def enqueue(k, v)
32
+ return if v.nil? || k.nil? || key_exists?(k)
33
+ @members = nil
29
34
  subjects.unshift([k, v])
30
35
  end
31
36
 
32
37
  def dequeue
38
+ @members = nil
33
39
  subjects.shift
34
40
  end
35
41
 
36
42
  def insert(index, k, v)
43
+ return if v.nil? || k.nil? || index.nil? || key_exists?(k)
44
+ @members = nil
37
45
  subjects.insert(index, [k, v])
38
46
  end
39
47
 
40
48
  def delete(key)
49
+ return if key.nil?
50
+ @members = nil
41
51
  subjects.delete_at(subjects.index { |el| el.first == key })
42
52
  end
43
53
 
44
54
  def method_missing(method_name, *attrs, &block)
55
+ member = members[method_name]
56
+ return member if member
45
57
  responder = members.values.detect { |obj| obj.respond_to?(method_name) }
46
58
  if responder
47
59
  responder.public_send(method_name, *attrs, &block)
@@ -57,5 +69,9 @@ module SimpleFacade
57
69
  private
58
70
 
59
71
  attr_reader :subjects
72
+
73
+ def key_exists?(key)
74
+ members.keys.include?(key)
75
+ end
60
76
  end
61
77
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleFacade
2
- VERSION = "0.1.1"
2
+ VERSION = '0.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_facade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrii Baran
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-03 00:00:00.000000000 Z
11
+ date: 2020-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler