Skip to content

Commit

Permalink
Merge pull request michelson#69 from troya2/master
Browse files Browse the repository at this point in the history
Added full support for arrays of hashes (e.g. yAxis)
  • Loading branch information
xiaods committed Aug 26, 2012
2 parents b0c3542 + a509a02 commit 6a44d90
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions lib/lazy_high_charts/layout_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,21 +67,29 @@ def build_html_output(type, placeholder, object, &block)
end

private
def generate_json_from_hash hash

def generate_json_from_hash hash
hash.each_pair.map do |key, value|
k = key.to_s.camelize.gsub!(/\b\w/) { $&.downcase }
if value.is_a? Hash
%|"#{k}": { #{generate_json_from_hash(value)} }|
else
if value.respond_to?(:js_code) && value.js_code?
%|"#{k}": #{value}|
else
%|"#{k}": #{value.to_json}|
end
end
%|"#{k}": #{generate_json_from_value value}|
end.flatten.join(',')
end

def generate_json_from_value value
if value.is_a? Hash
%|{ #{generate_json_from_hash value} }|
elsif value.is_a? Array
%|[ #{generate_json_from_array value} ]|
elsif value.respond_to?(:js_code) && value.js_code?
value
else
value.to_json
end
end

def generate_json_from_array array
array.map{|value| generate_json_from_value(value)}.join(",")
end

end
end

0 comments on commit 6a44d90

Please sign in to comment.