Class: Shaf::Formable::Builder
- Inherits:
-
Object
- Object
- Shaf::Formable::Builder
- Defined in:
- lib/shaf/formable.rb
Instance Attribute Summary collapse
-
#block ⇒ Object
readonly
Returns the value of attribute block.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
- #call_nested_block(b) ⇒ Object
- #create(&b) ⇒ Object
- #edit(&b) ⇒ Object
- #field(name, opts = {}) ⇒ Object
- #fields(fields) ⇒ Object
- #form ⇒ Object
-
#initialize(block, create: false, edit: false) ⇒ Builder
constructor
A new instance of Builder.
- #method(method) ⇒ Object
- #name(name) ⇒ Object
- #title(title) ⇒ Object
- #type(type) ⇒ Object
Constructor Details
#initialize(block, create: false, edit: false) ⇒ Builder
Returns a new instance of Builder.
111 112 113 114 115 116 117 |
# File 'lib/shaf/formable.rb', line 111 def initialize(block, create: false, edit: false) @block = block @create = create @edit = edit @form = nil @default_method = @create ? :post : :put end |
Instance Attribute Details
#block ⇒ Object (readonly)
Returns the value of attribute block.
109 110 111 |
# File 'lib/shaf/formable.rb', line 109 def block @block end |
Class Method Details
.call(block) ⇒ Object
102 103 104 105 106 107 |
# File 'lib/shaf/formable.rb', line 102 def self.call(block) [ new(block, create: true).call, new(block, edit: true).call ] end |
Instance Method Details
#call ⇒ Object
119 120 121 122 |
# File 'lib/shaf/formable.rb', line 119 def call instance_exec(&block) @form end |
#call_nested_block(b) ⇒ Object
162 163 164 165 166 167 |
# File 'lib/shaf/formable.rb', line 162 def call_nested_block(b) old, @block = @block, b call ensure @block = old end |
#create(&b) ⇒ Object
152 153 154 155 |
# File 'lib/shaf/formable.rb', line 152 def create(&b) return unless @create call_nested_block(b) end |
#edit(&b) ⇒ Object
157 158 159 160 |
# File 'lib/shaf/formable.rb', line 157 def edit(&b) return unless @edit call_nested_block(b) end |
#field(name, opts = {}) ⇒ Object
148 149 150 |
# File 'lib/shaf/formable.rb', line 148 def field(name, opts = {}) form.add_field(name, opts) end |
#fields(fields) ⇒ Object
144 145 146 |
# File 'lib/shaf/formable.rb', line 144 def fields(fields) form.fields = fields end |
#form ⇒ Object
124 125 126 |
# File 'lib/shaf/formable.rb', line 124 def form @form ||= Form.new(method: @default_method) end |
#method(method) ⇒ Object
136 137 138 |
# File 'lib/shaf/formable.rb', line 136 def method(method) form.method = method end |
#name(name) ⇒ Object
128 129 130 |
# File 'lib/shaf/formable.rb', line 128 def name(name) form.name = name end |
#title(title) ⇒ Object
132 133 134 |
# File 'lib/shaf/formable.rb', line 132 def title(title) form.title = title end |
#type(type) ⇒ Object
140 141 142 |
# File 'lib/shaf/formable.rb', line 140 def type(type) form.type = type end |