class Ayadn::PinBoard

Public Instance Methods

ask_credentials(status = Status.new) click to toggle source
# File lib/ayadn/pinboard.rb, line 9
def ask_credentials status = Status.new
  begin
    status.pin_username
    pin_username = STDIN.gets.chomp()
    status.pin_password
    pin_password = STDIN.noecho(&:gets).chomp()
  rescue Interrupt
    status.canceled
    exit
  rescue => e
    status.wtf
    Errors.global_error({error: e, caller: caller, data: [pin_username]})
  end
  save_credentials(encode(pin_username, pin_password))
end
has_credentials_file?() click to toggle source
# File lib/ayadn/pinboard.rb, line 5
def has_credentials_file?
  File.exist?(Ayadn::Settings.config.paths.auth + '/pinboard.data')
end
load_credentials() click to toggle source
# File lib/ayadn/pinboard.rb, line 25
def load_credentials
  decode(File.read(Ayadn::Settings.config.paths.auth + '/pinboard.data'))
end
pin(data) click to toggle source
# File lib/ayadn/pinboard.rb, line 29
def pin(data)
  pinboard = Pinboard::Client.new(:username => data.username, :password => data.password)
  pinboard.add(:url => data.url, :tags => data.tags, :extended => data.text, :description => data.description)
end

Private Instance Methods

decode(encoded_pinboard_credentials) click to toggle source
# File lib/ayadn/pinboard.rb, line 36
def decode(encoded_pinboard_credentials)
  Base64.strict_decode64(encoded_pinboard_credentials[/AyadnPinboard (.*)/, 1]).split(":")
end
encode(username, password) click to toggle source
# File lib/ayadn/pinboard.rb, line 44
def encode(username, password)
  "AyadnPinboard #{Base64.strict_encode64([username, password].join(":"))}"
end
save_credentials(encoded_pinboard_credentials) click to toggle source
# File lib/ayadn/pinboard.rb, line 40
def save_credentials(encoded_pinboard_credentials)
  File.write(Ayadn::Settings.config.paths.auth + '/pinboard.data', encoded_pinboard_credentials)
end