module Jsonoid::Document::ClassMethods
Public Instance Methods
_before_destroy_callbacks()
click to toggle source
# File lib/jsonoid/callbacks.rb, line 69 def _before_destroy_callbacks @_before_destroy_callbacks ||= [] end
_before_save_callbacks()
click to toggle source
# File lib/jsonoid/callbacks.rb, line 65 def _before_save_callbacks @_before_save_callbacks ||= [] end
_register_field_accessors(name, accessor=nil)
click to toggle source
# File lib/jsonoid/fields.rb, line 16 def _register_field_accessors(name, accessor=nil) mod = Module.new include mod accessor = name if accessor.nil? mod.class_eval <<-CODE, __FILE__, __LINE__+1 def #{accessor} @_data[:#{name}] end def #{accessor}? !@_data[:#{name}].nil? end def #{accessor}=(value) @_data[:#{name}] = value end CODE end
_validate_callbacks()
click to toggle source
# File lib/jsonoid/callbacks.rb, line 61 def _validate_callbacks @_validate_callbacks ||= [] end
all()
click to toggle source
# File lib/jsonoid/document.rb, line 121 def all Scope.new(self, collection) end
before_destroy(callback)
click to toggle source
# File lib/jsonoid/callbacks.rb, line 56 def before_destroy(callback) raise ArgumentError, 'Callback must be a Symbol' unless callback.is_a? Symbol self._before_destroy_callbacks << callback end
before_save(callback)
click to toggle source
# File lib/jsonoid/callbacks.rb, line 51 def before_save(callback) raise ArgumentError, 'Callback must be a Symbol' unless callback.is_a? Symbol self._before_save_callbacks << callback end
collection(name=nil)
click to toggle source
# File lib/jsonoid/collection.rb, line 14 def collection(name=nil) @_collection = nil unless name.nil? @_collection ||= Jsonoid::Collection.new(name || self.name.downcase + 's') end
field(name, opts={})
click to toggle source
# File lib/jsonoid/fields.rb, line 4 def field(name, opts={}) raise ArgumentError, 'Name must be a Symbol' unless name.is_a? Symbol raise ArgumentError, 'Opts must be a Hash' unless opts.is_a? Hash self._register_field_accessors(name, opts.delete(:name)) self.fields << [name, opts.delete(:type) || String, opts.delete(:default)] end
fields()
click to toggle source
# File lib/jsonoid/fields.rb, line 12 def fields @_fields ||= [] end
find(id)
click to toggle source
# File lib/jsonoid/document.rb, line 115 def find(id) parse(collection.read(id)) rescue NotFound nil end
parse(json)
click to toggle source
# File lib/jsonoid/document.rb, line 125 def parse(json) new(JSON.parse(json)) end
store_in(name)
click to toggle source
# File lib/jsonoid/collection.rb, line 9 def store_in(name) raise ArgumentError, 'Name must be a Symbol' unless name.is_a? Symbol collection(name).exists? end
validate(callback)
click to toggle source
# File lib/jsonoid/callbacks.rb, line 12 def validate(callback) raise ArgumentError, 'Callback must be a Symbol' unless callback.is_a? Symbol self._validate_callbacks << callback end
validates_numericality_of(name, opts={})
click to toggle source
# File lib/jsonoid/callbacks.rb, line 34 def validates_numericality_of(name, opts={}) raise ArgumentError, 'Name must be a Symbol' unless callback.is_a? Symbol mod = Module.new include mod callback = "_validates_numeracality_of_#{name}_callback" mod.class_eval <<-CODE, __FILE__, __LINE__+1 def #{callback} errors.add(:field, ":#{name} must be numeric") unless @_data[:#{name}].is_a?(Numeric) end CODE validate callback.to_sym end
validates_presence_of(name, opts={})
click to toggle source
# File lib/jsonoid/callbacks.rb, line 17 def validates_presence_of(name, opts={}) raise ArgumentError, 'Name must be a Symbol' unless callback.is_a? Symbol mod = Module.new include mod callback = "_validates_presence_of_#{name}_callback" mod.class_eval <<-CODE, __FILE__, __LINE__+1 def #{callback} errors.add(:field, ":#{name} can't be nil") if @_data[:#{name}].nil? end CODE validate callback.to_sym end