unclekryon 0.4.9.pre.alpha → 0.4.12.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -26
  3. data/Gemfile.lock +20 -24
  4. data/README.md +3 -2
  5. data/Rakefile +11 -30
  6. data/bin/unclekryon +4 -15
  7. data/hax/kryon.yaml +28 -0
  8. data/hax/kryon_aums_2002-2005.yaml +460 -0
  9. data/hax/kryon_aums_2006.yaml +601 -0
  10. data/hax/kryon_aums_2007.yaml +1024 -0
  11. data/hax/kryon_aums_2008.yaml +950 -0
  12. data/hax/kryon_aums_2009.yaml +496 -0
  13. data/hax/kryon_aums_2010.yaml +1443 -0
  14. data/hax/kryon_aums_2011.yaml +1458 -0
  15. data/hax/kryon_aums_2012.yaml +2123 -0
  16. data/hax/kryon_aums_2013.yaml +1647 -0
  17. data/hax/kryon_aums_2014.yaml +2478 -0
  18. data/hax/kryon_aums_2015.yaml +3386 -0
  19. data/hax/kryon_aums_2016.yaml +3476 -0
  20. data/hax/kryon_aums_2017.yaml +3712 -0
  21. data/hax/kryon_aums_2018.yaml +3654 -0
  22. data/lib/unclekryon/data/album_data.rb +74 -82
  23. data/lib/unclekryon/data/artist_data.rb +24 -36
  24. data/lib/unclekryon/data/artist_data_data.rb +29 -41
  25. data/lib/unclekryon/data/aum_data.rb +20 -32
  26. data/lib/unclekryon/data/base_data.rb +27 -39
  27. data/lib/unclekryon/data/pic_data.rb +25 -37
  28. data/lib/unclekryon/data/release_data.rb +14 -26
  29. data/lib/unclekryon/data/social_data.rb +6 -18
  30. data/lib/unclekryon/data/timespan_data.rb +16 -28
  31. data/lib/unclekryon/dev_opts.rb +7 -19
  32. data/lib/unclekryon/hacker.rb +121 -135
  33. data/lib/unclekryon/iso/base_iso.rb +69 -81
  34. data/lib/unclekryon/iso/can_prov_terr.rb +34 -47
  35. data/lib/unclekryon/iso/country.rb +34 -51
  36. data/lib/unclekryon/iso/language.rb +84 -98
  37. data/lib/unclekryon/iso/region.rb +8 -29
  38. data/lib/unclekryon/iso/subregion.rb +8 -29
  39. data/lib/unclekryon/iso/usa_state.rb +28 -41
  40. data/lib/unclekryon/iso.rb +128 -138
  41. data/lib/unclekryon/jsoner.rb +31 -50
  42. data/lib/unclekryon/log.rb +34 -46
  43. data/lib/unclekryon/parsers/kryon_aum_year_album_parser.rb +163 -167
  44. data/lib/unclekryon/parsers/kryon_aum_year_parser.rb +122 -127
  45. data/lib/unclekryon/server.rb +8 -17
  46. data/lib/unclekryon/trainer.rb +68 -85
  47. data/lib/unclekryon/uploader.rb +8 -17
  48. data/lib/unclekryon/util.rb +80 -92
  49. data/lib/unclekryon/version.rb +4 -16
  50. data/lib/unclekryon.rb +166 -166
  51. data/train/kryon.yaml +6077 -0
  52. data/unclekryon.gemspec +49 -49
  53. metadata +50 -22
@@ -1,28 +1,14 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of UncleKryon-server.
7
- # Copyright (c) 2018-2019 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # UncleKryon-server is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # UncleKryon-server is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU General Public License
20
- # along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2018-2021 Jonathan Bradley Whited
7
+ #
8
+ # SPDX-License-Identifier: GPL-3.0-or-later
21
9
  #++
22
10
 
23
11
 
24
- require 'bundler/setup'
25
-
26
12
  require 'yaml'
27
13
 
28
14
  require 'unclekryon/dev_opts'
@@ -43,7 +29,7 @@ module UncleKryon
43
29
  class Iso
44
30
  DEFAULT_FILEPATH = "#{BaseIsos::DEFAULT_DIR}/iso.yaml"
