Module: MongoMysqlRelations::ClassMethods
- Defined in:
- lib/mongo_mysql_relations.rb
Instance Method Summary collapse
-
#from_mysql_belongs_to(name, options = {}) ⇒ Object
Connection methods from mysql to mongoid.
- #from_mysql_has_many(name, options = {}) ⇒ Object
- #from_mysql_has_one(name, options = {}) ⇒ Object
-
#to_mysql_belongs_to(name, options = {}) ⇒ Object
Connection methods from mongoid to mysql.
- #to_mysql_has_many(name, options = {}) ⇒ Object
- #to_mysql_has_one(name, options = {}) ⇒ Object
Instance Method Details
#from_mysql_belongs_to(name, options = {}) ⇒ Object
Connection methods from mysql to mongoid
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/mongo_mysql_relations.rb', line 76 def from_mysql_belongs_to(name, = {}) object_class = [:class] || name.to_s.titleize.delete(' ').constantize self.instance_eval do define_method(name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(:id => self.send("#{name}_id")).first) end self.instance_variable_get("@#{name}") end define_method("#{name}=") do |new_instance| self.send("#{name}_id=", new_instance.id) self.instance_variable_set("@#{name}", nil) end end end |
#from_mysql_has_many(name, options = {}) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/mongo_mysql_relations.rb', line 98 def from_mysql_has_many(name, = {}) plural_name = name.to_s.pluralize foreign_key = [:foreign_key] || "#{self.name.underscore}_id" object_class = [:class] || name.to_s.singularize.titleize.delete(' ').constantize self.instance_eval do define_method(plural_name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(foreign_key => self.id)) end self.instance_variable_get("@#{name}") end end end |
#from_mysql_has_one(name, options = {}) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/mongo_mysql_relations.rb', line 117 def from_mysql_has_one(name, = {}) foreign_key = [:foreign_key] || "#{self.name.underscore}_id" object_class = [:class] || name.to_s.titleize.delete(' ').constantize self.instance_eval do define_method(name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(foreign_key => self.id).first) end self.instance_variable_get("@#{name}") end end end |
#to_mysql_belongs_to(name, options = {}) ⇒ Object
Connection methods from mongoid to mysql
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/mongo_mysql_relations.rb', line 13 def to_mysql_belongs_to(name, = {}) field "#{name}_id", type: Integer object_class = [:class] || name.to_s.titleize.delete(' ').constantize self.instance_eval do define_method(name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(object_class.primary_key => self.send("#{name}_id")).first) end self.instance_variable_get("@#{name}") end define_method("#{name}=") do |new_instance| self.send("#{name}_id=", new_instance.id) self.instance_variable_set("@#{name}", nil) end end end |
#to_mysql_has_many(name, options = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mongo_mysql_relations.rb', line 36 def to_mysql_has_many(name, = {}) plural_name = name.to_s.pluralize foreign_key = [:foreign_key] || "#{self.name.underscore}_id" object_class = [:class] || name.to_s.singularize.titleize.delete(' ').constantize self.instance_eval do define_method(plural_name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(foreign_key => self.id.to_s)) end self.instance_variable_get("@#{name}") end end end |
#to_mysql_has_one(name, options = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/mongo_mysql_relations.rb', line 55 def to_mysql_has_one(name, = {}) foreign_key = [:foreign_key] || "#{self.name.underscore}_id" object_class = [:class] || name.to_s.titleize.delete(' ').constantize self.instance_eval do define_method(name) do |reload = false| if reload self.instance_variable_set("@#{name}", nil) end if self.instance_variable_get("@#{name}").blank? self.instance_variable_set("@#{name}", object_class.where(foreign_key => self.id.to_s).first) end self.instance_variable_get("@#{name}") end end end |