class BitsDealer::Config
Attributes
credentials[R]
database[R]
Public Class Methods
create(options)
click to toggle source
# File lib/bits_dealer/config.rb, line 14 def self.create(options) ensure_config_folder create_secrets_file(options) new(options[:password]) end
needs_configuration?()
click to toggle source
# File lib/bits_dealer/config.rb, line 24 def self.needs_configuration? !File.exist?("#{Dir.home}/.bits_dealer/secrets.yml") end
new(password)
click to toggle source
# File lib/bits_dealer/config.rb, line 9 def initialize(password) load_configurations(password) connect_to_bitso end
reset()
click to toggle source
# File lib/bits_dealer/config.rb, line 20 def self.reset FileUtils.remove_dir("#{Dir.home}/.bits_dealer") end
Private Class Methods
create_database()
click to toggle source
# File lib/bits_dealer/config.rb, line 66 def self.create_database FileUtils.cp('lib/bits_dealer/templates/database.sqlite3', "#{Dir.home}/.bits_dealer/database.sqlite3") end
create_secrets_file(values)
click to toggle source
# File lib/bits_dealer/config.rb, line 54 def self.create_secrets_file(values) File.open("#{Dir.home}/.bits_dealer/secrets.yml", "w") do |file| file.write( { client_id: values[:client_id].encrypt(values[:password]), api_key: values[:api_key].encrypt(values[:password]), api_secret: values[:api_secret].encrypt(values[:password]), }.to_yaml ) end end
ensure_config_folder()
click to toggle source
# File lib/bits_dealer/config.rb, line 70 def self.ensure_config_folder unless File.directory?("#{Dir.home}/.bits_dealer") FileUtils.mkdir_p("#{Dir.home}/.bits_dealer") end end
Private Instance Methods
connect_to_bitso()
click to toggle source
# File lib/bits_dealer/config.rb, line 30 def connect_to_bitso Bitsor.configure do |c| c.client_id = credentials[:client_id] c.api_key = credentials[:api_key] c.api_secret = credentials[:api_secret] end end
load_configurations(password)
click to toggle source
# File lib/bits_dealer/config.rb, line 38 def load_configurations(password) if File.exist?("#{Dir.home}/.bits_dealer/secrets.yml") secrets = YAML.load_file("#{Dir.home}/.bits_dealer/secrets.yml") @credentials = { client_id: secrets[:client_id].decrypt(password), api_key: secrets[:api_key].decrypt(password), api_secret: secrets[:api_secret].decrypt(password), } end if File.exist?("#{Dir.home}/.bits_dealer/database.sqlite3") @database = Sequel.sqlite("#{Dir.home}/.bits_dealer/database.sqlite3") end end