Class: Lucy::JavascriptGenerator

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ JavascriptGenerator

Returns a new instance of JavascriptGenerator.

Yields:

  • (_self)

Yield Parameters:



31
32
33
34
35
# File 'lib/lucy.rb', line 31

def initialize
  @keyed = []
  @raw = []
  yield self if block_given?
end

Instance Attribute Details

#globalObject



61
62
63
# File 'lib/lucy.rb', line 61

def global
  @global || DEFAULT_GLOBAL
end

#init_namespaceObject



65
66
67
# File 'lib/lucy.rb', line 65

def init_namespace
  "if (!#{global}.#{namespace}) { #{namespace} = {}; }"
end

#namespaceObject



57
58
59
# File 'lib/lucy.rb', line 57

def namespace
  @namespace || DEFAULT_NAMESPACE
end

Instance Method Details

#init_namespace?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/lucy.rb', line 69

def init_namespace?
  @init_namespace.nil? ? true : @init_namespace
end

#to_aObject



47
48
49
50
51
# File 'lib/lucy.rb', line 47

def to_a
  (init_namespace? ? [init_namespace] : []) + @keyed.map do |key, value|
    "#{namespace}.#{[key].flatten.join('.')} = #{value};"
  end + @raw
end

#to_jsObject



53
54
55
# File 'lib/lucy.rb', line 53

def to_js
  to_a.join("\n\n")
end

#write(key, obj) ⇒ Object Also known as: []=



37
38
39
# File 'lib/lucy.rb', line 37

def write(key, obj)
  @keyed << [key, ActiveSupport::JSON.encode(obj)]
end

#write_raw(data) ⇒ Object Also known as: <<



42
43
44
# File 'lib/lucy.rb', line 42

def write_raw(data)
  @raw << data
end