sting 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sting.rb +30 -2
  3. data/lib/sting/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b65a6d87b0bcbc6b08a54e64881dc3965fcaa59f74c6a1b5a13278338be842b
4
- data.tar.gz: d6df449a3a2c7dc7d8dd9607d1174b8dc62dd1248ca6cfe21c27d8faad338d3b
3
+ metadata.gz: ddebedec4cecec6db3c92d487c60b6a4b841a5aeb93ad668ef101a12ece92334
4
+ data.tar.gz: 401bc1ff2e7c00631bca054a957fc28475094c85ec6b368f207ebe1185100855
5
5
  SHA512:
6
- metadata.gz: 7232b49a897bb4831d8de5ca96af63ff3bb302b34aa3ee18251103c21f2d298056ef177cd51f17e4f6e022df70041604567a1ffe9171d102ea715b7cf32f1e0e
7
- data.tar.gz: 28a54062e6ee9e7b34d8882e6a7c600382e5927ffdd6a50f4b86a730d524fe455ee6c8254c39c8128fe90d5e096ee767a7978e9048b2aa6fdf80f163b812a19f
6
+ metadata.gz: 6076bc7d1301e66d30074d06ac3601aabd9461ba71e68362af647e081714305c402cea41b1d88276ec5d6d6e0cd466dfdbd8067ee41e7f5e6bd8a6f7d7ad1e33
7
+ data.tar.gz: ff0ff3133cae18cedbf06106a66ded80dacabc3ad184f35fe11893d2e5ae994a32093d149c5cc9ec2437fd6e13d1ab7f76ed559f94c17a894d06feed53510dbb
@@ -14,8 +14,36 @@ class Sting
14
14
  settings[key.to_s]
15
15
  end
16
16
 
17
- def method_missing(method, *_)
18
- settings[method.to_s]
17
+ def method_missing(name, *args, &blk)
18
+ name = name.to_s
19
+ return settings[name] if has_key? name
20
+
21
+ suffix = nil
22
+
23
+ if name.end_with? *['=', '!', '?']
24
+ suffix = name[-1]
25
+ name = name[0..-2]
26
+ end
27
+
28
+ case suffix
29
+ when "="
30
+ settings[name] = args.first
31
+
32
+ when "?"
33
+ !!settings[name]
34
+
35
+ when "!"
36
+ if has_key? name
37
+ return settings[name]
38
+ else
39
+ raise ArgumentError, "Key '#{name}' does not exist"
40
+ end
41
+
42
+ else
43
+ nil
44
+
45
+ end
46
+
19
47
  end
20
48
 
21
49
  def settings
@@ -1,3 +1,3 @@
1
1
  class Sting
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sting
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-27 00:00:00.000000000 Z
11
+ date: 2018-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug