hash_wia 0.7.8 → 0.7.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21e40421e8ced866ff9c01722a96aa65ce053e1b390a20d72cb0787675b27a7f
4
- data.tar.gz: df0fe8a0757afe5f4b1da1532f7be50a6dc74e2b0849e0daf8827364b544461e
3
+ metadata.gz: 21df027abd49f7b71a57b22e4b33eae7a9446132b7afb300368de7d0d4b7f365
4
+ data.tar.gz: 529fe29a3eec11e03a54e99770ea8706bae0a9c24e6797e9cca2ad1e47223668
5
5
  SHA512:
6
- metadata.gz: cec9c611371fb8714af48b9167a26685a142bc6051a82b85d021d49b9fa45a21727094be6db1b2c9f39ebe408e3e1957ccb3cabfc1083d1ee47891791426820b
7
- data.tar.gz: e0fdc27f40a2bb965194f50ca43d08b784cc0d5e1649a62879cd3deec5af4b4e61c597ba6a24703f3f136cafd091047e73da07b3499693bef2bd912b761ba496
6
+ metadata.gz: 853abb6448ccc27730dba7880edd91f70e54d1a865537397ede4706c1b10fbfa207236090353da19ef7bfadb3fb20673b4c198e56746cd40201ba77056cbb163
7
+ data.tar.gz: fa564c45e2b991fce99ef8c6f0dbdc786c92a2d1de55533b9bd4d0e9da2448eb12a3b8aa9ae3c28441a423da084a108bf6f1e7e584354b070e5ee368644e0d10
data/.version CHANGED
@@ -1 +1 @@
1
- 0.7.8
1
+ 0.7.12
@@ -9,10 +9,6 @@ class HashWia
9
9
  end
10
10
 
11
11
  def set constant, code, name
12
- if code.class == Symbol
13
- code = code.to_s
14
- end
15
-
16
12
  @hash[constant.to_s] = code
17
13
  @hash[code] = name.to_s
18
14
  end
@@ -36,6 +32,11 @@ def HashWia klass = nil, name = nil, opts = nil
36
32
  if block_given?
37
33
  hash = HashWia.new
38
34
 
35
+ if klass.class == Hash
36
+ opts = klass
37
+ klass = nil
38
+ end
39
+
39
40
  if name
40
41
  if !opts || opts[:constant] != false
41
42
  constant = name.to_s.upcase
@@ -47,6 +48,11 @@ def HashWia klass = nil, name = nil, opts = nil
47
48
 
48
49
  named_opts = HashWia::NamedOptions.new hash
49
50
  yield named_opts
51
+
52
+ if !opts || opts[:freeze] != false
53
+ hash.freeze
54
+ end
55
+
50
56
  hash
51
57
  else
52
58
  raise ArgumentError, 'Block not provided'
@@ -26,8 +26,8 @@ module HashWiaModule
26
26
  end
27
27
 
28
28
  def []= key, value
29
- if @frozen_keys
30
- raise NoMethodError, "Hash keys are frozen and can't be modified"
29
+ if @frozen_keys && !keys.include?(key)
30
+ raise FrozenError, "HashWia keys are frozen and can't be modified (key: #{key})"
31
31
  end
32
32
 
33
33
  delete key
@@ -16,6 +16,8 @@ class Hash
16
16
  list.each do |k|
17
17
  o[k] = self[k]
18
18
  end
19
+
20
+ o.freeze_keys!
19
21
  end
20
22
  end
21
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_wia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.8
4
+ version: 0.7.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-05 00:00:00.000000000 Z
11
+ date: 2022-02-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Gem provides simple access to common Ruby hash types bundled in one simple
14
14
  class