class HipTail::SQLite3AuthorityProvider
Constants
- SQL_GET
- SQL_REGISTER
- SQL_UNREGISTER
Public Class Methods
new(db)
click to toggle source
@return [HipTail::SQLite3AuthorityProvider]
# File lib/hiptail/authority/sqlite3_provider.rb, line 6 def initialize(db) @authorities = {} @db = db build end
Public Instance Methods
build()
click to toggle source
@return [void]
# File lib/hiptail/authority/sqlite3_provider.rb, line 14 def build @db.execute_batch <<-'END_SQL' CREATE TABLE IF NOT EXISTS hiptail_authority ( oauth_id VARCHAR(255) NOT NULL PRIMARY KEY, oauth_secret VARCHAR(255) NOT NULL, authorization_url VARCHAR(255) NOT NULL, token_url VARCHAR(255) NOT NULL, room_id INT UNSIGNED, group_id INT UNSIGNED NOT NULL, api_base VARCHAR(255) NOT NULL, created_at INTEGER NOT NULL ); END_SQL end
get(oauth_id)
click to toggle source
@abstract @param [String] oauth_id @return [HipTail::Authority]
# File lib/hiptail/authority/sqlite3_provider.rb, line 36 def get(oauth_id) unless @authorities.include?(oauth_id) begin last_rah = @db.results_as_hash @db.results_as_hash = true @db.execute(SQL_GET, oauth_id) do |row| data = row.to_a.select { |f| f[0].is_a?(String) }.map { |f| [ f[0].to_sym, f[1] ] } @authorities[oauth_id] = HipTail::Authority.new(Hash[*data.flatten(1)]) break end ensure @db.results_as_hash = last_rah end end @authorities[oauth_id] end
register(oauth_id, authority)
click to toggle source
@param [String] oauth_id @param [HipTail::Authority] authority @return [HipTail::Authority]
# File lib/hiptail/authority/sqlite3_provider.rb, line 63 def register(oauth_id, authority) @authorities[oauth_id] = authority row_data = authority.as_hash [ :api_base, :authorization_url, :token_url ].each do |key| row_data[key] = row_data[key].to_s end row_data[:created_at] = Time.now.to_i @db.execute(SQL_REGISTER, row_data) end
unregister(oauth_id)
click to toggle source
@param [String] oauth_id @return [void]
# File lib/hiptail/authority/sqlite3_provider.rb, line 80 def unregister(oauth_id) @authorities.delete(oauth_id) @db.execute(SQL_UNREGISTER, oauth_id) end