datastruct 0.0.7 → 0.0.9
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 +5 -5
- data/lib/datastruct.rb +8 -5
- metadata +4 -103
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b51c076f8c802f2a12cd89fcc2af06b92f3053162ab921740add779a7e4309f8
|
4
|
+
data.tar.gz: 34a738845f300ad3adfdcade00be8d4aaca1a40570bdaf0333ee8e6837eed321
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0fd224d50f9ac1be0aa52e3a884a3941855ed5a50ced72f48eea91370a8b98f4e48d8171380378c0d435b164ed76d18e18229b21704bf91f585bdd715a439e4
|
7
|
+
data.tar.gz: 2da68207c31897bb736b4729c720ae6f5ff25a4a123a6f40d17c6bfa171eeaa33dd28534d08e80e447670affb0e8b8378532f56187f5bb8d4ad512bd1e0efb97
|
data/lib/datastruct.rb
CHANGED
@@ -178,7 +178,9 @@ class DataStruct
|
|
178
178
|
# @return [Hash]
|
179
179
|
#
|
180
180
|
def to_hash(string_keys: false, deep: false)
|
181
|
-
|
181
|
+
# Builds a hash using property getters. This allows getters to override the
|
182
|
+
# output of this function.
|
183
|
+
data = Hash[self.class::PROPERTIES.map { |key| [key, self.get(key)] }]
|
182
184
|
|
183
185
|
hashify = lambda { |obj|
|
184
186
|
if obj.is_a? DataStruct and deep
|
@@ -190,7 +192,7 @@ class DataStruct
|
|
190
192
|
obj.each_pair { |key, value|
|
191
193
|
# Only stringify the keys of the *top level* of the structure. We have
|
192
194
|
# no business messing with the keys of nested hashes.
|
193
|
-
key = key.to_s if string_keys and obj.equal?
|
195
|
+
key = key.to_s if string_keys and obj.equal? data
|
194
196
|
|
195
197
|
out[key] = hashify[value]
|
196
198
|
}
|
@@ -205,7 +207,8 @@ class DataStruct
|
|
205
207
|
end
|
206
208
|
}
|
207
209
|
|
208
|
-
return
|
210
|
+
return data if not string_keys and not deep
|
211
|
+
return hashify[data]
|
209
212
|
end
|
210
213
|
|
211
214
|
alias_method :to_h, :to_hash
|
@@ -218,7 +221,7 @@ class DataStruct
|
|
218
221
|
# @return [String]
|
219
222
|
#
|
220
223
|
def to_json(*args)
|
221
|
-
|
224
|
+
self.to_hash.to_json(*args)
|
222
225
|
end
|
223
226
|
|
224
227
|
##
|
@@ -229,7 +232,7 @@ class DataStruct
|
|
229
232
|
# @return [String]
|
230
233
|
#
|
231
234
|
def to_yaml(*args)
|
232
|
-
|
235
|
+
self.to_hash.to_yaml(*args)
|
233
236
|
end
|
234
237
|
|
235
238
|
##
|
metadata
CHANGED
@@ -1,113 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datastruct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas Sandven
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rake
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: minitest
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '5'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '5'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mocha
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: byebug
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: yard
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: redcarpet
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '3'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '3'
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
111
13
|
description: |2
|
112
14
|
Datastruct is made to be a more feature rich alternative to Ruby's Struct
|
113
15
|
class. It defines several methods common for data structures, like hash
|
@@ -138,9 +40,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
40
|
version: '0'
|
139
41
|
requirements: []
|
140
42
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.
|
43
|
+
rubygems_version: 2.7.4
|
142
44
|
signing_key:
|
143
45
|
specification_version: 4
|
144
46
|
summary: A great base class for data structures
|
145
47
|
test_files: []
|
146
|
-
has_rdoc:
|