class KiltViewModel

Public Class Methods

build(input) click to toggle source
# File lib/kilt_view_model.rb, line 3
def self.build input
  this_is_a_collection(input) ? build_view_models_from(input)
                              : build_a_view_model_from(input)
end
new(subject = {}) click to toggle source
# File lib/kilt_view_model.rb, line 8
def initialize subject = {}
  @subject = subject
end

Private Class Methods

build_a_view_model_from(record) click to toggle source
# File lib/kilt_view_model.rb, line 24
def build_a_view_model_from record
  eval("#{record['type']}_view_model".classify).new record
rescue
  KiltViewModel.new record
end
build_view_models_from(records) click to toggle source
# File lib/kilt_view_model.rb, line 34
def build_view_models_from records
  records.map { |r| build_a_view_model_from r }
         .sort_by do |x|
           sequence = x.sequence.to_s.to_i
           sequence.to_s == x.sequence.to_s ? sequence : 99999999999
         end
end
this_is_a_collection(input) click to toggle source
# File lib/kilt_view_model.rb, line 30
def this_is_a_collection input
  input.is_a?(Array) || input.is_a?(Kilt::ObjectCollection)
end

Public Instance Methods

[](id) click to toggle source
# File lib/kilt_view_model.rb, line 12
def [] id
  @subject[id.to_s] || @subject[id.to_s.to_sym]
end
method_missing(meth, *args, &blk) click to toggle source
# File lib/kilt_view_model.rb, line 16
def method_missing(meth, *args, &blk)
  @subject[meth.to_s] || @subject[meth]
end