Sha256: 07eaa78d3a7e55317429ddeb0bf6e18023a09f9979c391f531621631cc319a2d
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
module Plutonium module Core module Definers module InputDefiner extend ActiveSupport::Concern include Plutonium::Core::Autodiscovery::InputDiscoverer def defined_inputs_for(names) (names - input_definitions.keys).each do |name| define_input(name, input: autodiscover_input(name)) end input_definitions.slice(*names) end private def input_definitions = @input_definitions ||= {} def define_input(name, input: nil, type: nil, **options) input_definitions[name] = if input.present? input elsif type.present? Plutonium::Core::Fields::Inputs.build(name, type:, **options) elsif options.present? Plutonium::Core::Fields::Inputs::Factory.for_resource_attribute(context.resource_class, name, **options) else autodiscover_input(name) end end def input_defined?(name) input_definitions.key? name end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems