Sha256: 54fa41623e304c8728aef9014759fb1fb259f177be114cfd6871799d8ebf8f73
Contents?: true
Size: 1.77 KB
Versions: 5
Compression:
Stored size: 1.77 KB
Contents
module Ropenlayer module Openlayer class Js attr_accessor :body # == Ropenlayer::Openlayer::Js # # Just a simple JS constructor for objects methods calls and variable setting def initialize(initialize_string = '') @body = initialize_string end # create a new js method # # Ropenlayer::Openlayer::Js.new_method("Element.create", "div", { :class => 'eyecandy', :id => 'my_id'}).to_s # #=> new Element.create("div", { "class":"eyecandy","id":"my_id"}); # def self.new_method(method, options = {}) js_object = new args = options[:args] || [] propierties = options[:propierties] || {} js_object.body = "new #{ method }(" js_object.body << "#{ args.join(', ') }" if args.any? if propierties.keys.any? js_object.body << ", " if args.any? js_object.body << propierties.keys.inject("{") do |propierties_string, propierty| propierties_string << "'#{ propierty }': #{ propierties[propierty] }" propierties_string << ", " unless propierties.keys.last == propierty propierties_string end js_object.body << "}" end js_object.body << ")" js_object end # create a new js global variable: # # Ropenlayer::Js.new_var("test", "1").to_s # #=> var test = "1" # def self.new_var(name, value) new("var #{ name } = #{ value }") end def to_s @body end def to_js "#{ @body };" end end end end
Version data entries
5 entries across 5 versions & 1 rubygems