occams-record 0.23.0 → 0.24.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: 0f92b611f104c0a5644c7caa0ca6aa57f7beffa381d3579490a475fb1c388d51
4
- data.tar.gz: 2b399f8bbd15b0bfd1859533431432b5607a841448cb5d112e21f60090edb997
3
+ metadata.gz: 707ed6c9bf173cd193bb01d26149eb78acc2908e352af3eb863c483c357e6a5e
4
+ data.tar.gz: 257c5d00ececf487537d599103d1f60b9adede4e1411e1e82f0c66e01210bfb2
5
5
  SHA512:
6
- metadata.gz: 67fdf0377759ccb13e6d59abda9e87f4a30d4be4431f4e92cf16b0cd430bfcdc74afa05cd9d0c178a0b80cc3afbfcdae292db1f53fef0c6facbceda4f49a5223
7
- data.tar.gz: 8d88fc8bdb242090bf0f0a833075733fb6b05a09441bd235e2e7eb02cac6dd3ef9a8463539d28edf531b3b17474b74b5d5cfdedf45df62f89212ac649bbc216f
6
+ metadata.gz: ac390d24a51ed24ba8cf941bae278bf0756c55724fd1b17f496b56ad11aae74873677cc698c78d44bb39a976e241a42c3f2879df8b29d6125ade39eed9ed83df
7
+ data.tar.gz: c416b257ff7d5d95aea4bb195b56009e912fd93d4127d77fc68c2d3d5ca28ed6e84f99b1a959410cb39a7273927394bb10eba6a97dffa116af74a75b9078b8b2
data/README.md CHANGED
@@ -31,6 +31,8 @@ gem 'occams-record'
31
31
 
32
32
  **Simple example**
33
33
 
34
+ Build your query the same as before, using `ActiveRecord`'s excellent query builder. Just hand it off to `OccamsRecord.query` before running it. Be sure to use `OccamsRecord`'s eager loading helpers instead of `ActiveRecord`'s.
35
+
34
36
  ```ruby
35
37
  widgets = OccamsRecord.
36
38
  query(Widget.order("name")).
@@ -65,7 +67,7 @@ widgets[1].splines.map { |s| s.description }
65
67
  => ["Spline 4", "Spline 5"]
66
68
  ```
67
69
 
68
- **An insane example, but only half as insane as the one that prompted the creation of this library**
70
+ **Even more complicated example**
69
71
 
70
72
  Here we're eager loading several levels down. Notice the `Proc` given to `eager_load(:orders)`. The `select:` option is just for convenience; you may instead pass a `Proc` and customize the query with any of ActiveRecord's query builder helpers (`select`, `where`, `order`, `limit`, etc).
71
73
 
@@ -16,7 +16,7 @@ module OccamsRecord
16
16
  # @param binds [Hash] any additional binds for your query.
17
17
  # @param model [ActiveRecord::Base] optional - ActiveRecord model that represents what you're loading. required when using Sqlite.
18
18
  # @param use [Array<Module>] optional - Ruby modules to include in the result objects (single or array)
19
- # @yield
19
+ # @yield eager load associations nested under this one
20
20
  #
21
21
  def initialize(name, mapping, sql, binds: {}, model: nil, use: nil, &eval_block)
22
22
  @name = name.to_s
@@ -62,9 +62,10 @@ module OccamsRecord
62
62
  # @param binds [Hash] any additional binds for your query.
63
63
  # @param model [ActiveRecord::Base] optional - ActiveRecord model that represents what you're loading. required when using Sqlite.
64
64
  # @param use [Array<Module>] optional - Ruby modules to include in the result objects (single or array)
65
+ # @yield eager load associations nested under this one
65
66
  #
66
- def eager_load_one(*args, &eval_block)
67
- @eager_loaders << EagerLoaders::AdHocOne.new(*args, &eval_block)
67
+ def eager_load_one(name, mapping, sql, binds: {}, model: nil, use: nil, &eval_block)
68
+ @eager_loaders << EagerLoaders::AdHocOne.new(name, mapping, sql, binds: binds, model: model, use: use, &eval_block)
68
69
  self
69
70
  end
70
71
 
@@ -92,9 +93,10 @@ module OccamsRecord
92
93
  # @param use [Array<Module>] optional - Ruby modules to include in the result objects (single or array)
93
94
  # @param binds [Hash] any additional binds for your query.
94
95
  # @param model [ActiveRecord::Base] optional - ActiveRecord model that represents what you're loading. required when using Sqlite.
96
+ # @yield eager load associations nested under this one
95
97
  #
96
- def eager_load_many(*args, &eval_block)
97
- @eager_loaders << EagerLoaders::AdHocMany.new(*args, &eval_block)
98
+ def eager_load_many(name, mapping, sql, binds: {}, model: nil, use: nil, &eval_block)
99
+ @eager_loaders << EagerLoaders::AdHocMany.new(name, mapping, sql, binds: binds, model: model, use: use, &eval_block)
98
100
  self
99
101
  end
100
102
 
@@ -3,5 +3,5 @@
3
3
  #
4
4
  module OccamsRecord
5
5
  # Library version
6
- VERSION = '0.23.0'.freeze
6
+ VERSION = '0.24.0'.freeze
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occams-record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Hollinger
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '4.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.2'
22
+ version: '5.3'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '4.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.2'
32
+ version: '5.3'
33
33
  description: A faster, lower-memory querying API for ActiveRecord that returns results
34
34
  as unadorned, read-only objects.
35
35
  email: jordan.hollinger@gmail.com