rails-cache-tags 1.2.0 → 1.3.0

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.
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+
3
+ require 'bundler/setup'
4
+
5
+ require 'simplecov'
6
+
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.order = 'random'
10
+
11
+ config.around(:each, :memcache) do |example|
12
+ require 'memcache'
13
+ begin
14
+ MemCache.new('localhost:11211').stats
15
+ example.run
16
+ rescue MemCache::MemCacheError
17
+ $stderr.puts 'Skipping Memcached tests. Start memcached and try again.'
18
+ end
19
+ end
20
+ end
21
+
22
+ SimpleCov.start 'test_frameworks'
23
+
24
+ require 'rails-cache-tags'
metadata CHANGED
@@ -1,104 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-cache-tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 1.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Alexei Mikhailov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-16 00:00:00.000000000Z
11
+ date: 2014-02-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: &20459380 !ruby/object:Gem::Requirement
17
- none: false
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *20459380
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: i18n
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
25
41
  - !ruby/object:Gem::Dependency
26
42
  name: appraisal
27
- requirement: &20458680 !ruby/object:Gem::Requirement
28
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
- - - ! '>='
45
+ - - '>='
31
46
  - !ruby/object:Gem::Version
32
47
  version: '0'
33
48
  type: :development
34
49
  prerelease: false
35
- version_requirements: *20458680
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
36
55
  - !ruby/object:Gem::Dependency
37
56
  name: minitest
38
- requirement: &20457820 !ruby/object:Gem::Requirement
39
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
40
58
  requirements:
41
59
  - - ~>
42
60
  - !ruby/object:Gem::Version
43
- version: '3.2'
61
+ version: '4.2'
44
62
  type: :development
45
63
  prerelease: false
46
- version_requirements: *20457820
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '4.2'
47
69
  - !ruby/object:Gem::Dependency
48
70
  name: memcache-client
49
- requirement: &20457360 !ruby/object:Gem::Requirement
50
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
51
72
  requirements:
52
- - - ! '>='
73
+ - - '>='
53
74
  - !ruby/object:Gem::Version
54
75
  version: '0'
55
76
  type: :development
56
77
  prerelease: false
57
- version_requirements: *20457360
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
58
83
  - !ruby/object:Gem::Dependency
59
84
  name: rack
60
- requirement: &20456820 !ruby/object:Gem::Requirement
61
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
62
86
  requirements:
63
- - - ! '>='
87
+ - - '>='
64
88
  - !ruby/object:Gem::Version
65
89
  version: '0'
66
90
  type: :development
67
91
  prerelease: false
68
- version_requirements: *20456820
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: mocha
71
- requirement: &20455780 !ruby/object:Gem::Requirement
72
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
73
100
  requirements:
74
- - - ! '>='
101
+ - - '>='
75
102
  - !ruby/object:Gem::Version
76
103
  version: '0'
77
104
  type: :development
78
105
  prerelease: false
79
- version_requirements: *20455780
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
80
111
  - !ruby/object:Gem::Dependency
81
112
  name: simplecov
82
- requirement: &20454640 !ruby/object:Gem::Requirement
83
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  requirements:
85
- - - ! '>='
115
+ - - '>='
86
116
  - !ruby/object:Gem::Version
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *20454640
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
91
125
  - !ruby/object:Gem::Dependency
92
126
  name: dalli
93
- requirement: &20440600 !ruby/object:Gem::Requirement
94
- none: false
127
+ requirement: !ruby/object:Gem::Requirement
95
128
  requirements:
96
- - - ! '>='
129
+ - - '>='
97
130
  - !ruby/object:Gem::Version
98
131
  version: '2.0'
99
132
  type: :development
100
133
  prerelease: false
101
- version_requirements: *20440600
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '2.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
102
153
  description: Tagged caching support for Rails
103
154
  email:
104
155
  - amikhailov83@gmail.com
