lhs 13.0.0 → 13.0.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: f544b0ef6b58f858b9c5443bf2455ba6d996b328
4
- data.tar.gz: 65d4abb2851144769fa8f8f7d5fa10426b1a9ff2
3
+ metadata.gz: 163b82a58eaed908884ea40ab28605f01323a4bd
4
+ data.tar.gz: 66320f0e30fcecc454702e089a4a3f2630cd6dce
5
5
  SHA512:
6
- metadata.gz: e0f4d2183628842ed79cea1f96583b529ca3db80afc8edc73ccb51c2f3dde71289e362358431e19b1c9d271f4f42528b49bd610e61aa53cc92d0f206a5d7eddd
7
- data.tar.gz: 4ac1feeaf83543238875bd024790a22f4d9d120188312b4fcde2ad45c85c46d98aec67b9f4a2b8213fc5341b3d585e7bf2425d20ffa02b60fd78ece1f8d51d4f
6
+ metadata.gz: 3bb2c9f3b2725aaa43724025054e2ed1a53e21c62c8c2fb5ed26bbd2e9fedf399a20c1d5d3d422fa6ea35602fddb1a19e39fc3336d18388f9a755a5fa1bd9cb5
7
+ data.tar.gz: 4a90025e71d0ee499cde8ee06faf08363ad15aea0c2eea44e1d7de7c1b72331f00bc34a5184ab1eb0c5e378c9460d24c9af2bf9c4c9707d58fdbb269497601bf
data/README.md CHANGED
@@ -12,7 +12,7 @@ gem 'lhs'
12
12
  LHS comes with Request Cycle Cache – enabled by default. It requires [LHC Caching Interceptor](https://github.com/local-ch/lhc/blob/master/docs/interceptors/caching.md) to be enabled:
13
13
 
14
14
  ```ruby
15
- # intializers/lhc.rb
15
+ # intializers/lhc.rb
16
16
  LHC.configure do |config|
17
17
  config.interceptors = [LHC::Caching]
18
18
  end
@@ -285,7 +285,7 @@ You can apply options to the request chain. Those options will be forwarded to t
285
285
 
286
286
  ## Request Cycle Cache
287
287
 
288
- By default, LHS does not perform the same http request during one request cycle multiple times.
288
+ By default, LHS does not perform the same http request during one request cycle multiple times.
289
289
 
290
290
  It uses the [LHC Caching Interceptor](https://github.com/local-ch/lhc/blob/master/docs/interceptors/caching.md) as caching mechanism base and sets a unique request id for every request cycle with Railties to ensure data is just cached within one request cycle and not shared with other requests.
291
291
 
@@ -299,6 +299,12 @@ If you want to disable the LHS Request Cycle Cache, simply disable it within con
299
299
  LHS.config.request_cycle_cache_enabled = false
300
300
  ```
301
301
 
302
+ By default the LHS Request Cycle Cache will use `ActiveSupport::Cache::MemoryStore` as its cache store. Feel free to configure a cache that is better suited for your needs by:
303
+
304
+ ```ruby
305
+ LHS.config.request_cycle_cache = ActiveSupport::Cache::MemoryStore.new
306
+ ```
307
+
302
308
  ## Batch processing
303
309
 
304
310
  **Be careful using methods for batch processing. They could result in a lot of HTTP requests!**
@@ -683,7 +689,7 @@ record.update(recommended: false)
683
689
  Based on [ActiveRecord's implementation](http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-becomes), LHS implements `becomes`, too.
684
690
  It's a way to convert records of a certain type A to another certain type B.
685
691
 
686
- _NOTE: RPC-style actions, that are discouraged in REST anyway, are utilizable with this functionality, too. See the following example:_
692
+ _NOTE: RPC-style actions, that are discouraged in REST anyway, are utilizable with this functionality, too. See the following example:_
687
693
 
688
694
  ```ruby
689
695
  class Location < LHS::Record
@@ -792,9 +798,9 @@ end
792
798
 
793
799
  # view.html
794
800
  = form_for @customer, as: :customer do |customer_form|
795
-
801
+
796
802
  = fields_for 'customer[:address]', @customer.address, do |address_form|
797
-
803
+
798
804
  = fields_for 'customer[:address][:street]', @customer.address.street, do |street_form|
799
805
 
800
806
  = street_form.input :name
@@ -12,11 +12,13 @@ class LHS::Record
12
12
 
13
13
  def before_request(request)
14
14
  request.options = request.options.merge({
15
- cache: true,
16
- cache_expires_in: 5.minutes,
17
- cache_race_condition_ttl: 5.seconds,
18
- cache_key: cache_key_for(request),
19
- cached_methods: CACHED_METHODS
15
+ cache: {
16
+ expires_in: 5.minutes,
17
+ race_condition_ttl: 5.seconds,
18
+ key: cache_key_for(request),
19
+ methods: CACHED_METHODS,
20
+ use: LHS.config.request_cycle_cache
21
+ }
20
22
  }.merge(request.options))
21
23
  end
22
24
 
data/lib/lhs/config.rb CHANGED
@@ -3,9 +3,12 @@ require 'singleton'
3
3
  class LHS::Config
4
4
  include Singleton
5
5
 
6
- attr_accessor :request_cycle_cache_enabled
6
+ attr_accessor :request_cycle_cache_enabled, :request_cycle_cache
7
7
 
8
8
  def initialize
9
9
  self.request_cycle_cache_enabled ||= true
10
+ if defined?(ActiveSupport::Cache::MemoryStore)
11
+ self.request_cycle_cache ||= ActiveSupport::Cache::MemoryStore.new
12
+ end
10
13
  end
11
14
  end
data/lib/lhs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "13.0.0"
2
+ VERSION = "13.0.1"
3
3
  end
@@ -87,4 +87,17 @@ describe 'Request Cycle Cache', type: :request do
87
87
  expect(request).to have_been_made.times(2)
88
88
  end
89
89
  end
90
+
91
+ context 'use: cache' do
92
+ let!(:old_cache) { LHS.config.request_cycle_cache }
93
+ before { LHS.config.request_cycle_cache = double('cache', fetch: nil, write: nil) }
94
+ after { LHS.config.request_cycle_cache = old_cache }
95
+
96
+ it 'uses the cache passed in',
97
+ cleanup_before: true, request_cycle_cache: true do
98
+ expect(LHS.config.request_cycle_cache).to receive(:fetch).at_least(:once)
99
+ expect(LHS.config.request_cycle_cache).to receive(:write).at_least(:once)
100
+ get '/request_cycle_cache/simple'
101
+ end
102
+ end
90
103
  end
@@ -3,5 +3,6 @@ RSpec.configure do |config|
3
3
  enabled = spec.metadata.key?(:request_cycle_cache) && spec.metadata[:request_cycle_cache] == true
4
4
  enabled ||= false
5
5
  LHS.config.request_cycle_cache_enabled = enabled
6
+ LHS.config.request_cycle_cache = ActiveSupport::Cache::MemoryStore.new
6
7
  end
7
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.0.0
4
+ version: 13.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/local-ch/lhs/graphs/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2017-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc
@@ -414,7 +414,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
414
414
  requirements:
415
415
  - Ruby >= 2.3.0
416
416
  rubyforge_project:
417
- rubygems_version: 2.6.8
417
+ rubygems_version: 2.6.12
418
418
  signing_key:
419
419
  specification_version: 4
420
420
  summary: Rails gem providing an easy, active-record-like interface for http json services