Sha256: 427993042708f4efe008cb4827000e6f53f54bcf66044827a02d1e5a2e86094e

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require 'consyncful/version'

require 'mongoid'
require 'contentful'

require 'consyncful/base'
require 'consyncful/sync'

require 'consyncful/railtie' if defined?(Rails)

module Consyncful
  # Handles Rails configurations for Consynful
  class Configuration
    attr_accessor :contentful_client_options, :locale,
                  :mongo_client, :mongo_collection

    def initialize
      @contentful_client_options = {
        api_url: 'cdn.contentful.com'
      }
      @locale = 'en-NZ'
      @mongo_client = :default
      @mongo_collection = 'contentful_models'
    end
  end

  DEFAULT_CLIENT_OPTIONS = {
    reuse_entries: true,
    api_url: 'cdn.contentful.com'
  }.freeze

  class << self
    def configuration
      @configuration ||= Configuration.new
    end

    def configure
      yield configuration
    end

    def client
      @client ||= begin
        options = Consyncful.configuration.contentful_client_options
        options.reverse_merge!(DEFAULT_CLIENT_OPTIONS)
        Contentful::Client.new(options)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
consyncful-0.6.2 lib/consyncful.rb
consyncful-0.6.1 lib/consyncful.rb