Sha256: b8638c32db8d744de410e68b092a9bd2df92ca2ba875976d5eacb7f5366df75a

Contents?: true

Size: 841 Bytes

Versions: 1

Compression:

Stored size: 841 Bytes

Contents

$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'session'

def inline_js_for(data)

    case data
    when Hash 
      '{' + data.map {|k,v| "#{k}:#{inline_js_for(v)}"}.join(',') + '}'
    when String 
      "'#{data}'"
    else 
      data.to_s
    end  

end

def creation_call(name, class_name, info)
  "#{name} = #{class_name}({\n" +
    info.keys.sort.map {|key| "\t#{key}:#{inline_js_for(info[key])}"}.join(",\n") + "\n});"
end

def js_sections_for(node)
  [creation_call(node.name, node.node_class.creation_call, node.properties)] +
    node.subviews.map {|child| [js_sections_for(child), "#{node.name}.add(#{child.name});"]}.flatten
end

def js_for(nodes)
  nodes.map {|node| js_sections_for(node)}.flatten.join("\n\n")
end

def js_comments_for text
 ""  #text.map {|line| line.chomp.empty? ? line : "// #{line}"}.join + "\n"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puer-0.0.2 lib/puer/xibtoti.rb