@@ -106,42 +157,38 @@ executables: []
106
157
  extensions: []
107
158
  extra_rdoc_files: []
108
159
  files:
109
- - LICENSE
110
- - README.md
111
160
  - lib/rails-cache-tags.rb
112
- - lib/rails/cache/tag.rb
113
- - rails-cache-tags.gemspec
161
+ - lib/rails/cache/tags/action_controller.rb
162
+ - lib/rails/cache/tags/set.rb
114
163
  - lib/rails/cache/tags/store.rb
164
+ - lib/rails/cache/tags/tag.rb
115
165
  - lib/rails/cache/tags/version.rb
116
- - test/cache_tags_test.rb
117
- - test/caching_test.rb
118
- - test/test_helper.rb
166
+ - spec/cache_tags_spec.rb
167
+ - spec/spec_helper.rb
119
168
  homepage: https://github.com/take-five/rails-cache-tags
120
169
  licenses: []
170
+ metadata: {}
121
171
  post_install_message:
122
172
  rdoc_options: []
123
173
  require_paths:
124
174
  - lib
125
175
  required_ruby_version: !ruby/object:Gem::Requirement
126
- none: false
127
176
  requirements:
128
- - - ! '>='
177
+ - - '>='
129
178
  - !ruby/object:Gem::Version
130
179
  version: '0'
131
180
  required_rubygems_version: !ruby/object:Gem::Requirement
132
- none: false
133
181
  requirements:
134
- - - ! '>='
182
+ - - '>='
135
183
  - !ruby/object:Gem::Version
136
184
  version: '0'
137
185
  requirements: []
138
186
  rubyforge_project:
139
- rubygems_version: 1.8.17
187
+ rubygems_version: 2.1.10
140
188
  signing_key:
141
- specification_version: 3
189
+ specification_version: 4
142
190
  summary: Tagged caching support for Rails
143
191
  test_files:
