Sha256: 87bc22075572f9f93106500a10638c470c6af3e4686cf2e0626d3c4f7bed4e87

Contents?: true

Size: 1.22 KB

Versions: 13

Compression:

Stored size: 1.22 KB

Contents

module Evertils
  module Controller
    class Change < Controller::Base
      REQUIRED_TOKEN_GROUPS = [:S, :U, :E, :C, :P, :A, :V, :H].freeze
      CONFIG = File.expand_path('~/.evertils/config.yml')
      ERROR_MESSAGE = "Token invalid\nGet one from https://www.evernote.com/Login.action?targetUrl=%2Fapi%2FDeveloperToken.action".freeze

      # Change the defined Evernote token
      def token
        Notify.spit 'Already have your Evernote token? Paste it now:'

        begin
          set_evertils_token
        rescue RuntimeError
          Notify.error ERROR_MESSAGE
        rescue Interrupt
          Notify.error ERROR_MESSAGE
        end

        Notify.success('Token saved!')
      end

      private

      def set_evertils_token
        token = STDIN.gets.chomp
        conf = YAML.load_file(CONFIG)
        conf['token'] = token

        raise unless valid? token

        overwrite_config_with(conf)
      end

      def overwrite_config_with
        File.open(CONFIG, 'w') { |file| file.write(conf.to_yaml) }
      end

      def valid?(token)
        token_groups = token.split(':').map do |group|
          group.split('=').first.to_sym
        end

        token_groups == REQUIRED_TOKEN_GROUPS
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
evertils-2.2.4 lib/evertils/controllers/change.rb
evertils-2.2.3 lib/evertils/controllers/change.rb
evertils-2.2.2 lib/evertils/controllers/change.rb
evertils-2.2.1 lib/evertils/controllers/change.rb
evertils-2.2.0 lib/evertils/controllers/change.rb
evertils-2.1.0 lib/evertils/controllers/change.rb
evertils-2.0.2 lib/evertils/controllers/change.rb
evertils-2.0.1 lib/evertils/controllers/change.rb
evertils-2.0.0 lib/evertils/controllers/change.rb
evertils-1.0.12 lib/evertils/controllers/change.rb
evertils-1.0.11 lib/evertils/controllers/change.rb
evertils-1.0.10 lib/evertils/controllers/change.rb
evertils-1.0.9 lib/evertils/controllers/change.rb