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