class Tracco::CLI
Public Class Methods
source_root()
click to toggle source
# File lib/tracco/cli.rb, line 9 def self.source_root File.join(File.dirname(__FILE__), "..", "..", "config") end
Public Instance Methods
collect(starting_date_as_string=Date.today.to_s)
click to toggle source
# File lib/tracco/cli.rb, line 40 def collect(starting_date_as_string=Date.today.to_s) set_logger_level(options[:verbose]) invoke :ensure_env starting_date = date_from(starting_date_as_string) environment = environment_from(options) Tracco::Database.load_env(environment, options[:mongoid_config_path]) puts "Collecting tracking data starting from #{starting_date} in the #{environment} env." tracker = Tracco::TrelloTracker.new tracker.track(starting_date) end
console()
click to toggle source
# File lib/tracco/cli.rb, line 26 def console environment = environment_from(options) run "export TRACCO_ENV=#{environment}; irb -rubygems -I lib -r tracco -r startup_trello.rb -r awesome_print" end
ensure_env(*args)
click to toggle source
# File lib/tracco/cli.rb, line 98 def ensure_env(*args) %w{developer_public_key access_token_key}.each do |each_name| unless ENV[each_name] || authorization_params_from_config_file[each_name] error("Missing <#{each_name}> configuration parameter: set it as environment variable or in the config/config.yml file.") end end unless tracker_username error("Missing <tracker_username> configuration parameter: set it as environment variable or in the config/config.yml file.") end end
export_google_docs(spreadsheet="tracco", worksheet="tracking")
click to toggle source
# File lib/tracco/cli.rb, line 78 def export_google_docs(spreadsheet="tracco", worksheet="tracking") set_logger_level(options[:verbose]) invoke :ensure_env environment = environment_from(options) Tracco::Database.load_env(environment, options[:mongoid_config_path]) exporter = Tracco::Exporters::GoogleDocs.new(spreadsheet, worksheet) spreadsheet_url = exporter.export say "[DONE]".color(:green) say "Go to #{spreadsheet_url}" end
init()
click to toggle source
# File lib/tracco/cli.rb, line 54 def init template_files.each do |template_file| target_file = File.basename(template_file).sub('.template', '') target_path = File.join('config', target_file) if File.exists?(target_path) say "skipping #{target_file.color(:yellow)}, already exists." else run "mkdir -p config" run "cp -f #{template_file} #{target_path}" say "please edit the #{target_file} to have all the proper configurations" end end end
version()
click to toggle source
# File lib/tracco/cli.rb, line 93 def version say "Tracco version #{Tracco::VERSION}" end
Private Instance Methods
date_from(starting_date_as_string)
click to toggle source
# File lib/tracco/cli.rb, line 122 def date_from(starting_date_as_string) if starting_date_as_string == "today" Date.today else parse_date(starting_date_as_string) || error("Invalid date: #{starting_date_as_string}") end end
environment_from(options)
click to toggle source
# File lib/tracco/cli.rb, line 115 def environment_from(options) environment = options[:environment] error_invalid_environment(environment) unless is_valid_env?(environment) return environment end
error(message)
click to toggle source
# File lib/tracco/cli.rb, line 138 def error(message) say "[ERROR] ".color(:red) << message exit 1 end
error_invalid_environment(environment)
click to toggle source
# File lib/tracco/cli.rb, line 143 def error_invalid_environment(environment) error("Invalid environment specified: #{environment}") end
is_valid_env?(environment)
click to toggle source
# File lib/tracco/cli.rb, line 134 def is_valid_env?(environment) %w{production development test}.include? environment end
parse_date(date_as_string)
click to toggle source
# File lib/tracco/cli.rb, line 130 def parse_date(date_as_string) Date.parse(date_as_string) rescue nil end
set_logger_level(verbose)
click to toggle source
# File lib/tracco/cli.rb, line 111 def set_logger_level(verbose) Trello.logger.level = verbose ? Logger::DEBUG : Logger::INFO end
template_files()
click to toggle source
# File lib/tracco/cli.rb, line 147 def template_files local_templates = Dir.glob("config/*.template.yml") if local_templates.empty? templates_from_gem else local_templates end end
templates_from_gem()
click to toggle source
# File lib/tracco/cli.rb, line 156 def templates_from_gem Dir.glob("#{tracco_gem.full_gem_path}/config/*.template.yml") end
tracco_gem()
click to toggle source
# File lib/tracco/cli.rb, line 160 def tracco_gem if Gem::Specification.respond_to?(:find_by_name) Gem::Specification.find_by_name('tracco') else Gem.searcher.find('tracco') end end