lib/j7w1.rb in j7w1-0.0.11 vs lib/j7w1.rb in j7w1-0.0.12

- old
+ new

@@ -3,29 +3,33 @@ module J7W1 autoload :Configuration, 'j7w1/configuration' autoload :Util, 'j7w1/util' autoload :Version, 'j7w1/version' autoload :ActiveRecordExt, 'j7w1/active_record_ext' + autoload :MockPushClient, 'j7w1/mock_push_client' + autoload :SNSPushClient, 'j7w1/sns_push_client' ActiveRecord::Base.__send__(:include, ActiveRecordExt) if defined? ActiveRecord::Base class << self attr_reader :current_strategy private :current_strategy + include Util + def configure(configuration) raise ArgumentError, "J7W1 configuration values should be an instance of Hash or String, but actually it is a kind of #{configuration.class.name}" unless configuration.is_a?(Hash) || configuration.is_a?(String) configuration = configuration_values_of(configuration) if configuration[:mock] - autoload :PushClient, 'j7w1/mock' + replace_concrete_push_client MockPushClient return end - autoload :PushClient, 'j7w1/push_client' + replace_concrete_push_client SNSPushClient @configuration = Configuration.new configuration end def configuration @configuration @@ -49,16 +53,13 @@ end configuration end - def symbolize_keys_recursive(hash) - hash.inject({}) do |h, kv| - (key, value) = kv - h[key.to_sym] = regularize_for_symbolization(value) - h - end + def replace_concrete_push_client(newer) + remove_const :PushClient if defined? PushClient + const_set :PushClient, newer end if const_defined?(:ActiveSupport) && Hash.instance_methods.include?(:symbolize_keys) && const_get(:ActiveSupport).const_defined?(:HashWithIndifferentAccess) def regularize_for_symbolization(value) @@ -86,8 +87,9 @@ value.map{|v|regularize_for_symbolization(v)} else value end end + end end end