Sha256: d6d966e732b97fa3351f3131bec451f085d0c4f08a776394fa41fc440d907c0d

Contents?: true

Size: 1.33 KB

Versions: 6

Compression:

Stored size: 1.33 KB

Contents

require 'config/factory'
require 'uri'

class SourceConfig
  include Config::Factory

  key :protocol

  attr_reader :source_uri

  def initialize(source_url:)
    @source_uri = URI(source_url)
  end
end

class OAISourceConfig < SourceConfig
  protocol 'OAI'

  attr_reader :oai_base_url
  attr_reader :metadata_prefix
  attr_reader :set
  attr_reader :seconds_granularity

  def initialize(oai_base_url:, metadata_prefix:, set: nil, seconds_granularity: false)
    super(source_url: oai_base_url)
    @oai_base_url = source_uri
    @metadata_prefix = metadata_prefix
    @set = set
    @seconds_granularity = seconds_granularity
  end
end

class ResyncSourceConfig < SourceConfig
  protocol 'Resync'

  attr_reader :capability_list_url

  def initialize(capability_list_url:)
    super(url: capability_list_url)
    @capability_list_url = source_uri
  end
end

# IndexConfig

class IndexConfig
  include Config::Factory

  key :adapter

  attr_reader :uri

  def initialize(url:)
    @uri = URI(url)
  end
end

class SolrConfig < IndexConfig
  adapter 'Solr'

  attr_reader :url
  attr_reader :proxy
  attr_reader :open_timeout
  attr_reader :read_timeout

  def initialize(url:, proxy: nil, open_timeout: 60, read_timeout: 120)
    super(url: url)
    @url = uri
    @proxy = proxy
    @open_timeout = open_timeout
    @read_timeout = read_timeout
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
config-factory-0.0.6 spec/unit/config/factory/fixtures.rb
config-factory-0.0.5 spec/unit/config/factory/fixtures.rb
config-factory-0.0.4 spec/unit/config/factory/fixtures.rb
config-factory-0.0.3 spec/unit/config/factory/fixtures.rb
config-factory-0.0.2 spec/unit/config/factory/fixtures.rb
config-factory-0.0.1 spec/unit/config/factory/fixtures.rb