# Class: JavaScriptGenerator
[ "README", "AUTHORS", "COPYING", "lib/bivouac/helpers/view/goh/base.rb", "lib/bivouac/helpers/view/goh/form.rb", "lib/bivouac/helpers/view/goh/html.rb", "lib/bivouac/helpers/view/goh/sound.rb", "lib/bivouac/helpers/view/goh/scriptaculous.rb", "lib/bivouac/helpers/view/goh/javascript.rb", nil].each do
JavaScriptGenerator.view_html
BivouacHelpers.view_html
BivouacHelpers::SoundView.view_html
BivouacHelpers::ScriptAculoUsView.view_html
BivouacHelpers::BaseView.view_html
BivouacHelpers::JavaScriptView.view_html
BivouacHelpers::HtmlView.view_html
BivouacHelpers::FormView.view_html
end

Class JavaScriptGenerator < Object

(in files lib/bivouac/helpers/view/goh/javascript.rb )

Methods

Public Instance method: <<(javascript)

Writes raw JavaScript to the page.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 54
54:   def <<(javascript)
55:     @source << javascript
56:   end

Public Instance method: []( id )

Returns a element reference by finding it through id in the DOM. This element can then be used for further method calls. Examples:

  page['blank_slate']                  # => $('blank_slate');
  page['blank_slate'].show             # => $('blank_slate').show();
  page['blank_slate'].show('first').up # => $('blank_slate').show('first').up();
    # File lib/bivouac/helpers/view/goh/javascript.rb, line 24
24:   def []( id )
25:     # JavaScriptElementProxy.new(self, id)
26:   end

Public Instance method: alert(message)

Displays an alert dialog with the given message.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 59
59:   def alert(message)
60:     call( "alert", message )
61:   end

Public Instance method: assign( variable, value )

Assigns the JavaScript variable the given value.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 64
64:   def assign( variable, value )
65:     record "#{variable} = #{value.inspect}"
66:   end

Public Instance method: call(function, *arguments)

Calls the JavaScript function, optionally with the given arguments.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 104
104:   def call(function, *arguments)
105:     record "#{function}(#{arguments_for_call(arguments)});\n"
106:   end

Public Instance method: delay(seconds = 1) {|| ...}

Executes the content of the block after a delay of seconds. Example:

  page.delay(20) do
    page.visual_effect :fade, 'notice'
  end
     # File lib/bivouac/helpers/view/goh/javascript.rb, line 175
175:   def delay(seconds = 1)
176:     record "setTimeout(function() {\n\n"
177:     yield
178:     record "}, #{(seconds * 1000).to_i})"
179:   end

Public Instance method: draggable( id, options = {} )

Creates a script.aculo.us draggable element. See ActionView::Helpers::ScriptaculousHelper for more information.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 70
70:   def draggable( id, options = {} )
71:     record @context.draggable_element_js( id, options ) + ";\n"
72:   end

Public Instance method: drop_receiving( id, options = {} )

Creates a script.aculo.us drop receiving element. See ActionView::Helpers::ScriptaculousHelper for more information.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 76
76:   def drop_receiving( id, options = {} )
77:     record @context.drop_receiving_element_js( id, options ) + ";\n"
78:   end

Public Instance method: hide( *ids )

Hides the visible DOM elements with the given ids.

    # File lib/bivouac/helpers/view/goh/javascript.rb, line 81
81:   def hide( *ids )
82:     loop_on_multiple_args 'Element.hide', ids
83:   end

Public Instance method: insert_html(position, id, data)

Inserts HTML at the specified position relative to the DOM element identified by the given id.

position may be one of:

:top:HTML is inserted inside the element, before the element‘s existing content.
:bottom:HTML is inserted inside the element, after the element‘s existing content.
:before:HTML is inserted immediately preceeding the element.
:after:HTML is inserted immediately following the element.

data may be a string of HTML to insert.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 98
 98:   def insert_html(position, id, data)
 99:     insertion = position.to_s.camelize
100:     call "new Insertion.#{insertion}", id, data
101:   end

Public Instance method: redirect_to(location)

Redirects the browser to the given location.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 109
109:   def redirect_to(location)
110:     assign 'window.location.href', location
111:   end

Public Instance method: remove(*ids)

Removes the DOM elements with the given ids from the page.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 114
114:   def remove(*ids)
115:     loop_on_multiple_args 'Element.remove', ids
116:   end

Public Instance method: replace(id, data)

Replaces the "outer HTML" (i.e., the entire element, not just its contents) of the DOM element with the given id.

data may be a string of HTML to insert. For example:

  # Replace the DOM element having ID 'person-45' with the
  # 'person' partial for the appropriate object.
  replace 'person-45', render( 'person', :object => @person )
     # File lib/bivouac/helpers/view/goh/javascript.rb, line 139
139:   def replace(id, data)
140:     call 'Element.replace', id, data
141:   end

Public Instance method: replace_html(id, data)

Replaces the inner HTML of the DOM element with the given id.

data may be a string of HTML to insert

  # Replace the HTML of the DOM element having ID 'person-45' with the
  # 'person' partial for the appropriate object.
  replace_html 'person-45', render( 'person', :object => @person )
     # File lib/bivouac/helpers/view/goh/javascript.rb, line 126
126:   def replace_html(id, data)
127:     call 'Element.update', id, data
128:   end

Public Instance method: select(pattern)

Returns a collection reference by finding it through a CSS pattern in the DOM. This collection can then be used for further method calls. Examples:

  page.select('p')                      # => $$('p');
  page.select('p.welcome b').first      # => $$('p.welcome b').first();
  page.select('p.welcome b').first.hide # => $$('p.welcome b').first().hide();

You can also use prototype enumerations with the collection. Observe:

  page.select('#items li').each do |value|
    value.hide
  end
  # => $$('#items li').each(function(value) { value.hide(); });

Though you can call the block param anything you want, they are always rendered in the javascript as ‘value, index.’ Other enumerations, like collect() return the last statement:

  page.select('#items li').collect('hidden') do |item|
    item.hide
  end
  # => var hidden = $$('#items li').collect(function(value, index) { return value.hide(); });
    # File lib/bivouac/helpers/view/goh/javascript.rb, line 49
49:   def select(pattern)
50:     # JavaScriptElementCollectionProxy.new(self, pattern)
51:   end

Public Instance method: show(*ids)

Shows hidden DOM elements with the given ids.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 144
144:   def show(*ids)
145:     loop_on_multiple_args 'Element.show', ids
146:   end

Public Instance method: sortable(id, options = {})

Creates a script.aculo.us sortable element. Useful to recreate sortable elements after items get added or deleted.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 150
150:   def sortable(id, options = {})
151:     record @context.sortable_element_js( id, options ) + ";\n"
152:   end

Public Instance method: toggle(*ids)

Toggles the visibility of the DOM elements with the given ids.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 161
161:   def toggle(*ids)
162:     loop_on_multiple_args 'Element.toggle', ids
163:   end

Public Instance method: unsortable( id )

Creates a script.aculo.us unsortable element. Useful to recreate unsortable elements after items get added or deleted.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 156
156:   def unsortable( id )
157:     record @context.unsortable_element_js( id ) + ";\n"
158:   end

Public Instance method: visual_effect(name, element_id = false, js_options = {})

Starts a script.aculo.us visual effect.

     # File lib/bivouac/helpers/view/goh/javascript.rb, line 166
166:   def visual_effect(name, element_id = false, js_options = {})
167:     record( @context.visual_effect( name, element_id, js_options ) + ";\n" )
168:   end