Class: BrainDamage::View::Display::LinkTo

Inherits:
Base show all
Defined in:
lib/generators/brain_damage/lib/views/displays/link_to.rb

Instance Attribute Summary

Attributes inherited from Templateable::FieldTemplateable

#partial_html, #type

Attributes inherited from Templateable::Base

#inner_html, #options, #template_file

Instance Method Summary collapse

Methods inherited from Base

#dir

Methods inherited from Templateable::FieldTemplateable

#empty_haml_path, #label_guard?, #method_missing, #render, #show?, #show_label?

Methods inherited from Templateable::Base

#indent, #method_missing, #render, #render_erb_file, #render_erb_string, #render_template_file

Constructor Details

#initialize(field, options) ⇒ LinkTo

Returns a new instance of LinkTo.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/generators/brain_damage/lib/views/displays/link_to.rb', line 8

def initialize(field, options)
  super
  @display_method = options[:display_method] || name
  @target_method = options[:target_method] || name

  if options[:act_as_foreign]
    define_singleton_method :foreign?, lambda {
      true
    }
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class BrainDamage::Templateable::FieldTemplateable

Instance Method Details

#include_existance_check?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/generators/brain_damage/lib/views/displays/link_to.rb', line 36

def include_existance_check?
  foreign?
end


31
32
33
34
# File 'lib/generators/brain_damage/lib/views/displays/link_to.rb', line 31

def link_target
  return "#{singular_table_name}.#{@target_method}" if foreign?
  "#{singular_table_name}"
end


20
21
22
23
24
25
26
27
28
29
# File 'lib/generators/brain_damage/lib/views/displays/link_to.rb', line 20

def link_text
  text = if foreign? then
           "#{singular_table_name}.#{@target_method}.#{@display_method}"
         else
           "#{singular_table_name}.#{@display_method}"
         end

  return text if text.present?
  link_target
end