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