hash_wia 0.7.8 → 0.7.12

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: 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