Method: JSON::Editor.data2model
- Defined in:
- lib/vendor/json_pure/lib/json/editor.rb
.data2model(data, model = nil, parent = nil) ⇒ Object
Convert the Ruby data structure data into tree model data for Gtk and returns the whole model. If the parameter model wasn’t given a new Gtk::TreeStore is created as the model. The parent parameter specifies the parent node (iter, Gtk:TreeIter instance) to which the data is appended, alternativeley the result of the yielded block is used as iter.
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/vendor/json_pure/lib/json/editor.rb', line 121 def Editor.data2model(data, model = nil, parent = nil) model ||= TreeStore.new(Gdk::Pixbuf, String, String) iter = if block_given? yield model else model.append(parent) end case data when Hash iter.type = 'Hash' data.sort.each do |key, value| pair_iter = model.append(iter) pair_iter.type = 'Key' pair_iter.content = key.to_s Editor.data2model(value, model, pair_iter) end when Array iter.type = 'Array' data.each do |value| Editor.data2model(value, model, iter) end when Numeric iter.type = 'Numeric' iter.content = data.to_s when String, true, false, nil iter.type = data.class.name iter.content = data.nil? ? 'null' : data.to_s else iter.type = 'String' iter.content = data.to_s end model end |