formalist 0.5.4 → 0.6.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/formalist.gemspec +2 -3
- data/lib/formalist/element.rb +3 -10
- data/lib/formalist/element/class_interface.rb +2 -53
- data/lib/formalist/elements/attr.rb +1 -2
- data/lib/formalist/elements/compound_field.rb +0 -1
- data/lib/formalist/elements/field.rb +5 -6
- data/lib/formalist/elements/group.rb +1 -2
- data/lib/formalist/elements/many.rb +6 -7
- data/lib/formalist/elements/section.rb +1 -2
- data/lib/formalist/elements/standard/check_box.rb +1 -2
- data/lib/formalist/elements/standard/date_field.rb +0 -1
- data/lib/formalist/elements/standard/date_time_field.rb +2 -3
- data/lib/formalist/elements/standard/multi_selection_field.rb +6 -7
- data/lib/formalist/elements/standard/multi_upload_field.rb +12 -13
- data/lib/formalist/elements/standard/number_field.rb +3 -6
- data/lib/formalist/elements/standard/radio_buttons.rb +1 -2
- data/lib/formalist/elements/standard/rich_text_area.rb +4 -5
- data/lib/formalist/elements/standard/search_multi_selection_field.rb +12 -13
- data/lib/formalist/elements/standard/search_selection_field.rb +9 -10
- data/lib/formalist/elements/standard/select_box.rb +1 -2
- data/lib/formalist/elements/standard/selection_field.rb +4 -5
- data/lib/formalist/elements/standard/tags_field.rb +4 -5
- data/lib/formalist/elements/standard/text_area.rb +3 -4
- data/lib/formalist/elements/standard/text_field.rb +3 -4
- data/lib/formalist/elements/standard/upload_field.rb +10 -11
- data/lib/formalist/version.rb +1 -1
- metadata +9 -25
- data/lib/formalist/types.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 812b680bec83258e220c4ad7e003db7aacc7f333cee556cd93079c22aeebbca6
|
4
|
+
data.tar.gz: fc45315295d88673cb31220b0e2dddd299f5ec2804f6230b9ee99135fcaba1f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd154e92d8e422108e4c46005a68c3072b41dee80781499da1c3c521e82bc5aeda5471466c30ee1ed021bdab703215bd589c92b042b35936503e1dc740884575
|
7
|
+
data.tar.gz: b8d7a67e86633126f6d5a0620018ea4698742e52d511be24bd9eaaffa85c1bebcdf62d0d0b7cda4cb6b4fdf68d46052d9bd2d29dfd0bdda1531221126128d30e
|
data/CHANGELOG.md
CHANGED
data/formalist.gemspec
CHANGED
@@ -22,11 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency "dry-configurable", "~> 0.7"
|
23
23
|
spec.add_runtime_dependency "dry-core", "~> 0.4"
|
24
24
|
spec.add_runtime_dependency "dry-container", "~> 0.6"
|
25
|
-
spec.add_runtime_dependency "dry-types", "~> 0.13"
|
26
25
|
spec.add_runtime_dependency "inflecto"
|
27
26
|
|
28
|
-
spec.add_development_dependency "bundler"
|
29
|
-
spec.add_development_dependency "rake", "~> 10.4
|
27
|
+
spec.add_development_dependency "bundler"
|
28
|
+
spec.add_development_dependency "rake", "~> 10.4"
|
30
29
|
spec.add_development_dependency "rspec", "~> 3.3.0"
|
31
30
|
spec.add_development_dependency "simplecov", "~> 0.13.0"
|
32
31
|
spec.add_development_dependency "yard"
|
data/lib/formalist/element.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "formalist/element/attributes"
|
2
2
|
require "formalist/element/class_interface"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Element
|
@@ -21,19 +20,13 @@ module Formalist
|
|
21
20
|
|
22
21
|
# @api private
|
23
22
|
def initialize(name: nil, attributes: {}, children: [], input: nil, errors: [])
|
24
|
-
@name =
|
23
|
+
@name = name&.to_sym
|
25
24
|
|
26
|
-
|
27
|
-
all_attributes = self.class.attributes_schema.each_with_object({}) { |(name, defn), memo|
|
25
|
+
@attributes = self.class.attributes_schema.each_with_object({}) { |(name, defn), hsh|
|
28
26
|
value = attributes.fetch(name) { defn[:default] }
|
29
|
-
|
27
|
+
hsh[name] = value unless value.nil?
|
30
28
|
}
|
31
29
|
|
32
|
-
# Then run them through the schema
|
33
|
-
@attributes = Types::Hash.weak(
|
34
|
-
self.class.attributes_schema.map { |name, defn| [name, defn[:type]] }.to_h
|
35
|
-
)[all_attributes]
|
36
|
-
|
37
30
|
@children = children
|
38
31
|
@input = input
|
39
32
|
@errors = errors
|
@@ -4,63 +4,14 @@ module Formalist
|
|
4
4
|
class Element
|
5
5
|
# Class-level API for form elements.
|
6
6
|
module ClassInterface
|
7
|
-
# Returns the element's type, which is a symbolized, underscored
|
8
|
-
# representation of the element's class name.
|
9
|
-
#
|
10
|
-
# This is important for form rendering when using custom form elements,
|
11
|
-
# since the type in this case will be based on the name of form element's
|
12
|
-
# sublass.
|
13
|
-
#
|
14
|
-
# @example Basic element Formalist::Elements::Field.type # => :field
|
15
|
-
#
|
16
|
-
# @example Custom element class MyField < Formalist::Elements::Field end
|
17
|
-
#
|
18
|
-
# MyField.type # => :my_field
|
19
|
-
#
|
20
|
-
# @!scope class @return [Symbol] the element type.
|
21
7
|
def type
|
22
8
|
Inflecto.underscore(Inflecto.demodulize(name)).to_sym
|
23
9
|
end
|
24
10
|
|
25
|
-
|
26
|
-
|
27
|
-
# Form element attributes can be set when the element is defined, and
|
28
|
-
# can be further populated by the form element object itself, when the
|
29
|
-
# form is being built, using both the user input and any dependencies
|
30
|
-
# passed to the element via the form.
|
31
|
-
#
|
32
|
-
# Attributes are the way to ensure the form renderer has all the
|
33
|
-
# information it needs to render the element appropriately. Attributes
|
34
|
-
# are type-checked in order to ensure they're being passed appropriate
|
35
|
-
# values. Attributes can hold any type of value as long as it can be
|
36
|
-
# reduced to an abstract syntax tree representation by
|
37
|
-
# `Form::Element::Attributes#to_ast`.
|
38
|
-
#
|
39
|
-
# @see Formalist::Element::Attributes#to_ast
|
40
|
-
#
|
41
|
-
# @!scope class
|
42
|
-
# @param name [Symbol] attribute name
|
43
|
-
# @param type [Dry::Data::Type, #call] value type coercer/checker
|
44
|
-
# @param default default value (applied when the attribute is not explicitly populated)
|
45
|
-
# @return void
|
46
|
-
def attribute(name, type, default: nil)
|
47
|
-
attributes(name => {type: type, default: default})
|
11
|
+
def attribute(name, default: nil)
|
12
|
+
attributes(name => {default: default})
|
48
13
|
end
|
49
14
|
|
50
|
-
# Returns the attributes schema for the form element.
|
51
|
-
#
|
52
|
-
# Each item in the schema includes a type definition and a default value
|
53
|
-
# (`nil` if none specified).
|
54
|
-
#
|
55
|
-
# @example
|
56
|
-
# Formalist::Elements::Field.attributes_schema
|
57
|
-
# # => {
|
58
|
-
# :name => {:type => #<Dry::Data::Type>, :default => "Default name"},
|
59
|
-
# :email => {:type => #<Dry::Data::Type>, :default => "default email"}
|
60
|
-
# }
|
61
|
-
#
|
62
|
-
# @!scope class
|
63
|
-
# @return [Hash<Symbol, Hash>] the attributes schema
|
64
15
|
def attributes_schema
|
65
16
|
super_schema = superclass.respond_to?(:attributes_schema) ? superclass.attributes_schema : {}
|
66
17
|
super_schema.merge(@attributes_schema || {})
|
@@ -68,8 +19,6 @@ module Formalist
|
|
68
19
|
|
69
20
|
private
|
70
21
|
|
71
|
-
# @!scope class
|
72
|
-
# @api private
|
73
22
|
def attributes(new_schema)
|
74
23
|
prev_schema = @attributes_schema || {}
|
75
24
|
@attributes_schema = prev_schema.merge(new_schema)
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require "formalist/element"
|
2
|
-
require "formalist/types"
|
3
2
|
|
4
3
|
module Formalist
|
5
4
|
class Elements
|
6
5
|
class Field < Element
|
7
|
-
attribute :label
|
8
|
-
attribute :hint
|
9
|
-
attribute :placeholder
|
10
|
-
attribute :inline
|
11
|
-
attribute :validation
|
6
|
+
attribute :label
|
7
|
+
attribute :hint
|
8
|
+
attribute :placeholder
|
9
|
+
attribute :inline
|
10
|
+
attribute :validation
|
12
11
|
|
13
12
|
def fill(input: {}, errors: {})
|
14
13
|
super(
|
@@ -1,15 +1,14 @@
|
|
1
1
|
require "formalist/element"
|
2
|
-
require "formalist/types"
|
3
2
|
|
4
3
|
module Formalist
|
5
4
|
class Elements
|
6
5
|
class Many < Element
|
7
|
-
attribute :action_label
|
8
|
-
attribute :sortable
|
9
|
-
attribute :label
|
10
|
-
attribute :max_height
|
11
|
-
attribute :placeholder
|
12
|
-
attribute :validation
|
6
|
+
attribute :action_label
|
7
|
+
attribute :sortable
|
8
|
+
attribute :label
|
9
|
+
attribute :max_height
|
10
|
+
attribute :placeholder
|
11
|
+
attribute :validation
|
13
12
|
|
14
13
|
# @api private
|
15
14
|
attr_reader :child_template
|
@@ -1,12 +1,11 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class DateTimeField < Field
|
8
|
-
attribute :time_format
|
9
|
-
attribute :human_time_format
|
7
|
+
attribute :time_format
|
8
|
+
attribute :human_time_format
|
10
9
|
end
|
11
10
|
|
12
11
|
register :date_time_field, DateTimeField
|
@@ -1,16 +1,15 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class MultiSelectionField < Field
|
8
|
-
attribute :sortable
|
9
|
-
attribute :max_height
|
10
|
-
attribute :options
|
11
|
-
attribute :render_option_as
|
12
|
-
attribute :render_selection_as
|
13
|
-
attribute :selector_label
|
7
|
+
attribute :sortable
|
8
|
+
attribute :max_height
|
9
|
+
attribute :options
|
10
|
+
attribute :render_option_as
|
11
|
+
attribute :render_selection_as
|
12
|
+
attribute :selector_label
|
14
13
|
end
|
15
14
|
|
16
15
|
register :multi_selection_field, MultiSelectionField
|
@@ -1,22 +1,21 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class MultiUploadField < Field
|
8
|
-
attribute :initial_attributes_url
|
9
|
-
attribute :sortable
|
10
|
-
attribute :max_file_size_message
|
11
|
-
attribute :max_file_size
|
12
|
-
attribute :max_height
|
13
|
-
attribute :permitted_file_type_message
|
14
|
-
attribute :permitted_file_type_regex
|
15
|
-
attribute :presign_options
|
16
|
-
attribute :presign_url
|
17
|
-
attribute :render_uploaded_as
|
18
|
-
attribute :upload_action_label
|
19
|
-
attribute :upload_prompt
|
7
|
+
attribute :initial_attributes_url
|
8
|
+
attribute :sortable
|
9
|
+
attribute :max_file_size_message
|
10
|
+
attribute :max_file_size
|
11
|
+
attribute :max_height
|
12
|
+
attribute :permitted_file_type_message
|
13
|
+
attribute :permitted_file_type_regex
|
14
|
+
attribute :presign_options
|
15
|
+
attribute :presign_url
|
16
|
+
attribute :render_uploaded_as
|
17
|
+
attribute :upload_action_label
|
18
|
+
attribute :upload_prompt
|
20
19
|
end
|
21
20
|
|
22
21
|
register :multi_upload_field, MultiUploadField
|
@@ -1,15 +1,12 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class NumberField < Field
|
8
|
-
|
9
|
-
|
10
|
-
attribute :
|
11
|
-
attribute :min, Number
|
12
|
-
attribute :max, Number
|
7
|
+
attribute :step
|
8
|
+
attribute :min
|
9
|
+
attribute :max
|
13
10
|
end
|
14
11
|
|
15
12
|
register :number_field, NumberField
|
@@ -1,11 +1,10 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class RadioButtons < Field
|
8
|
-
attribute :options
|
7
|
+
attribute :options
|
9
8
|
end
|
10
9
|
|
11
10
|
register :radio_buttons, RadioButtons
|
@@ -1,15 +1,14 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
require "formalist/rich_text/embedded_form_compiler"
|
5
4
|
|
6
5
|
module Formalist
|
7
6
|
class Elements
|
8
7
|
class RichTextArea < Field
|
9
|
-
attribute :box_size,
|
10
|
-
attribute :inline_formatters
|
11
|
-
attribute :block_formatters
|
12
|
-
attribute :embeddable_forms
|
8
|
+
attribute :box_size, default: "normal"
|
9
|
+
attribute :inline_formatters
|
10
|
+
attribute :block_formatters
|
11
|
+
attribute :embeddable_forms
|
13
12
|
|
14
13
|
# FIXME: it would be tidier to have a reader method for each attribute
|
15
14
|
def attributes
|
@@ -1,22 +1,21 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class SearchMultiSelectionField < Field
|
8
|
-
attribute :clear_query_on_selection
|
9
|
-
attribute :sortable
|
10
|
-
attribute :max_height
|
11
|
-
attribute :render_option_as
|
12
|
-
attribute :render_option_control_as
|
13
|
-
attribute :render_selection_as
|
14
|
-
attribute :search_params
|
15
|
-
attribute :search_per_page
|
16
|
-
attribute :search_threshold
|
17
|
-
attribute :search_url
|
18
|
-
attribute :selections
|
19
|
-
attribute :selector_label
|
7
|
+
attribute :clear_query_on_selection
|
8
|
+
attribute :sortable
|
9
|
+
attribute :max_height
|
10
|
+
attribute :render_option_as
|
11
|
+
attribute :render_option_control_as
|
12
|
+
attribute :render_selection_as
|
13
|
+
attribute :search_params
|
14
|
+
attribute :search_per_page
|
15
|
+
attribute :search_threshold
|
16
|
+
attribute :search_url
|
17
|
+
attribute :selections
|
18
|
+
attribute :selector_label
|
20
19
|
end
|
21
20
|
|
22
21
|
register :search_multi_selection_field, SearchMultiSelectionField
|
@@ -1,19 +1,18 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class SearchSelectionField < Field
|
8
|
-
attribute :selector_label
|
9
|
-
attribute :render_option_as
|
10
|
-
attribute :render_option_control_as
|
11
|
-
attribute :render_selection_as
|
12
|
-
attribute :search_url
|
13
|
-
attribute :search_per_page
|
14
|
-
attribute :search_params
|
15
|
-
attribute :search_threshold
|
16
|
-
attribute :selection
|
7
|
+
attribute :selector_label
|
8
|
+
attribute :render_option_as
|
9
|
+
attribute :render_option_control_as
|
10
|
+
attribute :render_selection_as
|
11
|
+
attribute :search_url
|
12
|
+
attribute :search_per_page
|
13
|
+
attribute :search_params
|
14
|
+
attribute :search_threshold
|
15
|
+
attribute :selection
|
17
16
|
end
|
18
17
|
|
19
18
|
register :search_selection_field, SearchSelectionField
|
@@ -1,11 +1,10 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class SelectBox < Field
|
8
|
-
attribute :options
|
7
|
+
attribute :options
|
9
8
|
end
|
10
9
|
|
11
10
|
register :select_box, SelectBox
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class SelectionField < Field
|
8
|
-
attribute :options
|
9
|
-
attribute :selector_label
|
10
|
-
attribute :render_option_as
|
11
|
-
attribute :render_selection_as
|
7
|
+
attribute :options
|
8
|
+
attribute :selector_label
|
9
|
+
attribute :render_option_as
|
10
|
+
attribute :render_selection_as
|
12
11
|
end
|
13
12
|
|
14
13
|
register :selection_field, SelectionField
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class TagsField < Field
|
8
|
-
attribute :search_url
|
9
|
-
attribute :search_per_page
|
10
|
-
attribute :search_params
|
11
|
-
attribute :search_threshold
|
7
|
+
attribute :search_url
|
8
|
+
attribute :search_per_page
|
9
|
+
attribute :search_params
|
10
|
+
attribute :search_threshold
|
12
11
|
end
|
13
12
|
|
14
13
|
register :tags_field, TagsField
|
@@ -1,13 +1,12 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class TextArea < Field
|
8
|
-
attribute :text_size,
|
9
|
-
attribute :box_size,
|
10
|
-
attribute :code
|
7
|
+
attribute :text_size, default: "normal"
|
8
|
+
attribute :box_size, default: "normal"
|
9
|
+
attribute :code
|
11
10
|
end
|
12
11
|
|
13
12
|
register :text_area, TextArea
|
@@ -1,13 +1,12 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class TextField < Field
|
8
|
-
attribute :password
|
9
|
-
attribute :code
|
10
|
-
attribute :disabled
|
7
|
+
attribute :password
|
8
|
+
attribute :code
|
9
|
+
attribute :disabled
|
11
10
|
end
|
12
11
|
|
13
12
|
register :text_field, TextField
|
@@ -1,20 +1,19 @@
|
|
1
1
|
require "formalist/element"
|
2
2
|
require "formalist/elements"
|
3
|
-
require "formalist/types"
|
4
3
|
|
5
4
|
module Formalist
|
6
5
|
class Elements
|
7
6
|
class UploadField < Field
|
8
|
-
attribute :initial_attributes_url
|
9
|
-
attribute :presign_url
|
10
|
-
attribute :presign_options
|
11
|
-
attribute :render_uploaded_as
|
12
|
-
attribute :upload_prompt
|
13
|
-
attribute :upload_action_label
|
14
|
-
attribute :max_file_size
|
15
|
-
attribute :max_file_size_message
|
16
|
-
attribute :permitted_file_type_message
|
17
|
-
attribute :permitted_file_type_regex
|
7
|
+
attribute :initial_attributes_url
|
8
|
+
attribute :presign_url
|
9
|
+
attribute :presign_options
|
10
|
+
attribute :render_uploaded_as
|
11
|
+
attribute :upload_prompt
|
12
|
+
attribute :upload_action_label
|
13
|
+
attribute :max_file_size
|
14
|
+
attribute :max_file_size_message
|
15
|
+
attribute :permitted_file_type_message
|
16
|
+
attribute :permitted_file_type_regex
|
18
17
|
end
|
19
18
|
|
20
19
|
register :upload_field, UploadField
|
data/lib/formalist/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formalist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Riley
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-configurable
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.6'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: dry-types
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.13'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.13'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: inflecto
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,30 +70,30 @@ dependencies:
|
|
84
70
|
name: bundler
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - ">="
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
75
|
+
version: '0'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
82
|
+
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rake
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: 10.4
|
89
|
+
version: '10.4'
|
104
90
|
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: 10.4
|
96
|
+
version: '10.4'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: rspec
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,7 +194,6 @@ files:
|
|
208
194
|
- lib/formalist/rich_text/rendering/html_compiler.rb
|
209
195
|
- lib/formalist/rich_text/rendering/html_renderer.rb
|
210
196
|
- lib/formalist/rich_text/validity_check.rb
|
211
|
-
- lib/formalist/types.rb
|
212
197
|
- lib/formalist/version.rb
|
213
198
|
homepage: https://github.com/icelab/formalist
|
214
199
|
licenses:
|
@@ -229,8 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
214
|
- !ruby/object:Gem::Version
|
230
215
|
version: '0'
|
231
216
|
requirements: []
|
232
|
-
|
233
|
-
rubygems_version: 2.7.6
|
217
|
+
rubygems_version: 3.0.3
|
234
218
|
signing_key:
|
235
219
|
specification_version: 4
|
236
220
|
summary: Flexible form builder
|
data/lib/formalist/types.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require "dry/types"
|
3
|
-
|
4
|
-
# TODO: Find a way to avoid registering this globally
|
5
|
-
Dry::Logic::Predicates.predicate :respond_to? do |method_name, value|
|
6
|
-
value.respond_to?(method_name)
|
7
|
-
end
|
8
|
-
|
9
|
-
module Formalist
|
10
|
-
module Types
|
11
|
-
include Dry::Types.module
|
12
|
-
|
13
|
-
ElementName = Types::Strict::Symbol.constrained(min_size: 1).optional
|
14
|
-
OptionsList = Types::Array.of(Formalist::Types::Array.of(Formalist::Types::Strict::String).constrained(size: 2))
|
15
|
-
|
16
|
-
# The SelectionField and MultiSelectionField require a _somewhat_ specific
|
17
|
-
# data structure:
|
18
|
-
#
|
19
|
-
# {id: 123, label: 'foo'}
|
20
|
-
#
|
21
|
-
# It’s expected that `id` is the relational representation of the object.
|
22
|
-
# And label could/should be optional if the form defines a custom
|
23
|
-
# `render_as` attribute
|
24
|
-
SelectionsList = Formalist::Types::Strict::Array.of(Formalist::Types::Strict::Hash)
|
25
|
-
|
26
|
-
Validation = Types::Strict::Hash
|
27
|
-
|
28
|
-
Dependency = Types::Object
|
29
|
-
Function = Dependency.constrained(respond_to: :call)
|
30
|
-
end
|
31
|
-
end
|