class BrainDamage::View::Base::Base
Attributes
file_name[R]
Public Class Methods
has_template?(name)
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 63 def self.has_template?(name) File.exists? File.join(dir, 'templates', "#{name.to_s.gsub('.html.haml', '')}.html.haml") end
new(resource, options = {})
click to toggle source
Calls superclass method
BrainDamage::Templateable::Base::new
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 11 def initialize(resource, options = {}) set_file_and_template_names(options) @schema = options[:schema] super resource, options end
Private Class Methods
dir()
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 76 def self.dir __dir__ end
Public Instance Methods
fields(only: nil, except: nil)
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 55 def fields(only: nil, except: nil) @resource.fields end
infer_file_name()
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 59 def infer_file_name "#{self.class.name.split('::')[3..-1].map(&:underscore).join('/')}.html.haml" end
is_partial_file_name?(file_name)
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 41 def is_partial_file_name?(file_name) file_name.split('/').last[0] == '_' end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
BrainDamage::Templateable::Base#method_missing
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 67 def method_missing(method, *args, &block) if @schema and @schema.respond_to? method @schema.send method, *args, &block else super end end
partialize_file_name(file_name)
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 45 def partialize_file_name(file_name) parts = file_name.split '/' if parts.length == 1 "_#{parts.first.gsub('^_*', '')}" else (parts[0...-1] + ["_#{parts.last.gsub('^_', '')}"]).join '/' end end
set_file_and_template_names(options)
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 17 def set_file_and_template_names(options) @file_name ||= options[:file_name] @template_file ||= options[:template_name] unless @template_file @template_file = infer_file_name unless self.class.has_template? @template_file or Pathname.new(@template_file).absolute? partial_version = partialize_file_name @template_file if self.class.has_template? partial_version @template_file = partial_version end end end unless @file_name @file_name = infer_file_name if is_partial_file_name? @template_file @file_name = partialize_file_name @file_name end end end
Private Instance Methods
dir()
click to toggle source
# File lib/generators/brain_damage/lib/views/schemas/base/base.rb, line 80 def dir __dir__ end