Class: OpenSesame::Configuration
- Inherits:
-
Object
- Object
- OpenSesame::Configuration
- Defined in:
- lib/open_sesame/configuration.rb
Constant Summary collapse
- CONFIGURABLE_ATTRIBUTES =
[ :organization_name, :mount_prefix, :github_application, :enabled, :debug, :full_host, :auto_access_provider ]
Instance Method Summary collapse
- #auto_login(provider) ⇒ Object
- #configure {|_self| ... } ⇒ Object
- #configured? ⇒ Boolean
- #debug? ⇒ Boolean
- #disable! ⇒ Object
- #enable(enabled) ⇒ Object
- #enable! ⇒ Object
- #enabled? ⇒ Boolean
- #github(client_id, client_secret) ⇒ Object
- #github_access_token(access_token) ⇒ Object
- #host(full_host) ⇒ Object
- #mounted_at(mount_prefix) ⇒ Object
- #organization(organization_name) ⇒ Object
- #valid? ⇒ Boolean
- #validate! ⇒ Object
Instance Method Details
#auto_login(provider) ⇒ Object
37 38 39 |
# File 'lib/open_sesame/configuration.rb', line 37 def auto_login(provider) self.auto_access_provider = provider end |
#configure {|_self| ... } ⇒ Object
61 62 63 64 65 |
# File 'lib/open_sesame/configuration.rb', line 61 def configure yield self validate! self end |
#configured? ⇒ Boolean
74 75 76 |
# File 'lib/open_sesame/configuration.rb', line 74 def configured? [:organization_name, :mount_prefix, :github_application].any? { |required| send(required).present? } end |
#debug? ⇒ Boolean
57 58 59 |
# File 'lib/open_sesame/configuration.rb', line 57 def debug? !!self.debug end |
#disable! ⇒ Object
45 46 47 |
# File 'lib/open_sesame/configuration.rb', line 45 def disable! self.enabled = false end |
#enable(enabled) ⇒ Object
49 50 51 |
# File 'lib/open_sesame/configuration.rb', line 49 def enable(enabled) self.enabled = !!enabled end |
#enable! ⇒ Object
41 42 43 |
# File 'lib/open_sesame/configuration.rb', line 41 def enable! self.enabled = true end |
#enabled? ⇒ Boolean
53 54 55 |
# File 'lib/open_sesame/configuration.rb', line 53 def enabled? !!self.enabled end |
#github(client_id, client_secret) ⇒ Object
25 26 27 |
# File 'lib/open_sesame/configuration.rb', line 25 def github(client_id, client_secret) self.github_application = { :client_id => client_id, :client_secret => client_secret } end |
#github_access_token(access_token) ⇒ Object
29 30 31 |
# File 'lib/open_sesame/configuration.rb', line 29 def github_access_token(access_token) self.github_application = { :access_token => access_token } end |
#host(full_host) ⇒ Object
21 22 23 |
# File 'lib/open_sesame/configuration.rb', line 21 def host(full_host) self.full_host = full_host end |
#mounted_at(mount_prefix) ⇒ Object
17 18 19 |
# File 'lib/open_sesame/configuration.rb', line 17 def mounted_at(mount_prefix) self.mount_prefix = mount_prefix end |
#organization(organization_name) ⇒ Object
33 34 35 |
# File 'lib/open_sesame/configuration.rb', line 33 def organization(organization_name) self.organization_name = organization_name end |
#valid? ⇒ Boolean
67 68 69 70 71 72 |
# File 'lib/open_sesame/configuration.rb', line 67 def valid? self.organization_name && self.organization_name.is_a?(String) && self.mount_prefix && self.mount_prefix.is_a?(String) && self.github_application.is_a?(Hash) && [:client_id, :client_secret].all? { |key| self.github_application.keys.include?(key) } end |
#validate! ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/open_sesame/configuration.rb', line 78 def validate! return true if valid? = <<-MESSAGE Update your OpenSesame configuration. Example: # config/initializers/open_sesame.rb OpenSesame.configure do |config| config.organization 'challengepost' config.mounted_at '/opensesame' config.github ENV['GITHUB_APP_ID'], ENV['GITHUB_SECRET'] end When you register the app, make sure to point the callback url to the engine mountpoint + /auth/github/callback. For example, if your development app is on http://localhost:3000 and you're mounting the OpenSesame::Engine at '/opensesame', your github callback url should be: http://localhost:3000/auth/github/callback MESSAGE raise ConfigurationError.new() end |