Sha256: e8f23995a47308e386d4345f035f8e211fd6f8e76f79ae0ed0f8c0d281ec1aa4

Contents?: true

Size: 1.04 KB

Versions: 244

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'
require 'parseconfig'

module EacGit
  class Local
    class Subrepo
      class Config
        MAPPING = {
          command_version: :cmdver, commit_id: :commit, join_method: :method,
          parent_commit_id: :parent, remote_branch: :branch, remote_uri: :remote
        }.freeze

        class << self
          def from_file(file_path)
            new(
              ::ParseConfig.new(file_path.to_pathname)['subrepo']
            )
          end
        end

        common_constructor :values do
          self.values = values.with_indifferent_access
        end

        MAPPING.each do |method_name, _config_key|
          define_method(method_name) do
            values[MAPPING.fetch(method_name)]
          end

          define_method("#{method_name}=") do |value|
            values[MAPPING.fetch(method_name)] = value
          end
        end

        def to_content
          "[subrepo]\n" + MAPPING.map { |k, v| "  #{v} = #{send(k)}\n" }.join
        end
      end
    end
  end
end

Version data entries

244 entries across 244 versions & 3 rubygems

Version Path
eac_tools-0.84.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.84.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.83.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.82.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.81.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.80.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.79.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.78.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.77.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.77.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.76.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.76.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.75.2 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.75.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.75.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.74.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.74.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.73.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.72.0 sub/eac_git/lib/eac_git/local/subrepo/config.rb
eac_tools-0.70.1 sub/eac_git/lib/eac_git/local/subrepo/config.rb