Module: BlockKit
- Includes:
- ActiveSupport::Configurable
- Defined in:
- lib/block_kit/validators/array_inclusion_validator.rb,
lib/block_kit.rb,
lib/block_kit/base.rb,
lib/block_kit/types.rb,
lib/block_kit/blocks.rb,
lib/block_kit/fixers.rb,
lib/block_kit/layout.rb,
lib/block_kit/version.rb,
lib/block_kit/concerns.rb,
lib/block_kit/elements.rb,
lib/block_kit/surfaces.rb,
lib/block_kit/typed_set.rb,
lib/block_kit/types/set.rb,
lib/block_kit/types/text.rb,
lib/block_kit/validators.rb,
lib/block_kit/composition.rb,
lib/block_kit/fixers/base.rb,
lib/block_kit/layout/base.rb,
lib/block_kit/layout/file.rb,
lib/block_kit/typed_array.rb,
lib/block_kit/types/array.rb,
lib/block_kit/layout/image.rb,
lib/block_kit/layout/input.rb,
lib/block_kit/layout/video.rb,
lib/block_kit/types/blocks.rb,
lib/block_kit/types/option.rb,
lib/block_kit/elements/base.rb,
lib/block_kit/layout/header.rb,
lib/block_kit/surfaces/base.rb,
lib/block_kit/surfaces/home.rb,
lib/block_kit/types/generic.rb,
lib/block_kit/elements/image.rb,
lib/block_kit/layout/actions.rb,
lib/block_kit/layout/context.rb,
lib/block_kit/layout/divider.rb,
lib/block_kit/layout/section.rb,
lib/block_kit/surfaces/modal.rb,
lib/block_kit/elements/button.rb,
lib/block_kit/elements/select.rb,
lib/block_kit/fixers/truncate.rb,
lib/block_kit/layout/markdown.rb,
lib/block_kit/composition/text.rb,
lib/block_kit/layout/rich_text.rb,
lib/block_kit/surfaces/message.rb,
lib/block_kit/concerns/external.rb,
lib/block_kit/elements/overflow.rb,
lib/block_kit/fixers/associated.rb,
lib/block_kit/fixers/null_value.rb,
lib/block_kit/composition/mrkdwn.rb,
lib/block_kit/composition/option.rb,
lib/block_kit/composition/trigger.rb,
lib/block_kit/elements/checkboxes.rb,
lib/block_kit/elements/file_input.rb,
lib/block_kit/composition/workflow.rb,
lib/block_kit/concerns/confirmable.rb,
lib/block_kit/concerns/has_options.rb,
lib/block_kit/elements/base_button.rb,
lib/block_kit/elements/date_picker.rb,
lib/block_kit/elements/time_picker.rb,
lib/block_kit/concerns/dispatchable.rb,
lib/block_kit/elements/multi_select.rb,
lib/block_kit/elements/number_input.rb,
lib/block_kit/elements/users_select.rb,
lib/block_kit/layout/rich_text/list.rb,
lib/block_kit/composition/plain_text.rb,
lib/block_kit/composition/slack_file.rb,
lib/block_kit/elements/radio_buttons.rb,
lib/block_kit/elements/static_select.rb,
lib/block_kit/layout/rich_text/quote.rb,
lib/block_kit/elements/url_text_input.rb,
lib/block_kit/composition/option_group.rb,
lib/block_kit/concerns/has_placeholder.rb,
lib/block_kit/elements/channels_select.rb,
lib/block_kit/elements/datetime_picker.rb,
lib/block_kit/elements/external_select.rb,
lib/block_kit/elements/rich_text_input.rb,
lib/block_kit/elements/workflow_button.rb,
lib/block_kit/layout/rich_text/section.rb,
lib/block_kit/elements/email_text_input.rb,
lib/block_kit/elements/plain_text_input.rb,
lib/block_kit/layout/rich_text/elements.rb,
lib/block_kit/concerns/focusable_on_load.rb,
lib/block_kit/concerns/has_option_groups.rb,
lib/block_kit/composition/input_parameter.rb,
lib/block_kit/composition/overflow_option.rb,
lib/block_kit/concerns/has_initial_option.rb,
lib/block_kit/elements/multi_users_select.rb,
lib/block_kit/concerns/has_initial_options.rb,
lib/block_kit/elements/multi_static_select.rb,
lib/block_kit/elements/conversations_select.rb,
lib/block_kit/layout/rich_text/preformatted.rb,
lib/block_kit/elements/multi_channels_select.rb,
lib/block_kit/elements/multi_external_select.rb,
lib/block_kit/layout/rich_text/elements/date.rb,
lib/block_kit/layout/rich_text/elements/link.rb,
lib/block_kit/layout/rich_text/elements/text.rb,
lib/block_kit/layout/rich_text/elements/user.rb,
lib/block_kit/composition/confirmation_dialog.rb,
lib/block_kit/composition/conversation_filter.rb,
lib/block_kit/concerns/conversation_selection.rb,
lib/block_kit/concerns/has_rich_text_elements.rb,
lib/block_kit/layout/rich_text/elements/color.rb,
lib/block_kit/layout/rich_text/elements/emoji.rb,
lib/block_kit/validators/associated_validator.rb,
lib/block_kit/layout/rich_text/elements/channel.rb,
lib/block_kit/composition/dispatch_action_config.rb,
lib/block_kit/elements/multi_conversations_select.rb,
lib/block_kit/layout/rich_text/elements/broadcast.rb,
lib/block_kit/layout/rich_text/elements/usergroup.rb,
lib/block_kit/concerns/plain_text_emoji_assignment.rb,
lib/block_kit/layout/rich_text/elements/text_style.rb,
lib/block_kit/layout/rich_text/elements/mention_style.rb
Overview
Source: github.com/sciencehistory/kithe/blob/master/app/validators/array_inclusion_validator.rb
Like the default Rails inclusion validator, but the built-in Rails validator won’t work on an array of things.
So if you have an array of primitive values, you can use this to validate that all elements of the array are in the inclusion list.
Or that all the elements of the array are whatever you want, by supplying a proc that returns false for bad values.
Empty arrays are always allowed, add a presence validator if you don’t want to allow them, eg ‘validates :genre, presence: true, array_inclusion: { in: whatever }`
Custom message can interpolate ‘rejected_values` value. (Should also work for i18n)
Note: There isn’t currently a great way to show primitive array validation errors on a form for an invalid edit, the validation error can only be shown as if for the entire array field, not the individual invalid edit. You might consider modelling as a compound Model with only one attribute instead of as a primitive.
Defined Under Namespace
Modules: Composition, Concerns, Elements, Fixers, Layout, Surfaces, Types, Validators Classes: Base, Blocks, TypedArray, TypedSet
Constant Summary collapse
- VERSION =
"1.0.5"
Class Method Summary collapse
- .blocks(attributes = {}, &block) ⇒ Object
- .home(attributes = {}, &block) ⇒ Object
- .message(attributes = {}, &block) ⇒ Object
- .modal(attributes = {}, &block) ⇒ Object
Class Method Details
.blocks(attributes = {}, &block) ⇒ Object
23 24 25 |
# File 'lib/block_kit.rb', line 23 def self.blocks(attributes = {}, &block) Blocks.new(attributes, &block) end |
.home(attributes = {}, &block) ⇒ Object
27 28 29 |
# File 'lib/block_kit.rb', line 27 def self.home(attributes = {}, &block) Surfaces::Home.new(attributes, &block) end |
.message(attributes = {}, &block) ⇒ Object
35 36 37 |
# File 'lib/block_kit.rb', line 35 def self.(attributes = {}, &block) Surfaces::Message.new(attributes, &block) end |
.modal(attributes = {}, &block) ⇒ Object
31 32 33 |
# File 'lib/block_kit.rb', line 31 def self.modal(attributes = {}, &block) Surfaces::Modal.new(attributes, &block) end |