randrizer 0.0.1 → 0.0.2
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 +4 -4
- data/.circleci/config.yml +63 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +15 -6
- data/.yardopts +1 -0
- data/lib/randrizer.rb +0 -1
- data/lib/randrizer/cli.rb +1 -0
- data/lib/randrizer/drivers/json_schema/driver.rb +1 -1
- data/lib/randrizer/types/base_type.rb +27 -0
- data/lib/randrizer/types/bool.rb +3 -4
- data/lib/randrizer/types/const.rb +3 -4
- data/lib/randrizer/types/dict.rb +2 -4
- data/lib/randrizer/types/float.rb +2 -4
- data/lib/randrizer/types/int.rb +7 -4
- data/lib/randrizer/types/list.rb +2 -4
- data/lib/randrizer/types/nullable.rb +2 -4
- data/lib/randrizer/types/one_of.rb +2 -4
- data/lib/randrizer/types/optional.rb +2 -4
- data/lib/randrizer/types/skip.rb +3 -1
- data/lib/randrizer/types/string.rb +2 -4
- data/lib/randrizer/types/string_sequence.rb +2 -4
- data/lib/randrizer/types/type_validation_error.rb +7 -0
- data/lib/randrizer/version.rb +1 -1
- data/randrizer.gemspec +8 -4
- metadata +56 -11
- data/lib/randrizer/types/type_builder.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b25e9cd95d331a6443f7b4773a8a0d762b5a874f9924212fb4a42bfd9416b1d6
|
4
|
+
data.tar.gz: d3ba8f10a4e122ff123576715ede100d88f521b7834468f9e2a444fad6f296f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6260ab5766c17cd475ec5946faa1d5038fa4ea900afa1707226875bd09ae2ab91f053a63b76d3e9c7a8e084b389236af22bb929689db01db086ef211ef440ce6
|
7
|
+
data.tar.gz: 5f9481bd7bc97be037ded292ec46ddd32b7c02cdb4ddaaee41ab0a61fb39a0e354be17fbd90d2b0a3cec70282a1e57047c29e09ccac02db9aea7041834795276
|
@@ -0,0 +1,63 @@
|
|
1
|
+
version: 2
|
2
|
+
|
3
|
+
references:
|
4
|
+
install_bundle: &install_bundle
|
5
|
+
run:
|
6
|
+
name: Bundle
|
7
|
+
command: gem install bundler -v 2.1.4 && bundle install --path vendor/bundle --jobs=4 --retry=3
|
8
|
+
|
9
|
+
restore_bundle_cache: &restore_bundle_cache
|
10
|
+
restore_cache:
|
11
|
+
key: randrizer-{{ checksum "randrizer.gemspec" }}
|
12
|
+
|
13
|
+
save_bundle_cache: &save_bundle_cache
|
14
|
+
save_cache:
|
15
|
+
key: randrizer-{{ checksum "randrizer.gemspec" }}
|
16
|
+
paths:
|
17
|
+
- vendor/bundle
|
18
|
+
|
19
|
+
steps: &steps
|
20
|
+
- checkout
|
21
|
+
- *install_bundle
|
22
|
+
- *restore_bundle_cache
|
23
|
+
- *save_bundle_cache
|
24
|
+
- run:
|
25
|
+
name: RSpec
|
26
|
+
command: bundle exec rspec --format progress --format RspecJunitFormatter -o tmp/rspec-reports/unit.xml $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
27
|
+
|
28
|
+
jobs:
|
29
|
+
code_quality:
|
30
|
+
docker:
|
31
|
+
- image: circleci/ruby:2.7.0
|
32
|
+
steps:
|
33
|
+
- checkout
|
34
|
+
- *restore_bundle_cache
|
35
|
+
- *install_bundle
|
36
|
+
- *save_bundle_cache
|
37
|
+
- run:
|
38
|
+
name: Rubocop
|
39
|
+
command: bundle exec rubocop
|
40
|
+
|
41
|
+
tests-r2.5:
|
42
|
+
docker:
|
43
|
+
- image: circleci/ruby:2.5.7
|
44
|
+
steps: *steps
|
45
|
+
|
46
|
+
tests-r2.6:
|
47
|
+
docker:
|
48
|
+
- image: circleci/ruby:2.6.5
|
49
|
+
steps: *steps
|
50
|
+
|
51
|
+
tests-r2.7:
|
52
|
+
docker:
|
53
|
+
- image: circleci/ruby:2.7.0
|
54
|
+
steps: *steps
|
55
|
+
|
56
|
+
workflows:
|
57
|
+
version: 2
|
58
|
+
tests:
|
59
|
+
jobs:
|
60
|
+
- code_quality
|
61
|
+
- tests-r2.5
|
62
|
+
- tests-r2.6
|
63
|
+
- tests-r2.7
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require: rubocop-rspec
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.7.0
|
5
5
|
DisplayCopNames: true
|
6
6
|
DisplayStyleGuide: true
|
7
7
|
ExtraDetails: true
|
@@ -10,7 +10,7 @@ AllCops:
|
|
10
10
|
- vendor/**/*
|
11
11
|
- bin/**/*
|
12
12
|
|
13
|
-
Lint/
|
13
|
+
Lint/RedundantCopDisableDirective:
|
14
14
|
Severity: error
|
15
15
|
|
16
16
|
Lint/AmbiguousBlockAssociation:
|
@@ -32,7 +32,7 @@ Metrics/ClassLength:
|
|
32
32
|
Metrics/MethodLength:
|
33
33
|
Max: 58
|
34
34
|
|
35
|
-
|
35
|
+
Layout/LineLength:
|
36
36
|
Max: 90
|
37
37
|
Exclude:
|
38
38
|
- 'Gemfile'
|
@@ -59,15 +59,24 @@ Style/StringLiterals:
|
|
59
59
|
Exclude:
|
60
60
|
- Gemfile
|
61
61
|
|
62
|
-
Layout/
|
62
|
+
Layout/FirstArrayElementIndentation:
|
63
63
|
EnforcedStyle: consistent
|
64
64
|
|
65
|
-
Layout/
|
65
|
+
Layout/FirstHashElementIndentation:
|
66
66
|
EnforcedStyle: consistent
|
67
67
|
|
68
68
|
Style/YodaCondition:
|
69
69
|
Enabled: true
|
70
70
|
|
71
|
+
Style/HashEachMethods:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
Style/HashTransformKeys:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
Style/HashTransformValues:
|
78
|
+
Enabled: true
|
79
|
+
|
71
80
|
RSpec/ExampleLength:
|
72
81
|
Enabled: false
|
73
82
|
|
@@ -96,7 +105,7 @@ RSpec/ContextWording:
|
|
96
105
|
- for
|
97
106
|
- and
|
98
107
|
|
99
|
-
Naming/
|
108
|
+
Naming/MethodParameterName:
|
100
109
|
AllowedNames:
|
101
110
|
# These are the default allowed names, set by Rubocop
|
102
111
|
- io
|
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--markup=markdown
|
data/lib/randrizer.rb
CHANGED
data/lib/randrizer/cli.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ruby2_keywords"
|
4
|
+
require "randrizer/types/type_validation_error"
|
5
|
+
|
6
|
+
module Randrizer
|
7
|
+
module Types
|
8
|
+
class BaseType
|
9
|
+
def initialize(*args, **kwargs, &block); end
|
10
|
+
|
11
|
+
# @raise [TypeValidationError] if the arguments given to the type are not valid
|
12
|
+
def validate!
|
13
|
+
raise NotImplementedError
|
14
|
+
end
|
15
|
+
|
16
|
+
class << self
|
17
|
+
# Required for compatibility with Ruby <= 2.6. See
|
18
|
+
# https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
|
19
|
+
ruby2_keywords def build(*args, &block)
|
20
|
+
new(*args, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
alias [] build
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/randrizer/types/bool.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# A boolean type. Can be either `true` or `false`.
|
8
|
+
class Bool < BaseType
|
10
9
|
PRESENCE_MAYBE = 0.5
|
11
10
|
|
12
11
|
def initialize(true_prob: PRESENCE_MAYBE)
|
@@ -1,12 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# A constant type. Any type passed as argument will be returned as given.
|
8
|
+
class Const < BaseType
|
10
9
|
def initialize(params)
|
11
10
|
@params = params
|
12
11
|
end
|
data/lib/randrizer/types/dict.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "randrizer/types/skip"
|
4
|
-
require "randrizer/types/
|
4
|
+
require "randrizer/types/base_type"
|
5
5
|
|
6
6
|
module Randrizer
|
7
7
|
module Types
|
8
|
-
class Dict
|
9
|
-
include TypeBuilder
|
10
|
-
|
8
|
+
class Dict < BaseType
|
11
9
|
def initialize(keys_def)
|
12
10
|
@keys_def = keys_def
|
13
11
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
class Float
|
8
|
-
include TypeBuilder
|
9
|
-
|
7
|
+
class Float < BaseType
|
10
8
|
DEFAULT_MIN = 0.0
|
11
9
|
DEFAULT_MAX = 9_999_999_999.0
|
12
10
|
|
data/lib/randrizer/types/int.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# A primitive integer type. The evaluation will generate a random number between
|
8
|
+
# the given `min` and `max`.
|
9
|
+
class Int < BaseType
|
10
|
+
# Default minimum generable number
|
10
11
|
DEFAULT_MIN = 0
|
12
|
+
|
13
|
+
# Default maximum generable number
|
11
14
|
DEFAULT_MAX = 9_999_999_999
|
12
15
|
|
13
16
|
def initialize(min: DEFAULT_MIN, max: DEFAULT_MAX)
|
data/lib/randrizer/types/list.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "randrizer/types/skip"
|
4
|
-
require "randrizer/types/
|
4
|
+
require "randrizer/types/base_type"
|
5
5
|
|
6
6
|
module Randrizer
|
7
7
|
module Types
|
8
|
-
class List
|
9
|
-
include TypeBuilder
|
10
|
-
|
8
|
+
class List < BaseType
|
11
9
|
def initialize(list_def)
|
12
10
|
@list_def = list_def
|
13
11
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
class Nullable
|
8
|
-
include TypeBuilder
|
9
|
-
|
7
|
+
class Nullable < BaseType
|
10
8
|
def initialize(null_prob:, inner_type:)
|
11
9
|
@null_prob = null_prob
|
12
10
|
@inner_type = inner_type
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
class OneOf
|
8
|
-
include TypeBuilder
|
9
|
-
|
7
|
+
class OneOf < BaseType
|
10
8
|
def initialize(list_def)
|
11
9
|
@list_def = list_def
|
12
10
|
end
|
@@ -1,13 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "randrizer/types/skip"
|
4
|
-
require "randrizer/types/
|
4
|
+
require "randrizer/types/base_type"
|
5
5
|
|
6
6
|
module Randrizer
|
7
7
|
module Types
|
8
|
-
class Optional
|
9
|
-
include TypeBuilder
|
10
|
-
|
8
|
+
class Optional < BaseType
|
11
9
|
PRESENCE_MAYBE = 0.5
|
12
10
|
|
13
11
|
def initialize(inner_type:, presence_prob: PRESENCE_MAYBE)
|
data/lib/randrizer/types/skip.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
class String
|
8
|
-
include TypeBuilder
|
9
|
-
|
7
|
+
class String < BaseType
|
10
8
|
CHARS_NUMBERS = "0123456789"
|
11
9
|
CHARS_SYMBOLS = " !\"£$%^&()=-*/[]#\\~"
|
12
10
|
CHARS_LOWERCASE_LETTERS = "abcdfeghijklmnopqrstuvwxyz"
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "randrizer/types/
|
3
|
+
require "randrizer/types/base_type"
|
4
4
|
|
5
5
|
module Randrizer
|
6
6
|
module Types
|
7
|
-
class StringSequence
|
8
|
-
include TypeBuilder
|
9
|
-
|
7
|
+
class StringSequence < BaseType
|
10
8
|
ALLOWED_TYPES = [
|
11
9
|
Types::Int,
|
12
10
|
Types::String,
|
data/lib/randrizer/version.rb
CHANGED
data/randrizer.gemspec
CHANGED
@@ -24,10 +24,14 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
|
27
|
+
spec.add_dependency "ruby2_keywords", "~> 0.0.2"
|
28
|
+
|
27
29
|
spec.add_development_dependency "bundler", "~> 2.0"
|
28
|
-
spec.add_development_dependency "pry-byebug", "~> 3.
|
29
|
-
spec.add_development_dependency "rake", "~>
|
30
|
+
spec.add_development_dependency "pry-byebug", "~> 3.8.0"
|
31
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
32
|
+
spec.add_development_dependency "redcarpet", "~> 3.5.0"
|
30
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
|
-
spec.add_development_dependency "
|
32
|
-
spec.add_development_dependency "rubocop
|
34
|
+
spec.add_development_dependency "rspec_junit_formatter", "0.4.1"
|
35
|
+
spec.add_development_dependency "rubocop", "~> 0.80.0"
|
36
|
+
spec.add_development_dependency "rubocop-rspec", "~> 1.38.1"
|
33
37
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: randrizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Giuliani
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02
|
11
|
+
date: 2020-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby2_keywords
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.2
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -30,28 +44,42 @@ dependencies:
|
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
47
|
+
version: 3.8.0
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.
|
54
|
+
version: 3.8.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '13.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redcarpet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.5.0
|
48
76
|
type: :development
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
80
|
- - "~>"
|
53
81
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
82
|
+
version: 3.5.0
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rspec
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,34 +94,48 @@ dependencies:
|
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '3.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec_junit_formatter
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.4.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.4.1
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: rubocop
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
115
|
- - "~>"
|
74
116
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
117
|
+
version: 0.80.0
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
122
|
- - "~>"
|
81
123
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
124
|
+
version: 0.80.0
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
126
|
name: rubocop-rspec
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
86
128
|
requirements:
|
87
129
|
- - "~>"
|
88
130
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.
|
131
|
+
version: 1.38.1
|
90
132
|
type: :development
|
91
133
|
prerelease: false
|
92
134
|
version_requirements: !ruby/object:Gem::Requirement
|
93
135
|
requirements:
|
94
136
|
- - "~>"
|
95
137
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
138
|
+
version: 1.38.1
|
97
139
|
description: Random data generator with type composition
|
98
140
|
email:
|
99
141
|
- giuliani.v@gmail.com
|
@@ -102,9 +144,11 @@ executables:
|
|
102
144
|
extensions: []
|
103
145
|
extra_rdoc_files: []
|
104
146
|
files:
|
147
|
+
- ".circleci/config.yml"
|
105
148
|
- ".gitignore"
|
106
149
|
- ".rubocop.yml"
|
107
150
|
- ".ruby-version"
|
151
|
+
- ".yardopts"
|
108
152
|
- Gemfile
|
109
153
|
- LICENCE.txt
|
110
154
|
- README.md
|
@@ -116,6 +160,7 @@ files:
|
|
116
160
|
- lib/randrizer/drivers/json_schema/typegen.rb
|
117
161
|
- lib/randrizer/generator.rb
|
118
162
|
- lib/randrizer/types.rb
|
163
|
+
- lib/randrizer/types/base_type.rb
|
119
164
|
- lib/randrizer/types/bool.rb
|
120
165
|
- lib/randrizer/types/const.rb
|
121
166
|
- lib/randrizer/types/dict.rb
|
@@ -128,7 +173,7 @@ files:
|
|
128
173
|
- lib/randrizer/types/skip.rb
|
129
174
|
- lib/randrizer/types/string.rb
|
130
175
|
- lib/randrizer/types/string_sequence.rb
|
131
|
-
- lib/randrizer/types/
|
176
|
+
- lib/randrizer/types/type_validation_error.rb
|
132
177
|
- lib/randrizer/version.rb
|
133
178
|
- randrizer.gemspec
|
134
179
|
homepage: https://github.com/ivgiuliani/randrizer
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Randrizer
|
4
|
-
module Types
|
5
|
-
module TypeBuilder
|
6
|
-
class ValidationError < StandardError; end
|
7
|
-
|
8
|
-
def self.included(base)
|
9
|
-
base.extend(ClassMethods)
|
10
|
-
end
|
11
|
-
|
12
|
-
def validate!
|
13
|
-
raise NotImplementedError
|
14
|
-
end
|
15
|
-
|
16
|
-
module ClassMethods
|
17
|
-
def build(*args, **params)
|
18
|
-
new(*args, **params)
|
19
|
-
end
|
20
|
-
|
21
|
-
alias [] build
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|