Module: Campo::Convenience

Included in:
Base
Defined in:
lib/campo.rb

Overview

Iding

Instance Method Summary collapse

Instance Method Details

#bit_of_ruby(*args, &block) ⇒ Object Also known as: haml_ruby_insert

Examples:

Add a bit of code to the markup

form.bit_of_ruby( "= 5 + 1" ) }


40
41
42
43
44
# File 'lib/campo.rb', line 40

def bit_of_ruby( *args, &block  )
  tag = Campo::Haml_Ruby_Insert.new( *args, &block  )
  self << tag
  tag
end

#checkbox(name, label = nil, attributes = {}) ⇒ Object

Parameters:

  • name (String)

    The name html attribute.

  • label (optional, String, nil) (defaults to: nil)

    Give the label a name. Defaults to a capitalised name with _ replaced by spaces.

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



103
104
105
# File 'lib/campo.rb', line 103

def checkbox( name, label=nil, attributes={} )
  input( name, :checkbox, label, attributes )
end

#fieldset(text, attributes = {}, &block) ⇒ Object

Examples:

Fieldset as a block is easiest to read

form.fieldset("Your details") do |f|
  f.text( "full_name",  size: 60 )
  f.text( "dob", "Date of birth: ", size: 8 )
end

Parameters:

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



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

def fieldset( text, attributes={}, &block )
  fieldset = (Fieldset.new(attributes) << Legend.new( text ))
  block.call( fieldset ) if block
  self << fieldset 
  fieldset
end

#input(name, type, label = nil, attributes = {}) ⇒ Object

Parameters:

  • type (:symbol)

    The type html attribute.

  • name (String)

    The name html attribute.

  • label (optional, String, nil) (defaults to: nil)

    Give the label a name. Defaults to a capitalised name with _ replaced by spaces.

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



110
111
112
113
114
115
116
117
118
119
# File 'lib/campo.rb', line 110

def input( name, type, label=nil, attributes={} ) 
  if label.kind_of? Hash
    attributes = label
    label = nil
  end

  field = Campo::Input.new( name, type, attributes ).labelled( label )
  self << field
  field
end

#literal(*args, &block) ⇒ Object

Examples:

Output a literal string

form.literal %Q!%p= "This is a paragraph "!


50
51
52
53
54
# File 'lib/campo.rb', line 50

def literal( *args, &block  )
  tag = Campo::Literal.new( *args, &block  )
  self << tag
  tag
end

#password(name, label = nil, attributes = {}) ⇒ Object

Parameters:

  • name (String)

    The name html attribute.

  • label (optional, String, nil) (defaults to: nil)

    Give the label a name. Defaults to a capitalised name with _ replaced by spaces.

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



92
93
94
# File 'lib/campo.rb', line 92

def password( name, label=nil, attributes={}  )
  input( name, :password, label, attributes  )
end

#radio(name, label = nil, attributes = {}) ⇒ Object

Parameters:

  • name (String)

    The name html attribute.

  • label (optional, String, nil) (defaults to: nil)

    Give the label a name. Defaults to a capitalised name with _ replaced by spaces.

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



98
99
100
# File 'lib/campo.rb', line 98

def radio( name, label=nil, attributes={} )
  input( name, :radio, label, attributes )
end

#select(*args, &block) ⇒ Object

Examples:

# Select with a block of options
f.select("teas") do |s|
  s.with_default
  s.option("ceylon")
  s.option("breakfast")
  s.option("earl grey")
  s.option("oolong")
  s.option("sencha")
end.labelled("Favourite tea:")

# Select using chain of options
form.select("bands").option("Suede").option("Blur").option("Oasis").option("Echobelly").option("Pulp").option("Supergrass").with_default.labelled("Favourite band:")

See Also:



71
72
73
74
75
# File 'lib/campo.rb', line 71

def select( *args, &block )
  select = Campo::Select.new( *args, &block )
  self << select
  select
end

#submit(name = "Submit", label_inner = nil, attributes = {}) ⇒ Object

Parameters:

  • name (optional, String) (defaults to: "Submit")
  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.



123
124
125
126
127
# File 'lib/campo.rb', line 123

def submit( name="Submit", label_inner=nil, attributes={} )
  submit = Campo::Input.new( name, :submit, {value: name}.merge(attributes) )
  self << submit
  submit
end

#text(name, label = nil, attributes = {}) ⇒ Input

Add an input with type of text

Examples:

f.text "full_name",  size: 60 
f.text "dob", "Date of birth: ", size: 8

Parameters:

  • name (String)

    The name html attribute.

  • label (optional, String, nil) (defaults to: nil)

    Give the label a name. Defaults to a capitalised name with _ replaced by spaces.

  • attributes (optional, Hash) (defaults to: {})

    Any attributes you wish to add to the haml element.

Returns:

  • (Input)

    With the attribute ‘type=text`



86
87
88
# File 'lib/campo.rb', line 86

def text( name, label=nil, attributes={}  )
  input( name, :text, label, attributes  )
end

#textarea(*args, &block) ⇒ Object



130
131
132
133
134
# File 'lib/campo.rb', line 130

def textarea( *args, &block  )
  textarea = Campo::Textarea.new( *args )
  self << textarea
  textarea
end