ru.Bee 1.9.12 → 1.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb5bb19ded65d916b743f77c4ac36e1cfc1e90f3c049490ec11c86532863fb11
4
- data.tar.gz: 1e2793a785114f3dc18b890e1934bccc53d415ed0e0e456259a4825e2de5764d
3
+ metadata.gz: 67b4b7a2e0717e400e958cabecbab8ad3fd47725015ba3ef1ee9245fe1ea9e12
4
+ data.tar.gz: 51de37c21accea30e09def16555077af3a6076110c69746a6245e2a79e242f94
5
5
  SHA512:
6
- metadata.gz: 81a9a261a539fe64f458211d2bd279c76598f44450aafe8760ec773133ed394bfc6ca426778f167e2c3f2c1ad7b822c2c9ad95dd45f8e6f34dc2b4740cd98c1b
7
- data.tar.gz: 649ad8dec2d61a49ba48adb14e509fd66eff6a9aaee5b16921626c05cada66f0c2b4bd613d495d31270e787953dc98c76a85e36849a1ed5a6075f95e19814b7e
6
+ metadata.gz: 9453e184e417bd47d87729d307c171cdf35d1f482f0a326432dd5a4d740ea007995420f4d9163b3c82b1d0e297bfcc133479ec4127d9b0520b1a7fc81969c8a9
7
+ data.tar.gz: e45a5a0ac96acb7306788bd95d760231494b1db18ebc4439fed99bd6571876c83579187b3836a54f869afcef1be9383af88d1d7d89766063c22b19c729fbc061
@@ -86,15 +86,21 @@ module Rubee
86
86
  # owns_many :comments
87
87
  # > user.comments
88
88
  # > [<comment1>, <comment2>]
89
- def owns_many(assoc, fk_name: nil, over: nil, **_options)
89
+ def owns_many(assoc, fk_name: nil, over: nil, **options)
90
90
  singularized_assoc_name = assoc.to_s.singularize
91
91
  fk_name ||= "#{name.to_s.downcase}_id"
92
+ namespace = options[:namespace]
92
93
 
93
94
  define_method(assoc) do
94
- klass = Object.const_get(singularized_assoc_name.capitalize)
95
+ assoc = if namespace
96
+ "::#{namespace.to_s.camelize}::#{singularized_assoc_name.camelize}"
97
+ else
98
+ singularized_assoc_name.camelize
99
+ end
100
+ klass = Object.const_get(assoc)
95
101
  if over
96
102
  sequel_dataset = klass
97
- .join(over.to_sym, "#{singularized_assoc_name}_id".to_sym => :id)
103
+ .join(over.to_sym, "#{singularized_assoc_name.snakeize}_id".to_sym => :id)
98
104
  .where(fk_name.to_sym => id)
99
105
  self.class.serialize(sequel_dataset, klass)
100
106
  else
@@ -107,10 +113,16 @@ module Rubee
107
113
  # owns_one :user
108
114
  # > comment.user
109
115
  # > <user>
110
- def owns_one(assoc, options = {})
116
+ def owns_one(assoc, fk_name: nil, **options)
111
117
  fk_name ||= "#{name.to_s.downcase}_id"
118
+ namespace = options[:namespace]
112
119
  define_method(assoc) do
113
- Object.const_get(assoc.capitalize).where(fk_name.to_sym => id)&.first
120
+ assoc = if namespace
121
+ "::#{namespace.to_s.camelize}::#{assoc.to_s.camelize}"
122
+ else
123
+ assoc.to_s.camelize
124
+ end
125
+ Object.const_get(assoc).where(fk_name.to_sym => id)&.first
114
126
  end
115
127
  end
116
128
 
@@ -118,10 +130,16 @@ module Rubee
118
130
  # holds :user
119
131
  # > account.user
120
132
  # > <user>
121
- def holds(assoc, fk_name: nil, **_options)
133
+ def holds(assoc, fk_name: nil, **options)
134
+ namespace = options[:namespace]
122
135
  fk_name ||= "#{assoc.to_s.downcase}_id"
123
136
  define_method(assoc) do
124
- target_klass = Object.const_get(assoc.capitalize)
137
+ klass_string = if namespace
138
+ "::#{namespace.to_s.camelize}::#{assoc.to_s.camelize}"
139
+ else
140
+ assoc.to_s.camelize
141
+ end
142
+ target_klass = Object.const_get(klass_string)
125
143
  target_klass.find(send(fk_name))
126
144
  end
127
145
  end
@@ -184,7 +202,7 @@ module Rubee
184
202
  def serialize(suquel_dataset, klass = nil)
185
203
  klass ||= self
186
204
  suquel_dataset.map do |record_hash|
187
- target_klass_fields = DB[klass.name.pluralize.downcase.camelize.to_sym].columns
205
+ target_klass_fields = DB[klass.name.pluralize.downcase.to_s.camelize.to_sym].columns
188
206
  klass_attributes = record_hash.filter { target_klass_fields.include?(_1) }
189
207
  klass.new(**klass_attributes)
190
208
  end
data/lib/rubee.rb CHANGED
@@ -16,7 +16,7 @@ module Rubee
16
16
  JS_DIR = File.join(APP_ROOT, LIB, 'js') unless defined?(JS_DIR)
17
17
  CSS_DIR = File.join(APP_ROOT, LIB, 'css') unless defined?(CSS_DIR)
18
18
  ROOT_PATH = File.expand_path(File.join(__dir__, '..')) unless defined?(ROOT_PATH)
19
- VERSION = '1.9.12'
19
+ VERSION = '1.9.13'
20
20
 
21
21
  require_relative 'rubee/router'
22
22
  require_relative 'rubee/logger'
data/lib/tests/test.db CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ru.Bee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.12
4
+ version: 1.9.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Saltykov