lib/ripple.rb in ripple-0.9.0.beta vs lib/ripple.rb in ripple-0.9.0.beta2
- old
+ new
@@ -16,10 +16,11 @@
require 'active_support/all'
require 'active_support/json'
require 'active_model'
require 'ripple/i18n'
require 'ripple/core_ext'
+require 'ripple/translation'
# Contains the classes and modules related to the ODM built on top of
# the basic Riak client.
module Ripple
extend ActiveSupport::Autoload
@@ -44,16 +45,15 @@
# Exceptions
autoload :PropertyTypeMismatch
# Utilities
autoload :Inspection
- autoload :Translation
class << self
# @return [Riak::Client] The client for the current thread.
def client
- Thread.current[:ripple_client] ||= Riak::Client.new(config)
+ Thread.current[:ripple_client] ||= Riak::Client.new(client_config)
end
# Sets the client for the current thread.
# @param [Riak::Client] value the client
def client=(value)
@@ -69,10 +69,25 @@
# Reads the global Ripple configuration.
def config
@config ||= {}
end
+ # The format in which date/time objects will be serialized to
+ # strings in JSON. Defaults to :iso8601, and can be set in
+ # Ripple.config.
+ # @return [Symbol] the date format
+ def date_format
+ (config[:date_format] ||= :iso8601).to_sym
+ end
+
+ # Sets the format for date/time objects that are serialized to
+ # JSON.
+ # @param [Symbol] format the date format
+ def date_format=(format)
+ config[:date_format] = format.to_sym
+ end
+
# Loads the Ripple configuration from a given YAML file.
# Evaluates the configuration with ERB before loading.
def load_configuration(config_file, config_keys = [:ripple])
config_file = File.expand_path(config_file)
config_hash = YAML.load(ERB.new(File.read(config_file)).result).with_indifferent_access
@@ -80,9 +95,14 @@
self.config = config_hash || {}
rescue Errno::ENOENT
raise Ripple::MissingConfiguration.new(config_file)
end
alias_method :load_config, :load_configuration
+
+ private
+ def client_config
+ config.slice(:host, :port, :prefix, :mapred, :client_id, :http_backend, :solr)
+ end
end
# Exception raised when the path passed to
# {Ripple::load_configuration} does not point to a existing file.
class MissingConfiguration < StandardError