45
31
  ID = 'ISO'
46
-
32
+
47
33
  @@can_provs_terrs = nil
48
34
  @@countries = nil
49
35
  @@iso = nil
@@ -51,42 +37,43 @@ module UncleKryon
51
37
  @@regions = nil
52
38
  @@subregions = nil
53
39
  @@usa_states = nil
54
-
40
+
55
41
  attr_accessor :updated_can_provs_terrs_on
56
42
  attr_accessor :updated_countries_on
57
43
  attr_accessor :updated_languages_on
58
44
  attr_accessor :updated_regions_on
59
45
  attr_accessor :updated_subregions_on
60
46
  attr_accessor :updated_usa_states_on
61
-
62
- def initialize()
47
+
48
+ def initialize
63
49
  super()
64
-
65
- update_all()
50
+
51
+ update_all
66
52
  end
67
-
68
- def self.can_provs_terrs()
53
+
54
+ def self.can_provs_terrs
69
55
  if !@@can_provs_terrs
70
- @@can_provs_terrs = CanProvsTerrs.load_file()
56
+ @@can_provs_terrs = CanProvsTerrs.load_file
71
57
  end
72
58
  return @@can_provs_terrs
73
59
  end
74
-
75
- def self.countries()
60
+
61
+ def self.countries
76
62
  if !@@countries
77
- @@countries = Countries.load_file()
63
+ @@countries = Countries.load_file
78
64
  end
79
65
  return @@countries
80
66
  end
81
-
67
+
82
68
  def self.find_kryon_locations(text)
83
69
  locs = []
84
-
70
+
85
71
  # Fix bad data
86
- text = text.gsub(/\A[[:space:]]*SASKATOON\-CALGARY[[:space:]]*\z/,'SASKATOON, SASKATCHEWAN, CANADA / CALGARY, ALBERTA, CANADA')
87
-
72
+ text = text.gsub(/\A[[:space:]]*SASKATOON\-CALGARY[[:space:]]*\z/,
73
+ 'SASKATOON, SASKATCHEWAN, CANADA / CALGARY, ALBERTA, CANADA')
74
+
88
75
  # Multiple countries are separated by '/' or '&'
89
- text.split(/[[:space:]]*[\/\&][[:space:]]*/).each() do |t|
76
+ text.split(%r{[[:space:]]*[/\&][[:space:]]*}).each do |t|
90
77
  # Fix misspellings and/or weird shortenings
91
78
  t = t.gsub(/Kansas[[:space:]]*\,[[:space:]]*City/i,'Kansas City')
92
79
  t = t.gsub(/[\+\*]+/,'') # Means more countries, but won't worry about it (since not listed)
@@ -95,9 +82,12 @@ module UncleKryon
95
82
  t = t.gsub(/\A[[:space:]]*NEWPORT[[:space:]]+BEACH[[:space:]]*\z/,'Newport Beach, California')
96
83
  t = t.gsub(/\A[[:space:]]*SAN[[:space:]]+RAFAEL[[:space:]]*\z/,'San Rafael, California')
97
84
  t = t.gsub(/\A[[:space:]]*MILANO\,[[:space:]]*MARITTIMA[[:space:]]*\z/,'MILANO MARITTIMA, ITALY')
98
- t = t.gsub(/\A[[:space:]]*MAR[[:space:]]+DEL[[:space:]]+PLATA[[:space:]]*\z/,'MAR DEL PLATA, ARGENTINA')
99
- t = t.gsub(/\A[[:space:]]*PATAGONIA[[:space:]]+CRUISE[[:space:]]+2012[[:space:]]*\z/,'Patagonia, South America')
100
- t = t.gsub(/\A[[:space:]]*PHILADELPHIA,[[:space:]]+PENNSYLVANNIA[[:space:]]*\z/,'Philadelphia, Pennsylvania')
85
+ t = t.gsub(/\A[[:space:]]*MAR[[:space:]]+DEL[[:space:]]+PLATA[[:space:]]*\z/,
86
+ 'MAR DEL PLATA, ARGENTINA')
87
+ t = t.gsub(/\A[[:space:]]*PATAGONIA[[:space:]]+CRUISE[[:space:]]+2012[[:space:]]*\z/,
88
+ 'Patagonia, South America')
89
+ t = t.gsub(/\A[[:space:]]*PHILADELPHIA,[[:space:]]+PENNSYLVANNIA[[:space:]]*\z/,
90
+ 'Philadelphia, Pennsylvania')
101
91
  t = t.gsub(/\ATHE[[:space:]]+AWAKENING[[:space:]]+ZONE.COM\z/,'World')
