Class: Markaby::Rails::RailsBuilder::FormHelperProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/markaby/rails/rails_builder.rb

Overview

This is used for the block variable given to form_for. Typically, an erb template looks as so:

<% form_for :foo do |f|
  <%= f.text_field :bar %>
<% end %>

form_for adds the form tag to the input stream, and assumes that later the user will append the <input> tag to the input stream himself (in erb, this is done with the <%= %> tags).

We could do the following in Markaby:

form_for :foo do |f|
  text f.text_field(:bar)
end

But this is ugly. This is prettier:

form_for :foo do |f|
  f.text_field :bar
end

Instance Method Summary collapse

Constructor Details

#initialize(view, proxied_object) ⇒ FormHelperProxy

Returns a new instance of FormHelperProxy.



56
57
58
59
# File 'lib/markaby/rails/rails_builder.rb', line 56

def initialize(view, proxied_object)
  @view           = view
  @proxied_object = proxied_object
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args, &block) ⇒ Object (private)



67
68
69
70
# File 'lib/markaby/rails/rails_builder.rb', line 67

def method_missing(sym, *args, &block)
  result = @proxied_object.__send__(sym, *args, &block)
  @view.concat(result)
end

Instance Method Details

#respond_to?(sym, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/markaby/rails/rails_builder.rb', line 61

def respond_to?(sym, include_private = false)
  @proxied_object.respond_to?(sym, include_private) || super
end