Class: Attributor::String
- Inherits:
-
Object
- Object
- Attributor::String
show all
- Includes:
- Type
- Defined in:
- lib/attributor/types/string.rb
Class Method Summary
collapse
Methods included from Type
get_memoized_collection_class, set_memoized_collection_class
Class Method Details
.as_json_schema(shallow: false, example: nil, attribute_options: {}) ⇒ Object
TODO: we’re passing the attribute options for now…might need to rethink …although these are type-specific… TODO: multipleOf, minimum, maximum, exclusiveMinimum and exclusiveMaximum
33
34
35
36
37
38
39
|
# File 'lib/attributor/types/string.rb', line 33
def self.as_json_schema( shallow: false, example: nil, attribute_options: {} )
h = super
opts = ( self.respond_to?(:options) ) ? self.options.merge( attribute_options ) : attribute_options
h[:pattern] = self.human_readable_regexp(opts[:regexp]) if opts[:regexp]
h
end
|
.example(_context = nil, options: {}) ⇒ Object
19
20
21
|
# File 'lib/attributor/types/string.rb', line 19
def self.example(_context = nil, options: {})
Faker::Lorem.word
end
|
23
24
25
|
# File 'lib/attributor/types/string.rb', line 23
def self.family
'string'
end
|
.human_readable_regexp(reg) ⇒ Object
41
42
43
44
|
# File 'lib/attributor/types/string.rb', line 41
def self.human_readable_regexp( reg )
return $1 if reg.to_s =~ /\(\?[^:]+:(.+)\)/
reg
end
|
.json_schema_type ⇒ Object
27
28
29
|
# File 'lib/attributor/types/string.rb', line 27
def self.json_schema_type
:string
end
|
.load(value, context = Attributor::DEFAULT_ROOT_CONTEXT, **options) ⇒ Object
9
10
11
12
13
14
15
16
17
|
# File 'lib/attributor/types/string.rb', line 9
def self.load(value, context = Attributor::DEFAULT_ROOT_CONTEXT, **options)
if value.is_a?(Enumerable)
raise IncompatibleTypeError.new(context: context, value_type: value.class, type: self)
end
value && String(value)
rescue
super
end
|
.native_type ⇒ Object
5
6
7
|
# File 'lib/attributor/types/string.rb', line 5
def self.native_type
::String
end
|