db-cache-store 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +135 -0
- data/README.md +56 -0
- data/Rakefile +12 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/db_cache_store.gemspec +29 -0
- data/lib/active_support/cache/db_item.rb +24 -0
- data/lib/active_support/cache/db_store.rb +44 -0
- data/lib/db_cache_store.rb +6 -0
- data/lib/db_cache_store/version.rb +3 -0
- data/lib/generators/db_cache_store/migration_generator.rb +27 -0
- data/lib/generators/db_cache_store/templates/migration.rb +18 -0
- metadata +161 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 1785318f4ba27a34f7b2c5b0492ad0c2beb59dd0
|
|
4
|
+
data.tar.gz: e58cb046187c93750b45f9dd2b5fbce754aabfcc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c4a85a4891d329bf9d9fe8b0f159f1b84cf31205d087e343b51f42c1a1a36c33d5d452394b5e03c4797972dcf646a854198fd450b3fc35fcad3d296421a424f6
|
|
7
|
+
data.tar.gz: 40b21a8b46042b270d6bedfa49e15624419c8dea72d81cb3319c8f15e5081d2c2ef690b46a9cd443b716e1b66ca7ed281fc9e3cfae79f8ea69e92ce94c22c5d9
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
db-cache-store (0.1.0)
|
|
5
|
+
rails (>= 5.0, < 5.2)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: https://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
actioncable (5.1.6)
|
|
11
|
+
actionpack (= 5.1.6)
|
|
12
|
+
nio4r (~> 2.0)
|
|
13
|
+
websocket-driver (~> 0.6.1)
|
|
14
|
+
actionmailer (5.1.6)
|
|
15
|
+
actionpack (= 5.1.6)
|
|
16
|
+
actionview (= 5.1.6)
|
|
17
|
+
activejob (= 5.1.6)
|
|
18
|
+
mail (~> 2.5, >= 2.5.4)
|
|
19
|
+
rails-dom-testing (~> 2.0)
|
|
20
|
+
actionpack (5.1.6)
|
|
21
|
+
actionview (= 5.1.6)
|
|
22
|
+
activesupport (= 5.1.6)
|
|
23
|
+
rack (~> 2.0)
|
|
24
|
+
rack-test (>= 0.6.3)
|
|
25
|
+
rails-dom-testing (~> 2.0)
|
|
26
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
27
|
+
actionview (5.1.6)
|
|
28
|
+
activesupport (= 5.1.6)
|
|
29
|
+
builder (~> 3.1)
|
|
30
|
+
erubi (~> 1.4)
|
|
31
|
+
rails-dom-testing (~> 2.0)
|
|
32
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
33
|
+
activejob (5.1.6)
|
|
34
|
+
activesupport (= 5.1.6)
|
|
35
|
+
globalid (>= 0.3.6)
|
|
36
|
+
activemodel (5.1.6)
|
|
37
|
+
activesupport (= 5.1.6)
|
|
38
|
+
activerecord (5.1.6)
|
|
39
|
+
activemodel (= 5.1.6)
|
|
40
|
+
activesupport (= 5.1.6)
|
|
41
|
+
arel (~> 8.0)
|
|
42
|
+
activesupport (5.1.6)
|
|
43
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
44
|
+
i18n (>= 0.7, < 2)
|
|
45
|
+
minitest (~> 5.1)
|
|
46
|
+
tzinfo (~> 1.1)
|
|
47
|
+
arel (8.0.0)
|
|
48
|
+
builder (3.2.3)
|
|
49
|
+
coderay (1.1.2)
|
|
50
|
+
concurrent-ruby (1.0.5)
|
|
51
|
+
crass (1.0.4)
|
|
52
|
+
docile (1.3.0)
|
|
53
|
+
erubi (1.7.1)
|
|
54
|
+
globalid (0.4.1)
|
|
55
|
+
activesupport (>= 4.2.0)
|
|
56
|
+
i18n (1.0.0)
|
|
57
|
+
concurrent-ruby (~> 1.0)
|
|
58
|
+
json (2.1.0)
|
|
59
|
+
loofah (2.2.2)
|
|
60
|
+
crass (~> 1.0.2)
|
|
61
|
+
nokogiri (>= 1.5.9)
|
|
62
|
+
mail (2.7.0)
|
|
63
|
+
mini_mime (>= 0.1.1)
|
|
64
|
+
method_source (0.9.0)
|
|
65
|
+
mini_mime (1.0.0)
|
|
66
|
+
mini_portile2 (2.3.0)
|
|
67
|
+
minitest (5.11.3)
|
|
68
|
+
nio4r (2.3.0)
|
|
69
|
+
nokogiri (1.8.2)
|
|
70
|
+
mini_portile2 (~> 2.3.0)
|
|
71
|
+
pry (0.11.3)
|
|
72
|
+
coderay (~> 1.1.0)
|
|
73
|
+
method_source (~> 0.9.0)
|
|
74
|
+
rack (2.0.4)
|
|
75
|
+
rack-test (1.0.0)
|
|
76
|
+
rack (>= 1.0, < 3)
|
|
77
|
+
rails (5.1.6)
|
|
78
|
+
actioncable (= 5.1.6)
|
|
79
|
+
actionmailer (= 5.1.6)
|
|
80
|
+
actionpack (= 5.1.6)
|
|
81
|
+
actionview (= 5.1.6)
|
|
82
|
+
activejob (= 5.1.6)
|
|
83
|
+
activemodel (= 5.1.6)
|
|
84
|
+
activerecord (= 5.1.6)
|
|
85
|
+
activesupport (= 5.1.6)
|
|
86
|
+
bundler (>= 1.3.0)
|
|
87
|
+
railties (= 5.1.6)
|
|
88
|
+
sprockets-rails (>= 2.0.0)
|
|
89
|
+
rails-dom-testing (2.0.3)
|
|
90
|
+
activesupport (>= 4.2.0)
|
|
91
|
+
nokogiri (>= 1.6)
|
|
92
|
+
rails-html-sanitizer (1.0.4)
|
|
93
|
+
loofah (~> 2.2, >= 2.2.2)
|
|
94
|
+
railties (5.1.6)
|
|
95
|
+
actionpack (= 5.1.6)
|
|
96
|
+
activesupport (= 5.1.6)
|
|
97
|
+
method_source
|
|
98
|
+
rake (>= 0.8.7)
|
|
99
|
+
thor (>= 0.18.1, < 2.0)
|
|
100
|
+
rake (10.5.0)
|
|
101
|
+
simplecov (0.16.1)
|
|
102
|
+
docile (~> 1.1)
|
|
103
|
+
json (>= 1.8, < 3)
|
|
104
|
+
simplecov-html (~> 0.10.0)
|
|
105
|
+
simplecov-html (0.10.2)
|
|
106
|
+
sprockets (3.7.1)
|
|
107
|
+
concurrent-ruby (~> 1.0)
|
|
108
|
+
rack (> 1, < 3)
|
|
109
|
+
sprockets-rails (3.2.1)
|
|
110
|
+
actionpack (>= 4.0)
|
|
111
|
+
activesupport (>= 4.0)
|
|
112
|
+
sprockets (>= 3.0.0)
|
|
113
|
+
sqlite3 (1.3.13)
|
|
114
|
+
thor (0.20.0)
|
|
115
|
+
thread_safe (0.3.6)
|
|
116
|
+
tzinfo (1.2.5)
|
|
117
|
+
thread_safe (~> 0.1)
|
|
118
|
+
websocket-driver (0.6.5)
|
|
119
|
+
websocket-extensions (>= 0.1.0)
|
|
120
|
+
websocket-extensions (0.1.3)
|
|
121
|
+
|
|
122
|
+
PLATFORMS
|
|
123
|
+
ruby
|
|
124
|
+
|
|
125
|
+
DEPENDENCIES
|
|
126
|
+
bundler (~> 1.16)
|
|
127
|
+
db-cache-store!
|
|
128
|
+
minitest (>= 5.0.0)
|
|
129
|
+
pry
|
|
130
|
+
rake (~> 10.0)
|
|
131
|
+
simplecov
|
|
132
|
+
sqlite3
|
|
133
|
+
|
|
134
|
+
BUNDLED WITH
|
|
135
|
+
1.16.0
|
data/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# DbCacheStore
|
|
2
|
+
|
|
3
|
+
Alternative rails cache engine, that will use database with `activerecord`
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
Add this line to your application's Gemfile:
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
gem 'db-cache-store'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
### Global Usage
|
|
18
|
+
|
|
19
|
+
It's __NOT__ recommened to use it as global application cache because it's slow.
|
|
20
|
+
|
|
21
|
+
Supported rails versions: '>= 5.0', '< 5.2'
|
|
22
|
+
|
|
23
|
+
First you need to genereate table:
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
DbCacheStore:
|
|
27
|
+
db_cache_store:migration [TABLE_NAME=db_cache_store_items]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then declare your cache model and update configuration in application.rb:
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
class MyCacheRepository < ActiveSupport::Cache::DbItem
|
|
34
|
+
self.table_name = :cache_items
|
|
35
|
+
end
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```ruby
|
|
39
|
+
config.cache_store = :db_cache_store, repository: MyCacheRepository
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Local usage
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
cache_store = ActiveSupport::Cache.lookup_store(:db_store, repository: MyCacheRepository)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Development
|
|
49
|
+
|
|
50
|
+
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
51
|
+
|
|
52
|
+
`rake` will run unit tests
|
|
53
|
+
|
|
54
|
+
## Contributing
|
|
55
|
+
|
|
56
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/caulfield/db-cache-store
|
data/Rakefile
ADDED
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require "bundler/setup"
|
|
4
|
+
require "db_cache_store"
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require "irb"
|
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
+
require "db_cache_store/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "db-cache-store"
|
|
7
|
+
spec.version = DbCacheStore::VERSION
|
|
8
|
+
spec.authors = ["Sergey Kuchmistov"]
|
|
9
|
+
spec.email = ["sergey.kuchmistov@gmail.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Alternative rails cache engine, that will use database server"
|
|
12
|
+
spec.description = "Alternative rails cache engine, that will use database server"
|
|
13
|
+
|
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
15
|
+
f.match(%r{^(test|spec|features)/})
|
|
16
|
+
end
|
|
17
|
+
spec.bindir = "exe"
|
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_dependency 'rails', '>= 5.0', '< 5.2'
|
|
22
|
+
|
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
24
|
+
spec.add_development_dependency 'minitest', '>= 5.0.0'
|
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
26
|
+
spec.add_development_dependency 'sqlite3'
|
|
27
|
+
spec.add_development_dependency 'simplecov'
|
|
28
|
+
spec.add_development_dependency 'pry'
|
|
29
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'active_record'
|
|
2
|
+
|
|
3
|
+
module ActiveSupport
|
|
4
|
+
module Cache
|
|
5
|
+
class DbItem < ActiveRecord::Base
|
|
6
|
+
TABLE_NAME = 'db_cache_store_items'
|
|
7
|
+
|
|
8
|
+
self.table_name = TABLE_NAME
|
|
9
|
+
|
|
10
|
+
def entry
|
|
11
|
+
serialized_value = attributes['entry']
|
|
12
|
+
YAML.load(serialized_value) if serialized_value
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def value
|
|
16
|
+
entry.value
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def expired?
|
|
20
|
+
entry.expired?
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require 'active_support/cache'
|
|
2
|
+
require 'active_support/cache/db_item'
|
|
3
|
+
|
|
4
|
+
module ActiveSupport
|
|
5
|
+
module Cache
|
|
6
|
+
class DbStore < Store
|
|
7
|
+
attr_reader :repository
|
|
8
|
+
|
|
9
|
+
def initialize(options = {})
|
|
10
|
+
super(options)
|
|
11
|
+
@repository = options.fetch(:repository, DbItem)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def clear(options = {})
|
|
15
|
+
@repository.update_all(deleted_at: Time.now)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def cleanup(options = {})
|
|
19
|
+
@repository.where.not(expired_at: nil).update_all(deleted_at: Time.now)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def read_entry(key, options = {})
|
|
25
|
+
scope = @repository.where(expired_at: nil).where(deleted_at: nil).order(version: :desc)
|
|
26
|
+
if options[:version]
|
|
27
|
+
scope = scope.where(version: options[:version])
|
|
28
|
+
end
|
|
29
|
+
scope.find_by(key: key)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def write_entry(key, entry, options = nil)
|
|
33
|
+
@repository.create \
|
|
34
|
+
key: key,
|
|
35
|
+
entry: YAML.dump(entry),
|
|
36
|
+
version: (read_entry(key, options)&.version.to_f + 1)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def delete_entry(key, options = nil)
|
|
40
|
+
read_entry(key)&.touch(:expired_at)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'rails/generators/base'
|
|
2
|
+
|
|
3
|
+
module DbCacheStore
|
|
4
|
+
module Generators
|
|
5
|
+
class MigrationGenerator < Rails::Generators::Base
|
|
6
|
+
include Rails::Generators::Migration
|
|
7
|
+
|
|
8
|
+
argument :table_name, type: :string, default: ActiveSupport::Cache::DbItem::TABLE_NAME
|
|
9
|
+
|
|
10
|
+
desc "Generates a migration for given TABLE to use it as cache storage."
|
|
11
|
+
|
|
12
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
13
|
+
|
|
14
|
+
def generate_migration
|
|
15
|
+
migration_template "migration.rb", "db/migrate/db_cache_store_create_#{table_name}.rb"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def migration_version
|
|
19
|
+
"[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.next_migration_number(dir)
|
|
23
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DbCacheStoreCreate<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
|
|
4
|
+
def change
|
|
5
|
+
create_table :<%= table_name %>, id: false do |t|
|
|
6
|
+
t.string :key
|
|
7
|
+
t.text :entry
|
|
8
|
+
t.integer :version, default: 1
|
|
9
|
+
|
|
10
|
+
t.datetime :expired_at
|
|
11
|
+
t.datetime :deleted_at
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
add_index :<%= table_name %>, :expired_at
|
|
15
|
+
add_index :<%= table_name %>, :deleted_at
|
|
16
|
+
add_index :<%= table_name %>, :key
|
|
17
|
+
end
|
|
18
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: db-cache-store
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Sergey Kuchmistov
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-04-13 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rails
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '5.0'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '5.2'
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '5.0'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '5.2'
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: bundler
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.16'
|
|
40
|
+
type: :development
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.16'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: minitest
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 5.0.0
|
|
54
|
+
type: :development
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 5.0.0
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: rake
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '10.0'
|
|
68
|
+
type: :development
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '10.0'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: sqlite3
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: simplecov
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
type: :development
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: pry
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
type: :development
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '0'
|
|
117
|
+
description: Alternative rails cache engine, that will use database server
|
|
118
|
+
email:
|
|
119
|
+
- sergey.kuchmistov@gmail.com
|
|
120
|
+
executables: []
|
|
121
|
+
extensions: []
|
|
122
|
+
extra_rdoc_files: []
|
|
123
|
+
files:
|
|
124
|
+
- ".gitignore"
|
|
125
|
+
- Gemfile
|
|
126
|
+
- Gemfile.lock
|
|
127
|
+
- README.md
|
|
128
|
+
- Rakefile
|
|
129
|
+
- bin/console
|
|
130
|
+
- bin/setup
|
|
131
|
+
- db_cache_store.gemspec
|
|
132
|
+
- lib/active_support/cache/db_item.rb
|
|
133
|
+
- lib/active_support/cache/db_store.rb
|
|
134
|
+
- lib/db_cache_store.rb
|
|
135
|
+
- lib/db_cache_store/version.rb
|
|
136
|
+
- lib/generators/db_cache_store/migration_generator.rb
|
|
137
|
+
- lib/generators/db_cache_store/templates/migration.rb
|
|
138
|
+
homepage:
|
|
139
|
+
licenses: []
|
|
140
|
+
metadata: {}
|
|
141
|
+
post_install_message:
|
|
142
|
+
rdoc_options: []
|
|
143
|
+
require_paths:
|
|
144
|
+
- lib
|
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
|
+
requirements:
|
|
147
|
+
- - ">="
|
|
148
|
+
- !ruby/object:Gem::Version
|
|
149
|
+
version: '0'
|
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
|
+
requirements:
|
|
152
|
+
- - ">="
|
|
153
|
+
- !ruby/object:Gem::Version
|
|
154
|
+
version: '0'
|
|
155
|
+
requirements: []
|
|
156
|
+
rubyforge_project:
|
|
157
|
+
rubygems_version: 2.6.11
|
|
158
|
+
signing_key:
|
|
159
|
+
specification_version: 4
|
|
160
|
+
summary: Alternative rails cache engine, that will use database server
|
|
161
|
+
test_files: []
|