Module: OmniAuth::Strategy::ClassMethods
- Defined in:
- lib/omniauth/strategy.rb
Instance Method Summary collapse
-
#args(args = nil) ⇒ Object
Sets (and retrieves) option key names for initializer arguments to be recorded as.
- #compile_stack(ancestors, method, context) ⇒ Object
-
#configure(options = nil) {|Options| ... } ⇒ Object
This allows for more declarative subclassing of strategies by allowing default options to be set using a simple configure call.
-
#default_options ⇒ Object
Returns an inherited set of default options set at the class-level for each strategy.
-
#option(name, value = nil) ⇒ Object
Directly declare a default option for your class.
Instance Method Details
#args(args = nil) ⇒ Object
Sets (and retrieves) option key names for initializer arguments to be recorded as. This takes care of 90% of the use cases for overriding the initializer in OmniAuth Strategies.
82 83 84 85 86 87 88 89 |
# File 'lib/omniauth/strategy.rb', line 82 def args(args = nil) if args @args = Array(args) return end existing = superclass.respond_to?(:args) ? superclass.args : [] (instance_variable_defined?(:@args) && @args) || existing end |
#compile_stack(ancestors, method, context) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/omniauth/strategy.rb', line 107 def compile_stack(ancestors, method, context) stack = ancestors.inject([]) do |a, ancestor| a << context.instance_eval(&ancestor.send(method)) if ancestor.respond_to?(method) && ancestor.send(method) a end stack.reverse! end |
#configure(options = nil) {|Options| ... } ⇒ Object
This allows for more declarative subclassing of strategies by allowing default options to be set using a simple configure call.
52 53 54 55 56 57 58 |
# File 'lib/omniauth/strategy.rb', line 52 def configure( = nil) if block_given? yield else .deep_merge!() end end |
#default_options ⇒ Object
Returns an inherited set of default options set at the class-level for each strategy.
24 25 26 27 28 |
# File 'lib/omniauth/strategy.rb', line 24 def # existing = superclass.default_options if superclass.respond_to?(:default_options) existing = superclass.respond_to?(:default_options) ? superclass. : {} @default_options ||= OmniAuth::Strategy::Options.new(existing) end |
#option(name, value = nil) ⇒ Object
Directly declare a default option for your class. This is a useful from a documentation perspective as it provides a simple line-by-line analysis of the kinds of options your strategy provides by default.
75 76 77 |
# File 'lib/omniauth/strategy.rb', line 75 def option(name, value = nil) [name] = value end |