Sha256: c91f0a640497375d9de08c7f06ae323a5165eb08cc0cc3f7bfd43b1156c9de88

Contents?: true

Size: 801 Bytes

Versions: 114

Compression:

Stored size: 801 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

::EacRubyUtils.require_sub __FILE__

module Avm
  module Git
    module AutoCommit
      module Rules
        RULES_CLASSES = %w[last manual new nth unique]
                        .map { |key| ::Avm::Git::AutoCommit::Rules.const_get(key.camelcase) }

        class << self
          def parse(string)
            parts = string.split(':')

            klass = rule_class_by_key(parts.shift)
            klass.new(*parts)
          end

          def rule_class_by_key(key)
            RULES_CLASSES.find { |klass| klass.keys.include?(key) } ||
              raise("Rule not find with key \"#{key}\" (Available: " +
                RULES_CLASSES.flat_map(&:keys).join(', ') + ')')
          end
        end
      end
    end
  end
end

Version data entries

114 entries across 114 versions & 4 rubygems

Version Path
eac_tools-0.49.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.48.1 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.48.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.47.2 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.47.1 sub/avm-git/lib/avm/git/auto_commit/rules.rb
avm-git-0.10.1 lib/avm/git/auto_commit/rules.rb
eac_tools-0.47.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.46.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.45.2 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.45.1 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.45.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.44.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.43.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.42.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
avm-git-0.10.0 lib/avm/git/auto_commit/rules.rb
eac_tools-0.41.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.40.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
avm-git-0.9.0 lib/avm/git/auto_commit/rules.rb
eac_tools-0.39.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb
eac_tools-0.38.0 sub/avm-git/lib/avm/git/auto_commit/rules.rb