class Alephant::Renderer::ViewMapper

Constants

DEFAULT_LOCATION

Public Class Methods

new(renderer_id, view_base_path = nil) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 9
def initialize(renderer_id, view_base_path = nil)
  self.base_path = "#{view_base_path}/#{renderer_id}" unless view_base_path.nil?
end

Public Instance Methods

base_path() click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 13
def base_path
  @base_path || DEFAULT_LOCATION
end
base_path=(path) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 17
def base_path=(path)
  @base_path = File.directory?(path) ? path : raise(Error::InvalidBasePath.new(path))
end
generate(data) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 21
def generate(data)
  model_locations.reduce({}) do |obj, file|
    model_id      = model_id_for(file)
    obj[model_id] = model(model_id, data)
    obj
  end
end

Private Instance Methods

model(view_id, data) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 31
def model(view_id, data)
  require model_location_for view_id
  Views.get_registered_class(view_id).new(data)
end
model_base_path() click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 44
def model_base_path
  "#{base_path}/models/*"
end
model_id_for(location) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 48
def model_id_for(location)
  location.split('/').last.sub(/\.rb/, '')
end
model_location_for(view_id) click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 36
def model_location_for(view_id)
  File.join(base_path, 'models', "#{view_id}.rb")
end
model_locations() click to toggle source
# File lib/alephant/renderer/view_mapper.rb, line 40
def model_locations
  Dir[model_base_path]
end