async_cache 1.0.1 → 1.0.2

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
  SHA1:
3
- metadata.gz: 403da7156db830a1ce124c163bd01f76bbc8d74e
4
- data.tar.gz: baaead5a8cdf2518c73e3d951620db13c5bf02e2
3
+ metadata.gz: 500e9448eef871f617a1d0a131fd3838c231058d
4
+ data.tar.gz: 3f09a314542ea93102d65d96e6417f25374483d0
5
5
  SHA512:
6
- metadata.gz: a2335c08328573320f258606f2d19a70a28bccc8328d3d3a8ce6ce576f079e76cb4b5d5931fb297837e6e95714bf44e4e8912681a355273486f1f38d9ec15d98
7
- data.tar.gz: 73dd67211b1b431155dbbd35e89f824db065fb2bb80066f07eef86e908931f8db533bc94c7d195d4d7d8bada9e8e022f36f57791637a1f828028b15eafc9f6e6
6
+ metadata.gz: e174c76425afb575ace71b4902b6b7fcb6acc9d2b096fc4955e0a0c88c738c4441e83529d274243dd40d2360c5f265bc69e267c4773558e2587a5849311da30a
7
+ data.tar.gz: 51e30ffe8cb929710185ee2624e6a957a33b33338a3724f317414597bf75786f7b96944abf02a3878212fd7daa85137b3cbe39f58ed2d56e3e8b73ba5f637bab
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  .DS_Store
2
+ .yardoc
2
3
  coverage
4
+ doc
3
5
  pkg
@@ -0,0 +1,4 @@
1
+ --markup-provider=redcarpet
2
+ --markup=markdown
3
+ --private
4
+ - README.md LICENSE
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- async_cache (1.0.1)
4
+ async_cache (1.0.2)
5
5
  sourcify (~> 0.5.0)
6
6
 
7
7
  GEM
@@ -122,6 +122,7 @@ GEM
122
122
  rake (>= 0.8.7)
123
123
  thor (>= 0.18.1, < 2.0)
124
124
  rake (10.4.2)
125
+ redcarpet (3.3.4)
125
126
  redis (3.2.1)
126
127
  redis-activesupport (4.1.5)
127
128
  activesupport (>= 3, < 5)
@@ -184,6 +185,7 @@ GEM
184
185
  tins (1.8.1)
185
186
  tzinfo (1.2.2)
186
187
  thread_safe (~> 0.1)
188
+ yard (0.8.7.6)
187
189
 
188
190
  PLATFORMS
189
191
  ruby
@@ -193,11 +195,13 @@ DEPENDENCIES
193
195
  httparty (~> 0.13.7)
194
196
  pry (~> 0.10.1)
195
197
  rails (~> 4.2.4)
198
+ redcarpet (~> 3.3.4)
196
199
  redis-activesupport (~> 4.1.5)
197
200
  rspec (~> 3.4.0)
198
201
  sidekiq (~> 3.5.2)
199
202
  simplecov (~> 0.9.2)
200
203
  sinatra (~> 1.4.6)
204
+ yard (~> 0.8)
201
205
 
202
206
  BUNDLED WITH
203
207
  1.11.2
data/Rakefile CHANGED
@@ -2,3 +2,8 @@ require "bundler/gem_tasks"
2
2
 
3
3
  # No-op to make Travis CI happy
4
4
  task 'default'
5
+
6
+ desc 'Generate documentation with YARD'
7
+ task 'doc' do
8
+ exec 'bundle exec yardoc'
9
+ end
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency 'simplecov', '~> 0.9.2'
24
24
  s.add_development_dependency 'redis-activesupport', '~> 4.1.5'
25
25
  s.add_development_dependency 'httparty', '~> 0.13.7'
26
+ s.add_development_dependency 'yard', '~> 0.8'
27
+ s.add_development_dependency 'redcarpet', '~> 3.3.4'
26
28
 
27
29
  s.files = `git ls-files`.split("\n")
28
30
  s.test_files = `git ls-files -- test/*`.split("\n")
@@ -2,6 +2,12 @@ module AsyncCache
2
2
  class Store
3
3
  attr_accessor :backend, :worker_klass
4
4
 
