Sha256: 49c0b787ea65b84c45a2a0e81b1ca552758aee14f24e7467a92af47a7ee7deec
Contents?: true
Size: 1.12 KB
Versions: 5
Compression:
Stored size: 1.12 KB
Contents
class ModelController def self.model(val) @@default_model = val end # Sets the current model on this controller def model(val) if val.is_a?(Symbol) || val.is_a?(String) collections = [:page, :store, :params] if collections.include?(val.to_sym) @model = self.send(val) else raise "#{val} is not the name of a valid model, choose from: #{collections.join(', ')}" end elsif model @model = model else raise "model can not be #{model.inspect}" end end def self.new(*args, &block) inst = self.allocate if @@default_model inst.model(@@default_model || :page) end inst.initialize(*args, &block) return inst end def page $page.page end def store $page.store end def params $page.params end def url $page.url end def channel $page.channel end def tasks $page.tasks end def controller @controller ||= ReactiveValue.new(Model.new) end def method_missing(method_name, *args, &block) return @model.send(method_name, *args, &block) end end
Version data entries
5 entries across 5 versions & 1 rubygems