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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ce685b7a4f43be47881c868dfbdc1c5ba78369af
4
- data.tar.gz: d40c5ea3bd418caec5d7ff4538cfca30a2b25421
2
+ SHA256:
3
+ metadata.gz: 1c8c592e0594dbe3c9f8c329fc5ef0dc6efc1c18c2c7d11f5484c5489bcaf46c
4
+ data.tar.gz: 6ca10ae6855746edc688d987261df8fd76ff91fe6dd7f5a113a90e3e65e97436
5
5
  SHA512:
6
- metadata.gz: 3820442b0e7aabfbf9ff41bfe7e831ee157941accb944f324c64520a1e271a6c2a8ff8ce0c21292ab25c789daf751be4b94af4707d36c9551df91c6197d1dd02
7
- data.tar.gz: 443d9e13a96c503de77cd034f0367d68aec5cee9948749c2a5c7e5b8244c3bed2573fa3ca42fba585ccb28c99da293ec671521d0b673c8cd7a9cd57d6403b34d
6
+ metadata.gz: 336b5c67efe98a838d629dfe8c4edf39d267425523802d704b58816c4f0ad6ad335b1b393fb4f5622e8da9367c0bfd2a10b6800dee0f60f15cdb7fec17facb0b
7
+ data.tar.gz: c9a529a07667a1d90bbd155b32d372eb1ecbd7a928d39a95e1f5b2a3962e91eab2999edc656f7144a90583ddf0d32b1040cbaa352375da0b0a2082d3ad203fd2
@@ -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.0.0.0
12
- - jruby-9.1.5.0
13
+ - jruby-9.1.0.0
14
+ - jruby-9.2.0.0
15
+ - jruby-head
@@ -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(NO_FILE_PATH_CONFIGURED) unless config.file_path
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
@@ -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)
@@ -1,3 +1,3 @@
1
1
  module QuickStore
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -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 = '>= 1.9.3'
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', '~> 1.7'
23
- spec.add_development_dependency 'rake', '~> 10.0'
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.2.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: 2016-10-09 00:00:00.000000000 Z
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: '1.7'
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: '1.7'
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: '10.0'
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: '10.0'
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: 1.9.3
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
- rubyforge_project:
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.