class ToptranslationCli::Configuration

Constants

FILENAME

Attributes

access_token[RW]
api_base_url[RW]
files[RW]
files_base_url[RW]
project_identifier[RW]
verbose[RW]

Public Class Methods

new() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 9
def initialize
  @files_base_url = 'https://files.toptranslation.com'
  @api_base_url = 'https://api.toptranslation.com'
  @verbose = !ENV['VERBOSE'].nil?
end

Public Instance Methods

exist?() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 36
def exist?
  File.exist?(FILENAME)
end
load() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 15
def load
  @project_identifier = configuration['project_identifier']
  @access_token = configuration['access_token']
  @files_base_url = configuration['files_base_url'] || @files_base_url
  @api_base_url = configuration['api_base_url'] || @api_base_url
  @files = configuration['files'] || []
end
save() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 23
def save
  File.open(FILENAME, 'w') do |file|
    # Psych can't stringify keys so we dump it to json before dumping to yml
    Psych.dump(JSON.parse(configuration_hash.to_json), file)
  end
end
use_examples() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 30
def use_examples
  @project_identifier = '<PROJECT_IDENTIFIER>'
  @access_token = '<YOUR_ACCESS_TOKEN>'
  @files = ['config/locales/{locale_code}/**/*.yml']
end

Private Instance Methods

configuration() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 42
def configuration
  @configuration ||= Psych.safe_load(File.read(FILENAME, encoding: 'bom|utf-8'))
rescue StandardError => e
  puts Pastel.new.red('Could not read configuration'), e
  exit 1
end
configuration_hash() click to toggle source
# File lib/toptranslation_cli/configuration.rb, line 49
def configuration_hash
  {
    project_identifier: @project_identifier,
    access_token: @access_token,
    files: @files
  }
end