activerecord-quick_read 0.2.0 → 0.3.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
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