quick_store 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +7 -4
- data/lib/quick_store.rb +2 -3
- data/lib/quick_store/exceptions.rb +19 -0
- data/lib/quick_store/store.rb +2 -7
- data/lib/quick_store/version.rb +1 -1
- data/quick_store.gemspec +3 -3
- data/spec/quick_store/store_spec.rb +2 -2
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1c8c592e0594dbe3c9f8c329fc5ef0dc6efc1c18c2c7d11f5484c5489bcaf46c
|
4
|
+
data.tar.gz: 6ca10ae6855746edc688d987261df8fd76ff91fe6dd7f5a113a90e3e65e97436
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 336b5c67efe98a838d629dfe8c4edf39d267425523802d704b58816c4f0ad6ad335b1b393fb4f5622e8da9367c0bfd2a10b6800dee0f60f15cdb7fec17facb0b
|
7
|
+
data.tar.gz: c9a529a07667a1d90bbd155b32d372eb1ecbd7a928d39a95e1f5b2a3962e91eab2999edc656f7144a90583ddf0d32b1040cbaa352375da0b0a2082d3ad203fd2
|
data/.travis.yml
CHANGED
@@ -2,11 +2,14 @@ language: ruby
|
|
2
2
|
cache: bundler
|
3
3
|
|
4
4
|
rvm:
|
5
|
-
- 1.9.3
|
6
|
-
- 2.0.0
|
7
5
|
- 2.2.0
|
8
6
|
- 2.3.0
|
7
|
+
- 2.4.0
|
8
|
+
- 2.5.0
|
9
|
+
- 2.6.0
|
10
|
+
- 2.7.0
|
9
11
|
- ruby-head
|
10
12
|
- jruby-19mode
|
11
|
-
- jruby-9.
|
12
|
-
- jruby-9.
|
13
|
+
- jruby-9.1.0.0
|
14
|
+
- jruby-9.2.0.0
|
15
|
+
- jruby-head
|
data/lib/quick_store.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
require 'quick_store/version'
|
2
|
+
require 'quick_store/exceptions'
|
2
3
|
require 'quick_store/configuration'
|
3
4
|
require 'quick_store/store'
|
4
5
|
|
5
6
|
# Allows configuring a YAML store and accessing the configured YAML store
|
6
7
|
# through the .store method.
|
7
8
|
module QuickStore
|
8
|
-
NO_FILE_PATH_CONFIGURED = 'Please configure a file_path for your QuickStore!'.freeze
|
9
|
-
|
10
9
|
class << self
|
11
10
|
attr_accessor :configuration
|
12
11
|
end
|
@@ -19,7 +18,7 @@ module QuickStore
|
|
19
18
|
# end
|
20
19
|
def self.configure
|
21
20
|
yield(config) if block_given?
|
22
|
-
raise
|
21
|
+
raise FilePathNotConfiguredError unless config.file_path
|
23
22
|
config
|
24
23
|
end
|
25
24
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module QuickStore
|
2
|
+
class Error < StandardError; end
|
3
|
+
|
4
|
+
class FilePathNotConfiguredError < Error
|
5
|
+
def initialize
|
6
|
+
super('Please configure a file_path for your QuickStore!')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class NotAllowedKeyError < Error
|
11
|
+
def initialize(key, forbidden_names)
|
12
|
+
super(
|
13
|
+
"There is a \"#{key.to_s.chop}\" instance method already " \
|
14
|
+
'defined. This will lead to problems while getting values ' \
|
15
|
+
"from the store. Please use another key than #{forbidden_names}."
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/quick_store/store.rb
CHANGED
@@ -51,18 +51,13 @@ module QuickStore
|
|
51
51
|
|
52
52
|
def ensure_not_singleton_method!(key)
|
53
53
|
return unless singleton_methods.include?(key.to_s.chop.to_sym)
|
54
|
-
|
55
|
-
raise "There is a \"#{key.to_s.chop}\" instance method already " \
|
56
|
-
'defined. This will lead to problems while getting values ' \
|
57
|
-
'from the store. Please use another key than ' \
|
58
|
-
"#{singleton_methods.map(&:to_s)}."
|
54
|
+
raise NotAllowedKeyError.new(key, singleton_methods.map(&:to_s))
|
59
55
|
end
|
60
56
|
end
|
61
57
|
|
62
58
|
def initialize
|
63
59
|
@file = QuickStore.config.file_path
|
64
|
-
|
65
|
-
raise(QuickStore::NO_FILE_PATH_CONFIGURED) unless @file
|
60
|
+
raise FilePathNotConfiguredError unless @file
|
66
61
|
|
67
62
|
directory = File.dirname(@file)
|
68
63
|
FileUtils.makedirs(directory) unless Dir.exist?(directory)
|
data/lib/quick_store/version.rb
CHANGED
data/quick_store.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'quick_store/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'quick_store'
|
8
8
|
spec.version = QuickStore::VERSION
|
9
|
-
spec.required_ruby_version = '>=
|
9
|
+
spec.required_ruby_version = '>= 2.2.0'
|
10
10
|
spec.authors = ['Paul Götze']
|
11
11
|
spec.email = ['paul.christoph.goetze@gmail.com']
|
12
12
|
spec.summary = 'Simple local key-value store based on YAML::Store.'
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
|
-
spec.add_development_dependency 'bundler', '
|
23
|
-
spec.add_development_dependency 'rake', '~>
|
22
|
+
spec.add_development_dependency 'bundler', '>= 1.7.13'
|
23
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
24
24
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
25
25
|
end
|
@@ -12,7 +12,7 @@ describe QuickStore::Store do
|
|
12
12
|
.to receive(:file_path)
|
13
13
|
.and_return(nil)
|
14
14
|
|
15
|
-
expect { QuickStore::Store.send(:new) }.to raise_error
|
15
|
+
expect { QuickStore::Store.send(:new) }.to raise_error QuickStore::FilePathNotConfiguredError
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'creates the store file in the given directory on access' do
|
@@ -144,6 +144,6 @@ describe QuickStore::Store do
|
|
144
144
|
end
|
145
145
|
|
146
146
|
it 'raises an error if the related getter for a setter is already defined' do
|
147
|
-
expect { QuickStore::Store.clone = 'defined' }.to raise_error
|
147
|
+
expect { QuickStore::Store.clone = 'defined' }.to raise_error QuickStore::NotAllowedKeyError
|
148
148
|
end
|
149
149
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Götze
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.7.13
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.7.13
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- Rakefile
|
67
67
|
- lib/quick_store.rb
|
68
68
|
- lib/quick_store/configuration.rb
|
69
|
+
- lib/quick_store/exceptions.rb
|
69
70
|
- lib/quick_store/store.rb
|
70
71
|
- lib/quick_store/version.rb
|
71
72
|
- quick_store.gemspec
|
@@ -86,15 +87,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
86
87
|
requirements:
|
87
88
|
- - ">="
|
88
89
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
+
version: 2.2.0
|
90
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
92
|
requirements:
|
92
93
|
- - ">="
|
93
94
|
- !ruby/object:Gem::Version
|
94
95
|
version: '0'
|
95
96
|
requirements: []
|
96
|
-
|
97
|
-
rubygems_version: 2.5.1
|
97
|
+
rubygems_version: 3.1.3
|
98
98
|
signing_key:
|
99
99
|
specification_version: 4
|
100
100
|
summary: Simple local key-value store based on YAML::Store.
|