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