Class: Releaf::Builders::Utilities::ResolveAttributeFieldMethodName
- Inherits:
- 
      Object
      
        - Object
- Releaf::Builders::Utilities::ResolveAttributeFieldMethodName
 
- Includes:
- Service
- Defined in:
- app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb
Constant Summary collapse
- FIELD_TYPE_RESOLVERS =
- { string: [:image, :file, :password, :email, :link, :text], text: [:link, :richtext, :textarea], integer: [:item], datetime: [], date: [], time: [], float: [], decimal: [], boolean: [], } 
Instance Method Summary collapse
- #call ⇒ Object
- #column_field_type_resolvers ⇒ Object
- #column_type ⇒ Object
- #columns_class ⇒ Object
- #email? ⇒ Boolean
- #field_type ⇒ Object
- #file? ⇒ Boolean
- #image? ⇒ Boolean
- #item? ⇒ Boolean
- #link? ⇒ Boolean
- #localized_attribute? ⇒ Boolean
- #password? ⇒ Boolean
- #richtext? ⇒ Boolean
- #text? ⇒ Boolean
- #textarea? ⇒ Boolean
Instance Method Details
#call ⇒ Object
| 19 20 21 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 19 def call "releaf_#{field_type}_#{"i18n_" if localized_attribute?}field" end | 
#column_field_type_resolvers ⇒ Object
| 40 41 42 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 40 def column_field_type_resolvers FIELD_TYPE_RESOLVERS[column_type] end | 
#column_type ⇒ Object
| 27 28 29 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 27 def column_type @column_type ||= columns_class.columns_hash[attribute_name] ? columns_class.columns_hash[attribute_name].type : :string end | 
#columns_class ⇒ Object
| 31 32 33 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 31 def columns_class localized_attribute? ? object.class::Translation : object.class end | 
#email? ⇒ Boolean
| 56 57 58 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 56 def email? attribute_name.match(/(_email$|^email$)/).present? end | 
#field_type ⇒ Object
| 23 24 25 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 23 def field_type column_field_type_resolvers.find{|resolver_name| send("#{resolver_name}?") == true } || column_type end | 
#file? ⇒ Boolean
| 48 49 50 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 48 def file? attribute_name.match(/_uid$/).present? && object.respond_to?(attribute_name.sub(/_uid$/, '')) end | 
#image? ⇒ Boolean
| 44 45 46 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 44 def image? attribute_name.match(/(thumbnail|image|photo|picture|avatar|logo|banner|icon)_uid$/).present? && file? end | 
#item? ⇒ Boolean
| 76 77 78 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 76 def item? attribute_name.match(/_id$/).present? && object.class.reflect_on_association(attribute_name[0..-4].to_sym).present? end | 
#link? ⇒ Boolean
| 60 61 62 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 60 def link? attribute_name.match(/(_url$|_link$|^url$|^link$)/).present? end | 
#localized_attribute? ⇒ Boolean
| 35 36 37 38 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 35 def localized_attribute? @localized_attribute ||= (object.class.respond_to?(:translates?) && object.class.translates? && object.class.translated_attribute_names.include?(attribute_name.to_sym)) end | 
#password? ⇒ Boolean
| 52 53 54 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 52 def password? attribute_name.match(/(password|^pin$)/).present? end | 
#richtext? ⇒ Boolean
| 64 65 66 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 64 def richtext? attribute_name.match(/(_html$|^html$)/).present? end | 
#text? ⇒ Boolean
| 72 73 74 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 72 def text? column_type == :string end | 
#textarea? ⇒ Boolean
| 68 69 70 | # File 'app/builders/releaf/builders/utilities/resolve_attribute_field_method_name.rb', line 68 def textarea? column_type == :text end |