rails_optimizer 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: db80c5f0e72c9cb288873b9f318e5dc3baafdd67
4
- data.tar.gz: 0a101ae1ad6cb41b9243aebbd8760ed61c74ce7b
2
+ SHA256:
3
+ metadata.gz: 2a70969d26fb8c6f7e10d076d0d773a85f8c196c09e56494c5cc7707a6861222
4
+ data.tar.gz: 7a3d74687e69d53d289582128bf14e1092467ecaafa094a29add6c7cfcaab1a4
5
5
  SHA512:
6
- metadata.gz: 76a6df566e037c10afd6c2b79567ae9bb1fcebbc440a3cbad10ea66cf5cb0512faf3f53ba1aab51049736c6af69588eaf2646400f3ebaf9cb10bb01d850690b4
7
- data.tar.gz: 8fec9fdae029505fdfd1d4814ea618a751649d69f643619310236704df2081a668ad809bcce459c5f8c1be88419993e5fc10910df63364e67915da800b05c408
6
+ metadata.gz: cd2be7a17816296ad15d5677c25b701abf437f77df5046e14182a96916e90931d668cbfa1759e55cd2bb972c4b4811dd914c912462f0f8ea43a05785dae81b84
7
+ data.tar.gz: 82c0eae0f03d3d14cddc0f57e592be30a0bb05be5ca2b81d1d3269f0dac4528f39beecd2db4c49808403874f326bc5612d3eec5eefff03bb6483140022a80b51
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_optimizer (0.1.8)
4
+ rails_optimizer (0.1.9)
5
5
  activerecord
6
6
  activesupport
7
7
 
@@ -19,5 +19,10 @@ module RailsOptimizer
19
19
  def reflection_scope
20
20
  reflection.scope
21
21
  end
22
+
23
+ def get_target
24
+ return owner.association(name.to_sym).target if owner.association(name.to_sym).loaded?
25
+ yield if block_given?
26
+ end
22
27
  end
23
28
  end
@@ -8,20 +8,22 @@ module RailsOptimizer
8
8
  end
9
9
 
10
10
  def get_target
11
- if args.empty?
12
- klass
13
- else
14
- klass.select(*args)
11
+ super do
12
+ if args.empty?
13
+ klass
14
+ else
15
+ klass.select(*args)
16
+ end
17
+ .execute(&reflection_scope)
18
+ .execute(&finded)
15
19
  end
16
- .execute(&reflection_scope)
17
- .execute(&finded)
18
20
  end
19
21
 
20
22
  private
21
23
 
22
24
  def finded
23
25
  id = owner.read_attribute(foreign_key)
24
- proc { send(:find, id) }
26
+ proc { send(:find_by, {id: id}) }
25
27
  end
26
28
 
27
29
  def foreign_key
@@ -9,11 +9,13 @@ module RailsOptimizer
9
9
  end
10
10
 
11
11
  def get_target
12
- if args.empty?
13
- klass
14
- else
15
- klass.select(*args)
16
- end.execute(&reflection_scope).execute(&finded)
12
+ super do
13
+ if args.empty?
14
+ klass
15
+ else
16
+ klass.select(*args)
17
+ end.execute(&reflection_scope).execute(&finded)
18
+ end
17
19
  end
18
20
 
19
21
  private
@@ -24,12 +26,4 @@ module RailsOptimizer
24
26
  end
25
27
  end
26
28
 
27
- define_method name.to_s do |*args|
28
- fk = self.class.foreign_key(name).to_sym
29
- if args.empty?
30
- name.to_s.classify.constantize.select("*").scoped(scope).find_by(fk => id)
31
- else
32
- name.to_s.classify.constantize.select(:id, *args).scoped(scope).find_by(fk => id)
33
- end
34
- end
35
29
  end
@@ -1,3 +1,3 @@
1
1
  module RailsOptimizer
2
- VERSION = "0.1.9"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Facundo A. Díaz Martínez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-10 00:00:00.000000000 Z
11
+ date: 2021-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -70,7 +70,7 @@ metadata:
70
70
  allowed_push_host: https://rubygems.org
71
71
  homepage_uri: https://github.com/ITSesocio/rails_optimizer
72
72
  source_code_uri: https://github.com/ITSesocio/rails_optimizer
73
- post_install_message:
73
+ post_install_message:
74
74
  rdoc_options: []
75
75
  require_paths:
76
76
  - lib
@@ -85,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  requirements: []
88
- rubyforge_project:
89
- rubygems_version: 2.6.14.1
90
- signing_key:
88
+ rubygems_version: 3.0.3
89
+ signing_key:
91
90
  specification_version: 4
92
91
  summary: Optimze some rails methods
93
92
  test_files: []