activerecord-quick_read 0.2.0 → 0.3.0

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: d22f1664e4dce8ca3821454f93db1bc62539c6b28941bfa10f7097af7786e1ba
4
- data.tar.gz: 0f22b9bc645ea864359a7b1b6fee9d68ea75573d9e66add9c64bb3a57a5961cb
3
+ metadata.gz: 568374965e9c8f4084e7b8e5da2ea6d300c7100833dd4bd49c76053aa0cf9c41
4
+ data.tar.gz: 45733a42147cff2340617a7b3d67b917b4d9b2eb4cfe2b39ae74774a567e0bf5
5
5
  SHA512:
6
- metadata.gz: 349cdb8d4b4067df776f4f27e98e1cca1b7dd64464a3741fcc8da4adb163f02618988fa4825e15c0d5362b3e1eced29d62767317c895f9f99297e50c4492c30d
7
- data.tar.gz: fce09d2acda58de5f7bd33949cb09045e347afad67db6b89bdb61b365c9c6103e217fdaf1121e588f1852758145c420269e6f1b56d529c238de30936c439d5ec
6
+ metadata.gz: 16d472db41e9d176750b839d54981a662decb9a6ebf93341d531750240d9f3927208e41ad71c168314b1ad29d105a91346f1615d9cec1d7d1f4875bcce941488
7
+ data.tar.gz: 44587f0a0d78e5f883c68af80d48ea00ed1fd64e8368b8621c3bbc7cf21e399f4a1244e7294bbda8702ac5c5cc5d7c56f5337d49ea1c84de47025a6581b138bd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-quick_read (0.1.0)
4
+ activerecord-quick_read (0.2.0)
5
5
  activerecord (>= 5, <= 8)
6
6
 
7
7
  GEM
@@ -0,0 +1,33 @@
1
+ module ActiveRecord
2
+ module QuickRead
3
+ module LiteBase
4
+ def method_missing(name, *args, &block)
5
+ return super unless subject.respond_to?(name)
6
+
7
+ subject.send(name, *args, &block)
8
+ end
9
+
10
+ def respond_to_missing?(*args)
11
+ subject.respond_to?(*args) || super
12
+ end
13
+
14
+ def subject
15
+ @subject ||= model.from_hash(to_h)
16
+ end
17
+
18
+ # Since the struct that includes this module is defined within the model's namespace
19
+ def model
20
+ self.class.module_parent
21
+ end
22
+
23
+ def reload(*)
24
+ source = @subject&.reload
25
+ source ||= model.unscoped.where(id: id).select(members.join(', ')).quick_read
26
+ return false unless source
27
+
28
+ members.each { |attr| send(:"#{attr}=", source.send(attr)) }
29
+ self
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecord
4
4
  module QuickRead
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
@@ -3,6 +3,7 @@
3
3
  require "active_record"
4
4
 
5
5
  require_relative "quick_read/version"
6
+ require_relative "quick_read/lite_base"
6
7
  require_relative "quick_read/railtie" if defined?(Rails)
7
8
 
8
9
  module ActiveRecord
@@ -74,26 +75,5 @@ module ActiveRecord
74
75
  def from_hash(attributes)
75
76
  allocate.init_with_attributes(attributes_builder.build_from_database(attributes.stringify_keys!))
76
77
  end
77
-
78
- module LiteBase
79
- def method_missing(name, *args, &block)
80
- return super unless subject.respond_to?(name)
81
-
82
- subject.send(name, *args, &block)
83
- end
84
-
85
- def respond_to_missing?(*args)
86
- subject.respond_to?(*args) || super
87
- end
88
-
89
- def subject
90
- @subject ||= model.from_hash(to_h)
91
- end
92
-
93
- # Since the struct that includes this module is defined within the model's namespace
94
- def model
95
- self.class.module_parent
96
- end
97
- end
98
78
  end
99
79
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-quick_read
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Buckley
@@ -49,6 +49,7 @@ files:
49
49
  - README.md
50
50
  - Rakefile
51
51
  - lib/activerecord/quick_read.rb
52
+ - lib/activerecord/quick_read/lite_base.rb
52
53
  - lib/activerecord/quick_read/railtie.rb
53
54
  - lib/activerecord/quick_read/version.rb
54
55
  homepage: https://github.com/ridiculous/activerecord-quick_reads