Module: Synapse::Rails::Providers
- Defined in:
- lib/synapse/rails/providers.rb,
lib/synapse/rails/providers/base.rb
Defined Under Namespace
Classes: Base
Class Method Summary collapse
- .for(service, params = {}) ⇒ Object
- .provider(service, function = 'common') ⇒ Object
- .use(service, params = {}) ⇒ Object
Class Method Details
.for(service, params = {}) ⇒ Object
11 12 13 14 15 |
# File 'lib/synapse/rails/providers.rb', line 11 def for service, params={} klass_name = "::Synapse::Rails::Providers::#{service.to_s.camelize}" params = params.with_indifferent_access.except(:if) Object.const_get(klass_name).new params end |
.provider(service, function = 'common') ⇒ Object
8 9 10 |
# File 'lib/synapse/rails/providers.rb', line 8 def provider service, function='common' @services end |
.use(service, params = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/synapse/rails/providers.rb', line 16 def use service, params={} klass_name = "::Synapse::Rails::Providers::#{service.to_s.camelize}" return self.send(:for,service,params) if Object.const_defined?(klass_name) tester = params[:if] if params[:if].is_a? Proc tester = Proc.new { Object.const_defined? params[:if] } if [Symbol, Class].include? params[:if].class tester = Proc.new { true } if params[:if] == nil return unless tester.call build = true unless Object.const_defined? klass_name build = true unless Object.const_defined?(klass_name).respond_to? :synapse if build klass = Class.new(Base) klass.service = service klass.tester = tester self.const_set(klass_name.split('::').last,klass) end self.send(:for,service,params) end |