Module: KnuVerse::Knufactor::Helpers::Resource
- Included in:
- Resource
- Defined in:
- lib/knuverse/knufactor/helpers/resource.rb
Overview
Simple helper methods for Resources
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #datetime_from_params(params, actual_key) ⇒ Object
- #fresh? ⇒ Boolean
- #id ⇒ Object
- #id_property ⇒ Object
- #immutable? ⇒ Boolean
-
#model_name ⇒ Object
ActiveRecord ActiveModel::Name compatibility method.
- #new? ⇒ Boolean
- #path_for(kind) ⇒ Object
- #paths ⇒ Object
-
#persisted? ⇒ Boolean
ActiveRecord ActiveModel::Model compatibility method.
- #properties ⇒ Object
- #tainted? ⇒ Boolean
-
#to_key ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method.
-
#to_model ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method.
-
#to_param ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method.
-
#update(params) ⇒ Object
ActiveRecord ActiveModel compatibility method.
Instance Method Details
#<=>(other) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 98 def <=>(other) if id < other.id -1 elsif id > other.id 1 elsif id == other.id 0 else raise Exceptions::InvalidArguments end end |
#datetime_from_params(params, actual_key) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 6 def datetime_from_params(params, actual_key) DateTime.new( params["#{actual_key}(1i)"].to_i, params["#{actual_key}(2i)"].to_i, params["#{actual_key}(3i)"].to_i, params["#{actual_key}(4i)"].to_i, params["#{actual_key}(5i)"].to_i ) end |
#fresh? ⇒ Boolean
16 17 18 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 16 def fresh? !tainted? end |
#id ⇒ Object
24 25 26 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 24 def id @entity[id_property.to_s] end |
#id_property ⇒ Object
20 21 22 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 20 def id_property self.class.properties.select { |_, opts| opts[:id_property] }.keys.first end |
#immutable? ⇒ Boolean
28 29 30 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 28 def immutable? self.class.immutable? end |
#model_name ⇒ Object
ActiveRecord ActiveModel::Name compatibility method
33 34 35 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 33 def model_name self.class end |
#new? ⇒ Boolean
37 38 39 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 37 def new? !@entity.key?(id_property.to_s) end |
#path_for(kind) ⇒ Object
45 46 47 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 45 def path_for(kind) self.class.path_for(kind) end |
#paths ⇒ Object
41 42 43 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 41 def paths self.class.paths end |
#persisted? ⇒ Boolean
ActiveRecord ActiveModel::Model compatibility method
50 51 52 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 50 def persisted? !new? end |
#properties ⇒ Object
54 55 56 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 54 def properties self.class.properties end |
#tainted? ⇒ Boolean
58 59 60 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 58 def tainted? @tainted ? true : false end |
#to_key ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method
63 64 65 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 63 def to_key new? ? [] : [id] end |
#to_model ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method
68 69 70 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 68 def to_model self end |
#to_param ⇒ Object
ActiveRecord ActiveModel::Conversion compatibility method
73 74 75 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 73 def to_param new? ? nil : id.to_s end |
#update(params) ⇒ Object
ActiveRecord ActiveModel compatibility method
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/knuverse/knufactor/helpers/resource.rb', line 78 def update(params) new_params = {} # need to convert multi-part datetime params params.each do |key, value| if key =~ /([^(]+)\(1i/ actual_key = key.match(/([^(]+)\(/)[1] new_params[actual_key] = datetime_from_params(params, actual_key) else new_params[key] = value end end new_params.each do |key, value| setter_key = "#{key}=".to_sym raise Exceptions::InvalidProperty unless respond_to?(setter_key) send(setter_key, value) end save end |