Permalink
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (56 sloc) 1.84 KB
require 'copycopter_client/version'
require 'copycopter_client/configuration'
# Top-level interface to the Copycopter client.
#
# Most applications should only need to use the {.configure}
# method, which will setup all the pieces and begin synchronization when
# appropriate.
module CopycopterClient
class << self
# @return [Client] instance used to communicate with the Copycopter server.
# This is set when {.configure} is called.
attr_accessor :client
# @return [Configuration] current client configuration
# Must act like a hash and return sensible values for all Copycopter
# configuration options. Usually set when {.configure} is called.
attr_accessor :configuration
# @return [Cache] instance used to synchronize changes.
# This is set when {.configure} is called.
attr_accessor :cache
# @return [Poller] instance used to poll for changes.
# This is set when {.configure} is called.
attr_accessor :poller
end
# Issues a new deploy, marking all draft blurbs as published.
# This is called when the copycopter:deploy rake task is invoked.
def self.deploy
client.deploy
end
# Starts the polling process.
def self.start_poller
poller.start
end
# Flush queued changed synchronously
def self.flush
cache.flush
end
# Call this method to modify defaults in your initializers.
#
# @example
# CopycopterClient.configure do |config|
# config.api_key = '1234567890abcdef'
# config.secure = false
# end
#
# @param apply [Boolean] (internal) whether the configuration should be applied yet.
#
# @yield [Configuration] the configuration to be modified
def self.configure(apply = true)
self.configuration ||= Configuration.new
yield(configuration)
configuration.apply if apply
end
end
if defined?(Rails)
require 'copycopter_client/rails'
end