Sha256: 244275ec9e18ed0ecd0c3bd2e006f1d3c999f4d73046bc00353e78035a17b890

Contents?: true

Size: 1.27 KB

Versions: 83

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Launcher
    module Instances
      class Settings
        DEFAULT_CURRENT_REVISION = 'origin/master'
        DEFAULT_PUBLISH_REMOTE = 'publish'
        PUBLISHABLE_KEY = :publishable

        common_constructor :data do
          self.data = (data.is_a?(Hash) ? data : {}).with_indifferent_access
        end

        def git_current_revision
          data[__method__] || DEFAULT_CURRENT_REVISION
        end

        def git_publish_remote
          data[__method__] || DEFAULT_PUBLISH_REMOTE
        end

        def publishable?
          !!publishable_value
        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(data[PUBLISHABLE_KEY], false)
        end

        def parse_publishable_value(value, hash_to_true)
          return value.with_indifferent_access if !hash_to_true && value.is_a?(::Hash)
          return true if value.nil? || value == true
          return false if value == false

          !!value
        end
      end
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
avm-tools-0.116.1 lib/avm/launcher/instances/settings.rb
avm-tools-0.116.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.115.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.114.2 lib/avm/launcher/instances/settings.rb
avm-tools-0.114.1 lib/avm/launcher/instances/settings.rb
avm-tools-0.114.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.6 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.5 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.4 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.3 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.2 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.1 lib/avm/launcher/instances/settings.rb
avm-tools-0.113.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.112.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.111.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.110.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.109.1 lib/avm/launcher/instances/settings.rb
avm-tools-0.109.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.108.0 lib/avm/launcher/instances/settings.rb
avm-tools-0.107.0 lib/avm/launcher/instances/settings.rb