Module: Funneler
- Defined in:
- lib/funneler.rb,
lib/funneler/funnel.rb,
lib/funneler/version.rb,
lib/funneler/configuration.rb,
lib/funneler/token_handler.rb,
lib/funneler/funnel_factory.rb,
lib/funneler/controller_methods.rb
Defined Under Namespace
Modules: ControllerMethods
Classes: Configuration, Funnel, FunnelFactory, TokenHandler
Constant Summary
collapse
- Error =
Class.new(StandardError)
- InvalidTokenError =
Class.new(Error)
- UnknownFunnelType =
Class.new(Error)
- VERSION =
"1.2.2"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Returns the value of attribute configuration.
16
17
18
|
# File 'lib/funneler.rb', line 16
def configuration
@configuration
end
|
Class Method Details
.build(route_generator:, params: {}, expires_in_days: nil, meta: {}) ⇒ Object
33
34
35
36
37
38
|
# File 'lib/funneler.rb', line 33
def build(route_generator:, params: {}, expires_in_days: nil, meta: {})
Funneler::FunnelFactory.build(route_generator: route_generator,
params: params,
meta: meta,
expires_in_days: expires_in_days)
end
|
22
23
24
|
# File 'lib/funneler.rb', line 22
def configure
yield(configuration)
end
|
.from_routes(routes: {}, meta: {}) ⇒ Object
40
41
42
43
44
|
# File 'lib/funneler.rb', line 40
def from_routes(routes: {}, meta: {})
Funnel.new('routes' => routes,
'current_page_index' => 0,
'meta' => meta)
end
|
.from_token(token:, current_page_index: nil) ⇒ Object
26
27
28
29
30
31
|
# File 'lib/funneler.rb', line 26
def from_token(token:, current_page_index: nil)
data = Funneler::TokenHandler.(token)
Funneler::Funnel.new(data, current_page_index)
rescue JWT::DecodeError => e
raise InvalidTokenError, "Invalid token '#{token}': #{e.message}"
end
|
.from_url(url:) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/funneler.rb', line 46
def from_url(url:)
uri = URI.parse(url)
params = Hash[URI.decode_www_form(uri.query || "")]
token = params['funnel_token']
from_token(token: token)
end
|