Sha256: 136c1ede322b6e5c0880265e23ab6b9348d85805ef58a422794f293fb4df3f1a

Contents?: true

Size: 1.19 KB

Versions: 100

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

require 'avm/registry'
require 'eac_ruby_utils/blank_not_blank'
require 'eac_ruby_utils/core_ext'

module Avm
  module Applications
    class Base
      module Publishing
        PUBLISHABLE_KEY = 'publishable'

        def publishable?
          publishable_value ? true : false
        end

        def stereotype_publishable?(stereotype)
          return publishable? unless publishable_value.is_a?(::Hash)

          parse_publishable_value(publishable_value[stereotype.stereotype_name], true)
        end

        private

        def publishable_value
          parse_publishable_value(entry(PUBLISHABLE_KEY).optional_value, false)
        end

        def parse_publishable_value(value, hash_to_true) # rubocop:disable Metrics/CyclomaticComplexity
          return value.with_indifferent_access if parse_publishable_value_hash?(value, hash_to_true)
          return true if value.nil? || value == true
          return false if value == false || value.is_a?(::EacRubyUtils::BlankNotBlank)

          value ? true : false
        end

        def parse_publishable_value_hash?(value, hash_to_true)
          !hash_to_true && value.is_a?(::Hash)
        end
      end
    end
  end
end

Version data entries

100 entries across 100 versions & 2 rubygems

Version Path
avm-0.84.0 lib/avm/applications/base/publishing.rb
eac_tools-0.83.0 sub/avm/lib/avm/applications/base/publishing.rb
avm-0.83.0 lib/avm/applications/base/publishing.rb
eac_tools-0.82.0 sub/avm/lib/avm/applications/base/publishing.rb
avm-0.82.0 lib/avm/applications/base/publishing.rb
eac_tools-0.81.0 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.80.0 sub/avm/lib/avm/applications/base/publishing.rb
avm-0.81.0 lib/avm/applications/base/publishing.rb
eac_tools-0.79.0 sub/avm/lib/avm/applications/base/publishing.rb
avm-0.80.0 lib/avm/applications/base/publishing.rb
eac_tools-0.78.0 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.77.1 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.77.0 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.76.1 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.76.0 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.75.2 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.75.1 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.75.0 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.74.1 sub/avm/lib/avm/applications/base/publishing.rb
eac_tools-0.74.0 sub/avm/lib/avm/applications/base/publishing.rb