class Ro::Model
Attributes
node[RW]
Public Class Methods
[](id)
click to toggle source
# File lib/ro/model.rb, line 66 def Model.[](id) find(id) end
all(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 27 def Model.all(*args, &block) models_for(nodes) end
count(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 39 def Model.count(*args, &block) if args.empty? and block.nil? all.size else where(*args, &block).size end end
detect(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 35 def Model.detect(*args, &block) all.detect(*args, &block) end
find(id)
click to toggle source
# File lib/ro/model.rb, line 61 def Model.find(id) re = %r/#{ id.to_s.gsub(/[-_]/, '[-_]') }/i all.detect{|model| model.id.to_s == id.to_s} end
first()
click to toggle source
# File lib/ro/model.rb, line 53 def Model.first all.first end
last()
click to toggle source
# File lib/ro/model.rb, line 57 def Model.last all.last end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/ro/model.rb, line 70 def Model.method_missing(method, *args, &block) id = method model = find(id) return model if model super end
models_for(result)
click to toggle source
# File lib/ro/model.rb, line 77 def Model.models_for(result) case result when Array List.for(Array(result).flatten.compact.map{|element| new(element)}) else new(result) end end
new(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 113 def initialize(*args, &block) attributes = Map.options_for!(args) node = args.detect{|arg| arg.is_a?(Node)} model = args.detect{|arg| arg.is_a?(Model)} if node.nil? and not model.nil? node = model.node end if node @node = node else path = File.join(prefix, ':new') node = Node.new(path) @node = node end end
nodes(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 23 def Model.nodes(*args, &block) root.nodes.send(collection) end
paginate(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 86 def Model.paginate(*args, &block) all.paginate(*args, &block) end
select(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 31 def Model.select(*args, &block) all.select(*args, &block) end
where(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 47 def Model.where(*args, &block) all.select do |model| !!model.instance_eval(&block) end end
Public Instance Methods
List(*args, &block)
click to toggle source
# File lib/ro/model.rb, line 106 def List(*args, &block) List.new(*args, &block) end
attributes()
click to toggle source
# File lib/ro/model.rb, line 132 def attributes @node.attributes end
directory()
click to toggle source
# File lib/ro/model.rb, line 145 def directory File.join(prefix, id) end
method_missing(method, *args, &block)
click to toggle source
# File lib/ro/model.rb, line 150 def method_missing(method, *args, &block) node.send(method, *args, &block) end
persisted?()
click to toggle source
# File lib/ro/model.rb, line 136 def persisted? true end
prefix()
click to toggle source
# File lib/ro/model.rb, line 141 def prefix self.class.prefix end
respond_to?(method)
click to toggle source
Calls superclass method
# File lib/ro/model.rb, line 154 def respond_to?(method) super || node.respond_to?(method) end