Class: Json2properties

Inherits:
Object
  • Object
show all
Defined in:
lib/json2properties.rb

Constant Summary collapse

VERSION =
'0.0.5'
SEPARATOR =
'.'

Instance Method Summary collapse

Constructor Details

#initializeJson2properties



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