constant_table_saver 5.1.0 → 5.1.1

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
  SHA1:
3
- metadata.gz: c0478d2577af80dc5fc4c7bf860321b72c49e2c1
4
- data.tar.gz: 27060f22739b2cdb8a0cbf36f56ebe186e9b6333
3
+ metadata.gz: bd0a0f0466a9358d62172e153ae85c8a88a0e9a9
4
+ data.tar.gz: b6d62a665e5a4b179101924c320e3ca2dd773e35
5
5
  SHA512:
6
- metadata.gz: 3784c8649039aca241ae5e3b87b4b94d219c4c159d91b79d261dc1af3fa7795e4368e4ab97535290c0fec3c759d3729a5959988012bb7f10cd7d0b915fd854f2
7
- data.tar.gz: 559071bc2fbadd429c6c2634a1f3eb71e27258c9dc260c38a60681527adf3b8436b4945a932cf83b7bc1e9e2c5898132879a87adc34a729a18486d8bd144ae6a
6
+ metadata.gz: 350eef086260e755159c68fa837515eff1c50f79b90a6044fb3ecdc806b78955faa9ba5716e73ad0b92827e7bad2c3e11666a0914a872e7df086a195c9f7b205
7
+ data.tar.gz: 0d9a1eed230c95df417727e8693da32e9168b8dd428a49aee3cbf6d08e73e650824c9d453878d01a7de2461e31ad4b40792c142bf3a6267b0bd3c548de3ad4c9
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ ConstantTableSaver
2
+ ==================
3
+
4
+ Loads all records from the table on first use, and thereafter returns the
5
+ cached (and frozen) records for all find calls.
6
+
7
+ Optionally, creates class-level methods you can use to grab the records,
8
+ named after the name field you specify.
9
+
10
+
11
+ Compatibility
12
+ =============
13
+
14
+ Currently tested against Rails 5.1 (5.1.0beta2) and 5.0 (up to 5.0.2) and 4.2 (up to 4.2.7), on Ruby 2.3.4.
15
+
16
+ For earlier versions of Rails, use an older version of the gem.
17
+
18
+
19
+ Example
20
+ =======
21
+
22
+ Problem: the following code would load each txn_type individually:
23
+
24
+ ```ruby
25
+ Txn.all.each {|txn| .. do something with txn.txn_type ..}
26
+ ```
27
+
28
+ You can improve this a bit with standard Rails:
29
+
30
+ ```ruby
31
+ Txn.preload(:txn_type).all.each {|txn| .. do something with txn.txn_type ..}
32
+ ```
33
+
34
+ This would load the txn_types in one go after the txns query, but would still need a query every time you load txns.
35
+
36
+ But if you use constant_table_saver, without needing to use a preload:
37
+
38
+ ```ruby
39
+ class TxnType
40
+ constant_table
41
+ end
42
+
43
+ Txn.all.each {|txn| .. do something with txn.txn_type ..}
44
+ ```
45
+
46
+ It will no longer requires individual txn_type loads, just every time you start the server (or every request, in development mode). Most other basic queries are also cached:
47
+
48
+ ```ruby
49
+ TxnType.all.to_a
50
+ ```
51
+
52
+ But other scopes with options still result in actual queries:
53
+
54
+ ```ruby
55
+ TxnType.where("name LIKE '%foo%'").to_a
56
+ TxnType.lock.find(2)
57
+ ```
58
+
59
+
60
+ You can also use:
61
+
62
+ ```ruby
63
+ class TxnType
64
+ constant_table :name => :label
65
+ end
66
+ ```
67
+
68
+ Which if you have:
69
+
70
+ ```ruby
71
+ TxnType.create!(:label => "Customer Purchase")
72
+ TxnType.create!(:label => "Refund")
73
+ ```
74
+
75
+ Means you will also have methods returning those records:
76
+
77
+ ```ruby
78
+ TxnType.customer_purchase
79
+ TxnType.refund
80
+ ```
81
+
82
+ Optionally, you can specify a `:name_prefix` and/or `:name_suffix`.
83
+
84
+
85
+ Copyright (c) 2010-2017 Will Bryant, Sekuda Ltd, released under the MIT license
@@ -1,3 +1,3 @@
1
1
  module ConstantTableSaver
2
- VERSION = '5.1.0'
2
+ VERSION = '5.1.1'
3
3
  end
@@ -161,7 +161,7 @@ class ConstantTableSaverTest < ActiveSupport::TestCase
161
161
  end
162
162
 
163
163
  test "it passes the options preventing caching to the underlying query methods" do
164
- assert_nil nil, ConstantPie.where(:filling => 'unicorn').first
164
+ assert_nil ConstantPie.where(:filling => 'unicorn').first
165
165
  assert_equal [], ConstantPie.where(:filling => 'unicorn').all
166
166
  end
167
167
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: constant_table_saver
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will Bryant
@@ -74,7 +74,7 @@ files:
74
74
  - ".gitignore"
75
75
  - Gemfile
76
76
  - MIT-LICENSE
77
- - README
77
+ - README.md
78
78
  - Rakefile
79
79
  - constant_table_saver.gemspec
80
80
  - init.rb
data/README DELETED
@@ -1,67 +0,0 @@
1
- ConstantTableSaver
2
- ==================
3
-
4
- Loads all records from the table on first use, and thereafter returns the
5
- cached (and frozen) records for all find calls.
6
-
7
- Optionally, creates class-level methods you can use to grab the records,
8
- named after the name field you specify.
9
-
10
-
11
- Compatibility
12
- =============
13
-
14
- Currently tested against Rails 5.1 (5.1.0beta2) and 5.0 (up to 5.0.2) and 4.2 (up to 4.2.7), on Ruby 2.3.4.
15
-
16
- For earlier versions of Rails, use an older version of the gem.
17
-
18
-
19
- Example
20
- =======
21
-
22
- Txn.all.each {|txn| .. do something with txn.txn_type ..}
23
- - would load each txn_type individually
24
-
25
- Txn.all(:include => :txn_type).each {|txn| .. do something with txn.txn_type ..}
26
- - would load the txn_types in one go after the txns query, but would still need
27
- a query every time you load txns
28
-
29
-
30
- But if you use:
31
-
32
- class TxnType
33
- constant_table
34
- end
35
-
36
- Txn.all.each {|txn| .. do something with txn.txn_type ..}
37
- - no longer requires individual txn_type loads, just every time you start the
38
- server (or every request, in development mode)
39
-
40
- TxnType.all
41
- - also cached, but:
42
-
43
- TxnType.all(:conditions => "name LIKE '%foo%'")
44
- TxnType.find(2, :lock => true)
45
- - all still result in traditional finds, since you gave options
46
-
47
-
48
- You can also use:
49
-
50
- class TxnType
51
- constant_table :name => :label
52
- end
53
-
54
- Which if you have:
55
-
56
- TxnType.create!(:label => "Customer Purchase")
57
- TxnType.create!(:label => "Refund")
58
-
59
- Means you will also have methods returning those records:
60
-
61
- TxnType.customer_purchase
62
- TxnType.refund
63
-
64
- Optionally, you can specify a :name_prefix and/or :name_suffix.
65
-
66
-
67
- Copyright (c) 2010-2013 Will Bryant, Sekuda Ltd, released under the MIT license