json_schematize 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 332c8451a65d8d3ef3c738e6a06d54407e62d479f6d0f015aa348c01c8c70f03
4
- data.tar.gz: 534ae0f9dd57ee349c99fa75305370241470afb99ca0273afe98d9b206a9eb57
3
+ metadata.gz: ddc1b50176fdee42d41912116919c05fdd1c34e17c7932b4e588cb380abfd8f5
4
+ data.tar.gz: ee85dc09adc5d4505e75d04aa524d43f2aa6859ee82eddf474fbdd471613f885
5
5
  SHA512:
6
- metadata.gz: ce9ed85a4db89c977231290127487fde0d703ac527009173d28d0d10a1ced80a43d1febcb8cc3e4dff3b64bd80dc20c2817dd14fe301c478d3169342799f1187
7
- data.tar.gz: 6eca9b7c49801e97d1393157c8c49a42ffafcb26bcdc103974329c2222ce3f804a496038f1cf8041836170ac251b3e9f977727f99d4bd11edad6de47931b76de
6
+ metadata.gz: 21a5a7c6d3e194c1ba1149b3b6e37dfe6da7724ee317f8e2d3856b1b917dbcaedad510a8cce42f3c6340b3a66d5b662dc0cac11ce598916b73ef1c59a6aed739
7
+ data.tar.gz: '09d5cb8dd10a426f98b8fbbc89ab14cb76800f3c3bdb7acb0bb7d640a9a135453732d533b75703a6b639e19b937b8b32ad77c502f804840fbf3ae49b6ec06f7a'
@@ -29,6 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
+ spec.add_dependency "class_composer", "~> 1.0"
33
+
32
34
  spec.add_development_dependency "pry-byebug"
33
35
  spec.add_development_dependency "rake", "~> 12.0"
34
36
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "class_composer"
4
+ require "json_schematize/errors"
5
+
3
6
  module JsonSchematize
4
7
  class Configuration
8
+ include ClassComposer::Generator
9
+
5
10
  DEFAULT_ONE_MIN = 60 * 60
6
11
  DEFAULT_ONE_HOUR = DEFAULT_ONE_MIN * 60
7
12
  DEFAULT_ONE_DAY = DEFAULT_ONE_HOUR * 24
@@ -14,16 +19,11 @@ module JsonSchematize
14
19
  cache_update_on_change: true,
15
20
  }
16
21
 
17
- attr_accessor *DEFAULT_CACHE_OPTIONS.keys
18
-
19
- def initialize
20
- @cache_client = DEFAULT_CACHE_OPTIONS[:cache_client]
21
- @cache_key = DEFAULT_CACHE_OPTIONS[:cache_key]
22
- @cache_namespace = DEFAULT_CACHE_OPTIONS[:cache_namespace]
23
- @cache_stochastic_bust = DEFAULT_CACHE_OPTIONS[:cache_stochastic_bust]
24
- @cache_ttl = DEFAULT_CACHE_OPTIONS[:cache_ttl]
25
- @cache_update_on_change = DEFAULT_CACHE_OPTIONS[:cache_update_on_change]
26
- end
22
+ add_composer :cache_key, allowed: Proc, default: DEFAULT_CACHE_OPTIONS[:cache_key], validation_error_klass: ::JsonSchematize::ConfigError, invalid_message: -> (val) { _assign_msg_("cache_key", "->(val, cusom_key) { val.hash }", "Default proc to assign cache key") }
23
+ add_composer :cache_namespace, allowed: [String, Symbol]
24
+ add_composer :cache_stochastic_bust, allowed: [Float, Integer], default: DEFAULT_CACHE_OPTIONS[:cache_stochastic_bust]
25
+ add_composer :cache_ttl, allowed: [Float, Integer], default: DEFAULT_CACHE_OPTIONS[:cache_ttl]
26
+ add_composer :cache_update_on_change, allowed: [TrueClass, FalseClass], default: DEFAULT_CACHE_OPTIONS[:cache_update_on_change]
27
27
 
28
28
  def cache_hash
29
29
  DEFAULT_CACHE_OPTIONS.map do |key, value|
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JsonSchematize
4
+ class Error < StandardError; end
5
+ class ConfigError < Error; end
6
+ class FieldError < Error; end
7
+
8
+ class InvalidField < Error; end
9
+ class InvalidFieldByValidator < InvalidField; end
10
+ class InvalidFieldByType < InvalidField; end
11
+ class InvalidFieldByArrayOfTypes < InvalidField; end
12
+
13
+ ## Customized class errors
14
+ class UndefinedBoolean < Error; end
15
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsonSchematize
4
- VERSION = "0.7.0"
4
+ VERSION = "0.8.0"
5
5
  end
@@ -1,26 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json_schematize/version"
4
-
5
3
  require "json_schematize/base"
6
4
  require "json_schematize/boolean"
7
5
  require "json_schematize/configuration"
8
6
  require "json_schematize/empty_value"
7
+ require "json_schematize/errors"
9
8
  require "json_schematize/generator"
10
9
  require "json_schematize/version"
11
10
 
12
11
  module JsonSchematize
13
- class Error < StandardError; end
14
- class ConfigError < StandardError; end
15
- class FieldError < Error; end
16
- class InvalidField < Error; end
17
- class InvalidFieldByValidator < InvalidField; end
18
- class InvalidFieldByType < InvalidField; end
19
- class InvalidFieldByArrayOfTypes < InvalidField; end
20
-
21
- ## Customized class errors
22
- class UndefinedBoolean < Error; end
23
-
24
12
  def self.configure
25
13
  yield configuration if block_given?
26
14
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schematize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Taylor
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-07 00:00:00.000000000 Z
11
+ date: 2022-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: class_composer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: pry-byebug
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +111,7 @@ files:
97
111
  - lib/json_schematize/cache/instance_methods.rb
98
112
  - lib/json_schematize/configuration.rb
99
113
  - lib/json_schematize/empty_value.rb
114
+ - lib/json_schematize/errors.rb
100
115
  - lib/json_schematize/field.rb
101
116
  - lib/json_schematize/field_transformations.rb
102
117
  - lib/json_schematize/field_validators.rb