Sha256: 7a60b956249d856eb877ad8928b4f9f370b2e01cb6ed05b810cae33b05c4ee3e

Contents?: true

Size: 1.32 KB

Versions: 838

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module Playbook
  module Props
    class Error < StandardError; end

    class Base
      attr_reader :default, :deprecated, :required, :name, :kit

      def initialize(name:, kit:, default: nil, deprecated: false, required: false)
        @default = default
        @deprecated = deprecated
        @required = required
        @name = name
        @kit = kit
      end

      def value(value)
        value.nil? ? @default : value
      end

      def validate!(input_value)
        # warn("#{kit} Kit: The prop '#{name}' is deprecated and will be removed in a future release!") if deprecated && input_value # TODO: add some color for pop

        raise(Playbook::Props::Error, "#{kit} prop '#{name}' of type #{inspect.class} is required and needs a value") if required && input_value.nil?

        validate(value(input_value)) ||
          raise(Playbook::Props::Error, "#{kit} has invalid value of '#{input_value.inspect}' for prop '#{name}' of type #{inspect.class}")
      end

      def validate(_value)
        true
      end

    private

      def warn(message)
        log("Prop Warning: #{message}")
      end

      def log(message)
        logger = ActiveSupport::Logger.new($stdout)
        @logger ||= ActiveSupport::TaggedLogging.new(logger)
        @logger.log(0, message)
      end
    end
  end
end

Version data entries

838 entries across 838 versions & 1 rubygems

Version Path
playbook_ui-14.15.0.pre.alpha.play1910emptystatekitreactbeta6579 lib/playbook/props/base.rb
playbook_ui-14.15.0.pre.alpha.play1854reacthookmultilvlselect6572 lib/playbook/props/base.rb
playbook_ui-14.16.0.pre.rc.0 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.PBNTR907reactfilterpopoverpropswidthbug6557 lib/playbook/props/base.rb
playbook_ui-14.15.0 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.PBNTR866finalizecssendlessscroll6486 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1853typeaheadreacthookform6480 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1755pbcontenttag6478 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1755pbcontenttag6477 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.PBNTR892dialogenhancedelement6476 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1755pbcontenttag6472 lib/playbook/props/base.rb
playbook_ui-14.15.0.pre.rc.4 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1755pbcontenttag6464 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.PBNTR866finalizecssendlessscroll6462 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1853typeaheadreacthookform6461 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.play1755pbcontenttag6460 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.revert4339revert4242play1633displaytitle6456 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.revert4339revert4242play1633displaytitle6453 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.revert4339revert4242play1633displaytitle6426 lib/playbook/props/base.rb
playbook_ui-14.14.0.pre.alpha.revert4339revert4242play1633displaytitle6424 lib/playbook/props/base.rb