144
- - test/cache_tags_test.rb
145
- - test/caching_test.rb
146
- - test/test_helper.rb
192
+ - spec/cache_tags_spec.rb
193
+ - spec/spec_helper.rb
147
194
  has_rdoc:
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2012 Alexei Mikhailov
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,90 +0,0 @@
1
- # Synopsys
2
-
3
- Tagged caching support within your Rails application. Tested against Rails 3.0, Rails 3.1 and Rails 3.2
4
- [Dalli](https://github.com/mperham/dalli) store is also supported!
5
-
6
- # Installation
7
-
8
- Add this line to your application's Gemfile:
9
-
10
- gem 'rails-cache-tags'
11
-
12
- And then execute:
13
-
14
- $ bundle
15
-
16
- Or install it yourself as:
17
-
18
- $ gem install rails-cache-tags
19
-
20
- # Usage
21
-
22
- Anywhere:
23
-
24
- ```ruby
25
- cache = Rails.cache
26
-
27
- cache.write "foo", "bar", :tags => %w(baz foo)
28
- cache.read "foo" # => "bar"
29
-
30
- cache.delete_tag "baz"
31
- cache.read "foo" => nil
32
- ```
33
-
34
- More realistic example:
35
- ```ruby
36
- class PostsController < ApplicationController
37
- def index
38
- @posts = cache.fetch("index", :tags =>
39
-
40
- @posts = cache.read("posts") || begin
41
- posts_from_db = Post.all
42
-
43
- cache.write "posts", :tags => {:post => posts_from_db.map(&:id)}
44
-
45
- posts_from_db
46
- end
47
- end
48
-
49
- def show
50
- id = params[:id]
51
-
52
- @post = cache.fetch(["post", id], :tags => {:post => id}) do
53
- Post.find(id)
54
- end
55
- end
56
-
57
- def update
58
- @post = Post.find(params[:id])
59
-
60
- if @post.update_attributes
61
- cache.delete_tag :post => @post.id
62
- end
63
- end
64
- end
65
- ```
66
-
67
- In your controller:
68
- ```ruby
69
- class PostController < ActionController::Base
70
- def update
71
- @post = Post.find_by_id(params[:id])
72
-
73
- if @post.update_attributes(params)
74
- expire_fragments_by_tags :post => @post.id
75
- else
76
- render :edit
77
- end
78
- end
79
- end
80
- ```
81
-
82
- # Contributing
83
-
84
- 1. Fork it
85
- 2. Create your feature branch (`git checkout -b my-new-feature`)
86
- 3. Commit your changes (`git commit -am 'Added some feature'`)
87
- 4. Write tests!
88
- 5. Run tests against all major version of Rails starting from 3.0
89
- 6. Push to the branch (`git push origin my-new-feature`)
90
- 7. Create new Pull Request
@@ -1,58 +0,0 @@
1
- require "active_support/cache"
2
-
3
- module Rails
4
- module Cache
5
- class Tag #:nodoc:all:
6
- KEY_PREFIX = '_tags'
7
-
8
- class << self
9
- # {:post => ['1', '2', '3']} => [Tag(post/1), Tag(post/2), Tag(post/3)]
10
- # {:post => 1, :user => 2} => [Tag(post/1), Tag(user/2)]
11
- # ['post/1', 'post/2', 'post/3'] => [Tag(post/1), Tag(post/2), Tag(post/3)]
12
- def build_tags(names)
13
- case names
14
- when NilClass then nil
15
- when Hash then names.map do |key, value|
16
- Array.wrap(value).map { |v| new([key, v]) }
17
- end.flatten
18
- when Enumerable then names.map { |v| build_tags(v) }.flatten
19
- when self then names
20
- else [new(names)]
21
- end
22
- end
23
- end
24
-
25
- attr_reader :name
26
-
27
- # Tag constructor
28
- def initialize(name)
29
- @name = ActiveSupport::Cache.expand_cache_key name
30
- end
31
-
32
- # real cache key
33
- def to_key
34
- [KEY_PREFIX, name].join('/')
35
- end
36
-
37
- # read tag's version from +store+
38
- def fetch(store)
39
- store.read(to_key)
40
- end
41
-
42
- # increment tag's version inside +store+
43
- def increment(store)
44
- current = fetch(store)
45
-
46
- version = if current.is_a?(Fixnum)
47
- current + 1
48
- else
49
- 1
50
- end
51
-
52
- store.write(to_key, version, :expires_in => nil)
53
-
54
- version
55
- end
56
- end # class Tag
57
- end # module Cache
58
- end # module Rails
@@ -1,26 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/rails/cache/tags/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["Alexei Mikhailov"]
6
- gem.email = %W(amikhailov83@gmail.com)
7
- gem.description = %q{Tagged caching support for Rails}
8
- gem.summary = %q{Tagged caching support for Rails}
9
- gem.homepage = "https://github.com/take-five/rails-cache-tags"
10
-
11
- gem.files = %W(LICENSE README.md lib/rails-cache-tags.rb lib/rails/cache/tag.rb rails-cache-tags.gemspec lib/rails/cache/tags/store.rb lib/rails/cache/tags/version.rb test/cache_tags_test.rb test/caching_test.rb test/test_helper.rb)
12
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
- gem.name = "rails-cache-tags"
14
- gem.require_paths = %W(lib)
15
- gem.version = Rails::Cache::Tags::VERSION
16
-
17
- gem.add_dependency "rails", ">= 3.0"
18
-
19
- gem.add_development_dependency 'appraisal'
20
- gem.add_development_dependency 'minitest', '~> 3.2'
21
- gem.add_development_dependency 'memcache-client'
22
- gem.add_development_dependency 'rack'
23
- gem.add_development_dependency 'mocha'
24
- gem.add_development_dependency 'simplecov'
25
- gem.add_development_dependency 'dalli', '>= 2.0'
26
- end