class BooticCli::Session
Attributes
store[R]
Public Class Methods
new(store)
click to toggle source
# File lib/bootic_cli/session.rb, line 7 def initialize(store) @store = store upgrade! end
Public Instance Methods
client()
click to toggle source
# File lib/bootic_cli/session.rb, line 91 def client @client ||= begin raise "First setup credentials and log in" unless ready? BooticClient.configure do |c| c.auth_host = config[:auth_host] if config[:auth_host] c.api_root = config[:api_root] if config[:api_root] c.client_id = config[:client_id] c.client_secret = config[:client_secret] c.logger = Logger.new(STDOUT) c.logging = false c.cache_store = NullCacheStore.new end BooticClient.client(:authorized, access_token: config[:access_token]) do |new_token| store.transaction{ store['access_token'] = new_token } end end end
config()
click to toggle source
# File lib/bootic_cli/session.rb, line 62 def config @config ||= store.transaction do h = { client_id: store['client_id'], client_secret: store['client_secret'], access_token: store['access_token'] } h[:auth_host] = store['auth_host'] if store['auth_host'] h[:api_root] = store['api_root'] if store['api_root'] h end end
erase!()
click to toggle source
# File lib/bootic_cli/session.rb, line 52 def erase! store.erase end
logged_in?()
click to toggle source
# File lib/bootic_cli/session.rb, line 27 def logged_in? store.transaction{ store['access_token'] } end
login(username, pwd, scope)
click to toggle source
# File lib/bootic_cli/session.rb, line 44 def login(username, pwd, scope) token = oauth_client.password.get_token(username, pwd, 'scope' => scope) store.transaction do store['access_token'] = token.token end end
logout!()
click to toggle source
# File lib/bootic_cli/session.rb, line 56 def logout! store.transaction do store['access_token'] = nil end end
needs_upgrade?()
click to toggle source
# File lib/bootic_cli/session.rb, line 12 def needs_upgrade? store.needs_upgrade? end
ready?()
click to toggle source
# File lib/bootic_cli/session.rb, line 31 def ready? setup? && logged_in? end
setup(client_id, client_secret, auth_host: nil, api_root: nil)
click to toggle source
# File lib/bootic_cli/session.rb, line 35 def setup(client_id, client_secret, auth_host: nil, api_root: nil) store.transaction do store['client_id'] = client_id store['client_secret'] = client_secret store['auth_host'] = auth_host if auth_host store['api_root'] = api_root if api_root end end
setup?()
click to toggle source
# File lib/bootic_cli/session.rb, line 21 def setup? store.transaction do store['client_id'] && store['client_secret'] end end
upgrade!()
click to toggle source
# File lib/bootic_cli/session.rb, line 16 def upgrade! store.upgrade! self end
Private Instance Methods
oauth_client()
click to toggle source
# File lib/bootic_cli/session.rb, line 114 def oauth_client @oauth_client ||= OAuth2::Client.new( config[:client_id], config[:client_secret], site: (config[:auth_host] || BooticClient.configuration.auth_host) ) end