Class: Json2properties
- Inherits:
-
Object
- Object
- Json2properties
- Defined in:
- lib/json2properties.rb
Constant Summary collapse
- VERSION =
'0.0.5'- SEPARATOR =
'.'
Instance Method Summary collapse
-
#convert_file(src, dest) ⇒ Object
json => properites.
-
#initialize ⇒ Json2properties
constructor
A new instance of Json2properties.
-
#json2kv(json) ⇒ Object
json string => flat k-v hash.
-
#kv2json(kv) ⇒ Object
flat k-v hash => json string.
-
#unconvert_file(src, dest) ⇒ Object
properites => json.
Constructor Details
#initialize ⇒ Json2properties
30 31 32 |
# File 'lib/json2properties.rb', line 30 def initialize reset_state end |
Instance Method Details
#convert_file(src, dest) ⇒ Object
json => properites
35 36 37 |
# File 'lib/json2properties.rb', line 35 def convert_file(src, dest) JavaProperties.write(json2kv(File.read(src)), dest) end |
#json2kv(json) ⇒ Object
json string => flat k-v hash
46 47 48 49 50 51 |
# File 'lib/json2properties.rb', line 46 def json2kv(json) reset_state data = JSON.parse(json) process_json_hash(data) @ret end |
#kv2json(kv) ⇒ Object
flat k-v hash => json string
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/json2properties.rb', line 54 def kv2json(kv) reset_state kv.stringify_keys! ret = {} kv.each_pair do |k,v| tmp = ret parts = k.split(SEPARATOR) parts.each_index do |i| part = parts[i] next_part = parts[i+1] part = part.to_i if ( part.is_i? && !part.is_numeric_leading_zero? ) if tmp[part].nil? if next_part.nil? tmp[part] = fix_type(v) elsif next_part.is_i? && !next_part.is_numeric_leading_zero? tmp[part] = [] else tmp[part] = {} end end tmp = tmp[part] end end JSON.pretty_generate(ret) end |
#unconvert_file(src, dest) ⇒ Object
properites => json
40 41 42 43 |
# File 'lib/json2properties.rb', line 40 def unconvert_file(src, dest) kv = JavaProperties.load(src) File.write(dest, kv2json(kv)) end |