activerecord-quick_read 0.2.0 → 1.0.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: b7234e9dcb7b3d4690c49318d07af329d46f031e50d63450a24b57303314f389
4
+ data.tar.gz: 9517bccc29ba46045530c4028a7be33db00d84d15ad18e6d38561e7d3ec4e83e
5
5
  SHA512:
6
- metadata.gz: 349cdb8d4b4067df776f4f27e98e1cca1b7dd64464a3741fcc8da4adb163f02618988fa4825e15c0d5362b3e1eced29d62767317c895f9f99297e50c4492c30d
7
- data.tar.gz: fce09d2acda58de5f7bd33949cb09045e347afad67db6b89bdb61b365c9c6103e217fdaf1121e588f1852758145c420269e6f1b56d529c238de30936c439d5ec
6
+ metadata.gz: 27b36deba95df20b5bd391885e4582fa825d91f29a11c3125eab8be2eb2c525803d67dcaadac0cd0debd4bcb7f128a05aa7d43bcfe10e106f4b63ab6bdf22031
7
+ data.tar.gz: bd9c2b8406e3f80c87d1267f18756915e81506a64f1df228b19c8240b69818ee9dece97f5774608e5e6403736ea0907f46860962b502fab4a0f98cb3ca2875bd
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 (1.0.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 = "1.0.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
@@ -21,6 +22,8 @@ module ActiveRecord
21
22
  return if !model.table_name || model.abstract_class
22
23
 
23
24
  QuickRead.define_lite_struct(model)
25
+ rescue => e
26
+ ActiveRecord::Base.logger.debug("QuickRead") { "Failed to define quick models #{e.message}" }
24
27
  end
25
28
 
26
29
  def self.models
@@ -74,26 +77,5 @@ module ActiveRecord
74
77
  def from_hash(attributes)
75
78
  allocate.init_with_attributes(attributes_builder.build_from_database(attributes.stringify_keys!))
76
79
  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
80
  end
99
81
  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: 1.0.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