102
92
  t = t.gsub(/\ASEDONA, AZ - Summer Light Conference\z/,'Sedona, AZ')
103
93
  t = t.gsub(/\AHAWAII CRUISE 11\z/,'Hawaii')
@@ -113,72 +103,72 @@ module UncleKryon
113
103
  t = t.gsub(/\AHAWAI\'I\s+CRUISE\s+[[:digit:]]+\z/i,'Hawaii')
114
104
  t = t.gsub(/\AALASKA\s+CRUISE\s+[[:digit:]]+\z/i,'Alaska')
115
105
  t = t.gsub(/\AGLASS\s+HOUSE\s+MT\.\s+\(AU\)\z/i,'Glass House Mountains, Australia')
116
-
106
+
117
107
  parts = t.split(/[[:space:]\,\-]+/)
118
108
  last = parts.last
119
- last2 = (parts.length() >= 2) ? (parts[-2] + last) : nil
120
-
109
+ last2 = (parts.length >= 2) ? (parts[-2] + last) : nil
110
+
121
111
  city = nil
122
112
  state = nil
123
- country = countries().find_by_name(last) # By name because e.g. code CO is Colorado and Colombia
113
+ country = countries.find_by_name(last) # By name because e.g. code CO is Colorado and Colombia
124
114
  subregion = nil
125
115
  region = nil
126
-
116
+
127
117
  parse_state = true
128
- state_i = parts.length() - 1
129
-
118
+ state_i = parts.length - 1
119
+
130
120
  # USA state?
131
- if country.nil?()
121
+ if country.nil?
132
122
  parse_state = false
133
- state = usa_states().find(last)
134
-
135
- if state.nil?() && !last2.nil?()
136
- state = usa_states().find_by_name(last2)
137
- state_i = parts.length() - 2 unless state.nil?()
123
+ state = usa_states.find(last)
124
+
125
+ if state.nil? && !last2.nil?
126
+ state = usa_states.find_by_name(last2)
127
+ state_i = parts.length - 2 unless state.nil?
138
128
  end
139
-
140
- if state.nil?()
129
+
130
+ if state.nil?
141
131
  # CAN prov/terr? (use state var)
142
- state = can_provs_terrs().find(last)
143
-
144
- if state.nil?() && !last2.nil?()
145
- state = can_provs_terrs().find_by_name(last2)
146
- state_i = parts.length() - 2 unless state.nil?()
132
+ state = can_provs_terrs.find(last)
133
+
134
+ if state.nil? && !last2.nil?
135
+ state = can_provs_terrs.find_by_name(last2)
136
+ state_i = parts.length - 2 unless state.nil?
147
137
  end
148
-
149
- if state.nil?()
138
+
139
+ if state.nil?
150
140
  # Try country code
151
- country = countries().find_by_code(last) # Try by code; e.g., CAN for Canada
152
-
153
- if country.nil?()
154
- country = countries().find_by_name(t)
155
- state_i = 0 unless country.nil?()
141
+ country = countries.find_by_code(last) # Try by code; e.g., CAN for Canada
142
+
143
+ if country.nil?
144
+ country = countries.find_by_name(t)
145
+ state_i = 0 unless country.nil?
156
146
  end
157
- if country.nil?() && !last2.nil?()
158
- country = countries().find_by_name(last2)
159
- state_i = 0 unless country.nil?()
147
+ if country.nil? && !last2.nil?
148
+ country = countries.find_by_name(last2)
149
+ state_i = 0 unless country.nil?
160
150
  end
161
-
162
- if country.nil?()
151
+
152
+ if country.nil?
163
153
  # Subregion?
164
- subregion = subregions().find_by_name(t)
165
-
166
- if subregion.nil?() && !last2.nil?()
167
- subregion = subregions().find_by_name(last2)
154
+ subregion = subregions.find_by_name(t)
155
+
156
+ if subregion.nil? && !last2.nil?
157
+ subregion = subregions.find_by_name(last2)
168
158
  end
169
-
170
- if subregion.nil?()
159
+
160
+ if subregion.nil?
171
161
  # Region?
172
- region = regions().find_by_name(t)
173
-
174
- if region.nil?() && !last2.nil?()
175
- region = regions().find_by_name(last2)
162
+ region = regions.find_by_name(t)
163
+
164
+ if region.nil? && !last2.nil?
165
+ region = regions.find_by_name(last2)
176
166
  end
177
-
178
- if region.nil?()
167
+
168
+ if region.nil?
179
169
  msg = %Q(No state/country/region: "#{text}","#{t}","#{last}")
180
-
181
- if DevOpts.instance.dev?()
170
+
171
+ if DevOpts.instance.dev?
182
172
  raise msg
183
173
  else
184
174
  log.warn(msg)
@@ -197,111 +187,111 @@ module UncleKryon
197
187
  end
198
188
  else
199
189
  state = state.code
200
- country = countries().find_by_code('CAN').code
190
+ country = countries.find_by_code('CAN').code
201
191
  end
202
192
  else
203
193
  state = state.code
204
- country = countries().find_by_code('USA').code
194
+ country = countries.find_by_code('USA').code
205
195
  end
206
196
  else
207
197
  country = country.code
208
198
  end
209
-
210
- if region.nil?() || subregion.nil?()
199
+
200
+ if region.nil? || subregion.nil?
211
201
  # Not USA
212
202
  if parse_state
213
- if parts.length() >= 2
214
- state = parts[-2].gsub(/[[:space:]]+/,' ').strip()
215
-
203
+ if parts.length >= 2
204
+ state = parts[-2].gsub(/[[:space:]]+/,' ').strip
205
+
216
206
  # CAN prov/terr? (use state var)
217
- if country == countries().find_by_code('CAN').code
218
- state = can_provs_terrs().find(state)
219
-
220
- if state.nil?()
221
- if parts.length() >= 3
222
- state = can_provs_terrs().find_by_name(parts[-3] + parts[-2])
223
- state_i = parts.length() - 3 unless state.nil?()
207
+ if country == countries.find_by_code('CAN').code
208
+ state = can_provs_terrs.find(state)
209
+
210
+ if state.nil?
211
+ if parts.length >= 3
212
+ state = can_provs_terrs.find_by_name(parts[-3] + parts[-2])
213
+ state_i = parts.length - 3 unless state.nil?
224
214
  end
225
215
  else
226
216
  state = state.code
227
- state_i = parts.length() - 2
217
+ state_i = parts.length - 2
228
218
  end
229
219
  else
230
- if state.length() == 2
231
- state = state.upcase()
232
- state_i = parts.length() - 2
220
+ if state.length == 2
221
+ state = state.upcase
222
+ state_i = parts.length - 2
233
223
  else
234
224
  state = nil
235
225
  end
236
226
  end
237
227
  end
238
228
  end
239
-
229
+
240
230
  # City
241
231
  city = []
242
- for i in 0...state_i
243
- c = parts[i].gsub(/[[:space:]]+/,' ').strip()
244
- city.push(c) unless c.empty?()
232
+ (0...state_i).each do |i|
233
+ c = parts[i].gsub(/[[:space:]]+/,' ').strip
234
+ city.push(c) unless c.empty?
245
235
  end
246
- city = city.compact()
247
- city = city.empty?() ? nil : city.map(&:capitalize).join(' ')
248
-
236
+ city = city.compact
237
+ city = city.empty? ? nil : city.map(&:capitalize).join(' ')
238
+
249
239
  # Region
250
- if !country.nil?()
251
- region = countries().find_by_code(country).region
240
+ if !country.nil?
241
+ region = countries.find_by_code(country).region
252
242
  end
253
243
  end
254
-
244
+
255
245
  # Location
256
246
  loc = [city,state,country,subregion,region] # Don't do compact(); we want all 4 ','
257
- locs.push(loc.join(',')) unless loc.compact().empty?()
247
+ locs.push(loc.join(',')) unless loc.compact.empty?
258
248
  end
259
-
260
- return locs.empty?() ? nil : locs
249
+
250
+ return locs.empty? ? nil : locs
261
251
  end
262
-
263
- def self.iso()
252
+
253
+ def self.iso
264
254
  if !@@iso
265
- @@iso = Iso.load_file()
255
+ @@iso = Iso.load_file
266
256
  end
267
257
  return @@iso
268
258
  end
269
-
270
- def self.languages()
259
+
260
+ def self.languages
271
261
  if !@@languages
272
- @@languages = Languages.load_file()
262
+ @@languages = Languages.load_file
273
263
  end
274
264
  return @@languages
275
265
  end
276
-
266
+
277
267
  def self.load_file(filepath=DEFAULT_FILEPATH)
278
268
  y = YAML.load_file(filepath)
279
269
  iso = y[ID]
280
270
  return iso
281
271
  end
282
-
283
- def self.regions()
272
+
273
+ def self.regions
284
274
  if !@@regions
285
- @@regions = Regions.load_file()
275
+ @@regions = Regions.load_file
286
276
  end
287
277
  return @@regions
288
278
  end
289
-
279
+
290
280
  def save_to_file(filepath=DEFAULT_FILEPATH)
291
281
  File.open(filepath,'w') do |f|
292
- iso = {ID=>self}
282
+ iso = {ID => self}
293
283
  YAML.dump(iso,f)
294
284
  end
295
285
  end
296
-
297
- def self.subregions()
286
+
287
+ def self.subregions
298
288
  if !@@subregions
299
- @@subregions = Subregions.load_file()
289
+ @@subregions = Subregions.load_file
300
290
  end
301
291
  return @@subregions
302
292
  end
303
-
304
- def update_all()
293
+
294
+ def update_all
305
295
  @updated_can_provs_terrs_on = BaseData.max_updated_on_s(self.class.can_provs_terrs.values)
306
296
  @updated_countries_on = BaseData.max_updated_on_s(self.class.countries.values)
307
297
  @updated_languages_on = BaseData.max_updated_on_s(self.class.languages.values)
@@ -309,16 +299,16 @@ module UncleKryon
309
299
  @updated_subregions_on = BaseData.max_updated_on_s(self.class.subregions.values)
310
300
  @updated_usa_states_on = BaseData.max_updated_on_s(self.class.usa_states.values)
311
301
  end
312
-
313
- def self.usa_states()
302
+
303
+ def self.usa_states
314
304
  if !@@usa_states
315
- @@usa_states = UsaStates.load_file()
305
+ @@usa_states = UsaStates.load_file
316
306
  end
317
307
  return @@usa_states
318
308
  end
319
-
320
- def to_s()
321
- s = 'Updated On:'.dup()
309
+
310
+ def to_s
311
+ s = 'Updated On:'.dup
322
312
  s << "\n- CAN Provs/Terrs: #{@updated_can_provs_terrs_on}"
323
313
  s << "\n- Countries: #{@updated_countries_on}"
324
314
  s << "\n- Languages: #{@updated_languages_on}"
@@ -330,7 +320,7 @@ module UncleKryon
330
320
  end
331
321
  end
332
322
 
333
- if $0 == __FILE__
323
+ if $PROGRAM_NAME == __FILE__
334
324
  puts UncleKryon::Iso.can_provs_terrs['ON']
335
325
  puts UncleKryon::Iso.countries['USA']
336
326
  puts UncleKryon::Iso.languages['eng']
@@ -1,33 +1,14 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of UncleKryon-server.
7
- # Copyright (c) 2020 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # UncleKryon-server is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # UncleKryon-server is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU General Public License
20
- # along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2020-2021 Jonathan Bradley Whited
7
+ #
8
+ # SPDX-License-Identifier: GPL-3.0-or-later
21
9
  #++
22
10
 
23
11
 
24
- IS_SCRIPT = $0 == __FILE__
25
-
26
- if IS_SCRIPT
27
- require 'rubygems'
28
- require 'bundler/setup'
29
- end
30
-
31
12
  require 'json'
32
13
  require 'yaml'
33
14
 
@@ -41,84 +22,84 @@ module UncleKryon
41
22
  class Jsoner
42
23
  def jsonify_all(pretty=false)
43
24
  json = {}
44
-
25
+
45
26
  #jsonify_iso(json)
46
27
  jsonify_artists(json)
47
-
48
- return pretty ? JSON.pretty_generate(json) : json.to_json()
28
+
29
+ return pretty ? JSON.pretty_generate(json) : json.to_json
49
30
  end
50
-
31
+
51
32
  def jsonify_artists(json)
52
33
  json['aum'] = {}
53
34
  json['scroll'] = {}
54
35
  json['vision'] = {}
55
36
  json['pic'] = {}
56
-
37
+
57
38
  kryon = to_hash(ArtistData.load_file(File.join('hax','kryon.yaml')))
58
-
39
+
59
40
  kryon['release'] = {}
60
41
  kryon['album'] = {}
61
-
42
+
62
43
  jsonify_artist_data(json,kryon,File.join('hax','kryon_aums_2002-2005.yaml'))
63
-
44
+
64
45
  json['artist'] = {
65
46
  kryon['id'] => kryon
66
47
  }
67
48
  end
68
-
49
+
69
50
  def jsonify_artist_data(json,artist,file)
70
51
  data = ArtistDataData.load_file(file)
71
-
72
- data.albums.each() do |album_id,album|
73
- album.aums.each() do |aum_id,aum|
52
+
53
+ data.albums.each do |album_id,album|
54
+ album.aums.each do |aum_id,aum|
74
55
  json[ArtistDataData::AUMS_ID][aum_id] = to_hash(aum)
75
56
  end
76
57
  album.aums = album.aums.keys
77
-
78
- album.pics.each() do |pic_id,pic|
58
+
59
+ album.pics.each do |pic_id,pic|
79
60
  json[ArtistDataData::PICS_ID][pic_id] = to_hash(pic)
80
61
  end
81
62
  album.pics = album.pics.keys
82
63
  end
83
-
64
+
84
65
  artist[ArtistDataData::ALBUMS_ID] = to_hash(data.albums)
85
-
66
+
86
67
  #attr_accessor :scrolls
87
68
  #attr_accessor :visions
88
69
  end
89
-
70
+
90
71
  def jsonify_iso(json)
91
72
  json['iso'] = to_hash(Iso.iso)
92
- json['can_proter'] = to_hash(Iso.can_provs_terrs.values)
73
+ json['can_proterr'] = to_hash(Iso.can_provs_terrs.values)
93
74
  json['country'] = to_hash(Iso.countries.values)
94
75
  json['language'] = to_hash(Iso.languages.values)
95
76
  json['region'] = to_hash(Iso.regions.values)
96
77
  json['subregion'] = to_hash(Iso.subregions.values)
97
78
  json['usa_state'] = to_hash(Iso.usa_states.values)
98
79
  end
99
-
80
+
100
81
  def to_hash(obj)
101
82
  hash = {}
102
-
83
+
103
84
  if obj.respond_to?(:instance_variables) && obj.instance_variables.length > 0
104
- obj.instance_variables.each() do |var|
105
- hash[var.to_s().delete('@')] = to_hash(obj.instance_variable_get(var))
85
+ obj.instance_variables.each do |var|
86
+ hash[var.to_s.delete('@')] = to_hash(obj.instance_variable_get(var))
106
87
  end
107
88
  elsif obj.is_a?(Hash)
108
- obj.each() do |k,v|
89
+ obj.each do |k,v|
109
90
  hash[k] = to_hash(v)
110
91
  end
111
92
  else
112
- return Util.empty_s?(obj.to_s()) ? nil : obj
93
+ return Util.empty_s?(obj.to_s) ? nil : obj
113
94
  end
114
-
95
+
115
96
  return hash
116
97
  end
117
98
  end
118
99
  end
119
100
 
120
- if IS_SCRIPT
121
- j = UncleKryon::Jsoner.new()
122
-
101
+ if $PROGRAM_NAME == __FILE__
102
+ j = UncleKryon::Jsoner.new
103
+
123
104
  puts j.jsonify_all(true)
124
105
  end