Module: BrainDamage::ResourceHelpers
- Included in:
- ResourceGenerator
- Defined in:
- lib/generators/brain_damage/resource/helpers.rb
Instance Attribute Summary collapse
-
#default_indentation ⇒ Object
Returns the value of attribute default_indentation.
Instance Method Summary collapse
- #display_field_names(field_names, options = {}) ⇒ Object
- #display_for(field_name, options = {}) ⇒ Object
- #display_with_label_for(field_name, options = {}) ⇒ Object
- #encapsulate_block_in_view_context(&block) ⇒ Object
- #indent_or_die(html, indentation = default_indentation) ⇒ Object
- #input_for(field_name, options = {}) ⇒ Object
- #input_with_label_for(field_name, options = {}) ⇒ Object
- #label_for(field_name, options = {}) ⇒ Object
- #label_text_for(field_name, options = {}) ⇒ Object
- #template_hook(arg) ⇒ Object
Instance Attribute Details
#default_indentation ⇒ Object
Returns the value of attribute default_indentation.
3 4 5 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 3 def default_indentation @default_indentation end |
Instance Method Details
#display_field_names(field_names, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 5 def display_field_names(field_names, = {}) = { indentation: default_indentation, join: "\n" }.merge field_names.map { |field_name| display_for(field_name, [:indentation]) }.join [:join] end |
#display_for(field_name, options = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 16 def display_for(field_name, = {}) indentation = [:indentation] || default_indentation = .except :indentation [:identifier] ||= :default display = @resource.fields[field_name].display([:identifier]) if display html = display.render else html = '' puts "ERROR: Unable to find a suitable display for #{field_name} (@ #{[:identifier]})" end indent_or_die html, indentation end |
#display_with_label_for(field_name, options = {}) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 47 def display_with_label_for(field_name, = {}) indentation = [:indentation] || default_indentation [:indentation] = 0 inner_html = [label_for(field_name, ), display_for(field_name, )].join "\n" indent_or_die inner_html, indentation end |
#encapsulate_block_in_view_context(&block) ⇒ Object
107 108 109 110 111 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 107 def encapsulate_block_in_view_context(&block) Proc.new do |*args| self.send(:capture, *args, &block) end end |
#indent_or_die(html, indentation = default_indentation) ⇒ Object
102 103 104 105 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 102 def indent_or_die(html, indentation = default_indentation) return html.indent indentation if html false end |
#input_for(field_name, options = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 55 def input_for(field_name, = {}) indentation = [:indentation] || default_indentation = .except :indentation [:identifier] ||= :default # if block_given? # args[:encapsulated_block] = encapsulate_block_in_view_context(&block) # end unless @resource.fields[field_name] puts "ERROR: can't find field #{field_name}" return '' end input = @resource.fields[field_name].input([:identifier]) if input html = input.render else html = '' puts "ERROR: Unable to find a suitable input for #{field_name} (@ #{[:identifier]})" end indent_or_die html, indentation end |
#input_with_label_for(field_name, options = {}) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 82 def input_with_label_for(field_name, = {}) indentation = [:indentation] || default_indentation [:indentation] = 0 inner_html = [label_for(field_name, ), input_for(field_name, )].join "\n" indent_or_die inner_html, indentation end |
#label_for(field_name, options = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 34 def label_for(field_name, = {}) indentation = [:indentation] || default_indentation = .except :indentation [:identifier] ||= :default begin indent_or_die @resource.fields[field_name].label([:identifier]).render, indentation rescue puts "ERROR on #{field_name}" end end |
#label_text_for(field_name, options = {}) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 90 def label_text_for(field_name, = {}) [:context] ||= :default label = @resource.fields[field_name].label([:context]) if label label.rendered_text else puts "ERROR: Unable to find a suitable label for #{field_name} (@ #{[:identifier]})" '' end end |
#template_hook(arg) ⇒ Object
113 114 115 |
# File 'lib/generators/brain_damage/resource/helpers.rb', line 113 def template_hook(arg) '' end |