Sha256: ba280f658392b53f141362d5ca6ae7ed31020180af17cf7d17ecc4e907a388ac

Contents?: true

Size: 1.08 KB

Versions: 15

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module Mutant
  module License
    class Subscription

      MESSAGE_FORMAT = <<~'MESSAGE'
        Can not validate %<subscription_name>s license.
        Licensed:
        %<expected>s
        Present:
        %<actual>s
      MESSAGE

      def self.from_json(value)
        {
          'com' => Commercial,
          'oss' => Opensource
        }.fetch(value.fetch('type')).from_json(value.fetch('contents'))
      end

    private

      def failure(expected, actual)
        Either::Left.new(message(expected, actual))
      end

      # ignore :reek:UtilityFunction
      def success
        # masked by soft fail
        Either::Right.new(nil)
      end

      def subscription_name
        self.class.name.split('::').last.downcase
      end

      def message(expected, actual)
        MESSAGE_FORMAT % {
          actual:            actual.any? ? actual.map(&:to_s).join("\n") : '[none]',
          expected:          expected.map(&:to_s).join("\n"),
          subscription_name: subscription_name
        }
      end
    end # Subscription
  end # License
end # Mutant

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
mutant-0.9.14 lib/mutant/license/subscription.rb
mutant-0.9.13 lib/mutant/license/subscription.rb
mutant-0.9.12 lib/mutant/license/subscription.rb
mutant-0.9.11 lib/mutant/license/subscription.rb
mutant-0.9.10 lib/mutant/license/subscription.rb
mutant-0.9.9 lib/mutant/license/subscription.rb
mutant-0.9.8 lib/mutant/license/subscription.rb
mutant-0.9.7 lib/mutant/license/subscription.rb
mutant-0.9.6 lib/mutant/license/subscription.rb
mutant-0.9.5 lib/mutant/license/subscription.rb
mutant-0.9.4 lib/mutant/license/subscription.rb
mutant-0.9.3 lib/mutant/license/subscription.rb
mutant-0.9.2 lib/mutant/license/subscription.rb
mutant-0.9.1 lib/mutant/license/subscription.rb
mutant-0.9.0 lib/mutant/license/subscription.rb