5
+ # @param [Hash] opts Initialization options
6
+ # @option opts [Object] :backend The backend that it will read/write
7
+ # entries to/from
8
+ # @option opts [Symbol] :worker Shorthand symbol for the worker to use,
9
+ # options are `:active_job` and `:sidekiq`.
10
+ # @option ops [Class] :worker_klass Class of the worker to use.
5
11
  def initialize(opts = {})
6
12
  @worker_klass =
7
13
  if opts[:worker_klass]
@@ -15,6 +21,10 @@ module AsyncCache
15
21
  @backend = opts[:backend] || AsyncCache.backend
16
22
  end
17
23
 
24
+ # @param [String] locator The constant locator for the entry in the cache
25
+ # @param [Fixnum] version Version of the value identified by that locator
26
+ # @param [Hash] options
27
+ # @yield [*arguments in options[:arguments]] Called if entry out-of-date
18
28
  def fetch(locator, version, options = {}, &block)
19
29
  options = options.dup # Duplicate to avoid side effects
20
30
  version = version.to_i # Versions must *always* be convertible to integers
@@ -103,13 +113,16 @@ module AsyncCache
103
113
 
104
114
  private
105
115
 
106
- # Ensure the arguments are primitives
116
+ # Ensures the arguments are primitives.
107
117
  def check_arguments arguments
108
118
  arguments.each_with_index do |argument, index|
109
119
  next if argument.is_a? Numeric
110
120
  next if argument.is_a? String
111
121
  next if argument.is_a? Symbol
112
122
  next if argument.is_a? Hash
123
+ next if argument.is_a? NilClass
124
+ next if argument.is_a? TrueClass
125
+ next if argument.is_a? FalseClass
113
126
 
114
127
  raise ArgumentError, "Cannot send complex data for block argument #{index + 1}: #{argument.class.name}"
115
128
  end
@@ -1,3 +1,3 @@
1
1
  module AsyncCache
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
@@ -15,20 +15,26 @@ module AsyncCache
15
15
 
16
16
  module Base
17
17
  # Abstract public interface to workers that process AsyncCache jobs
18
+
19
+ # @return [Boolean] Returns whether or not workers are running to
20
+ # process enqueue AsyncCache jobs. Return `false` if this
21
+ # functionality isn't available by the underlying system.
18
22
  def self.has_workers?
19
23
  raise NotImplementedError
20
24
  end
21
25
 
26
+ # Public interface for enqueuing jobs. This is what is called by
27
+ # {AsyncCache::Store}.
22
28
  def self.enqueue_async_job(key:, version:, expires_in:, block:, arguments:)
23
29
  raise NotImplementedError
24
30
  end
25
31
 
26
- # key - String or array cache key computed by `AsyncCache`
27
- # version - Monotonically increasing integer indicating the version
28
- # of the resource being cached
29
- # expires_in - Optional expiration to pass to the cache store
30
- # block_arguments - Arguments with which to call the block
31
- # block_source - Ruby source to evaluate to produce the value
32
+ # @param [String] key String or array cache key computed by `AsyncCache`
33
+ # @param [Fixnum] version Monotonically increasing integer indicating
34
+ # the version of the resource being cached
35
+ # @param [Fixnum] expires_in Optional expiration to pass to the cache store
36
+ # @param [Array] block_arguments Arguments with which to call the block
37
+ # @param [String] block_source Ruby source to evaluate to produce the value
32
38
  def perform key, version, expires_in, block_arguments, block_source
33
39
  t0 = Time.now
34
40
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Derewecki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-07 00:00:00.000000000 Z
12
+ date: 2016-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sourcify
@@ -137,6 +137,34 @@ dependencies:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
139
  version: 0.13.7
140
+ - !ruby/object:Gem::Dependency
141
+ name: yard
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '0.8'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '0.8'
154
+ - !ruby/object:Gem::Dependency
155
+ name: redcarpet
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 3.3.4
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: 3.3.4
140
168
  description:
141
169
  email:
142
170
  - derewecki@gmail.com
@@ -148,6 +176,7 @@ files:
148
176
  - ".gitignore"
149
177
  - ".rspec"
150
178
  - ".travis.yml"
179
+ - ".yardopts"
151
180
  - Gemfile
152
181
  - Gemfile.lock
153
182
  - LICENSE
@@ -196,3 +225,4 @@ signing_key:
196
225
  specification_version: 4
197
226
  summary: Pattern and library for implementing asynchronous caching
198
227
  test_files: []
228
+ has_rdoc: