randrizer 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|