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