class Nutrella::Command

This is the top-level class for the gem.

Attributes

cache_filename[R]
configuration_filename[R]

Public Class Methods

new(configuration_directory, board_name) click to toggle source
# File lib/nutrella/command.rb, line 10
def initialize(configuration_directory, board_name)
  @board_name = board_name
  @cache_filename = File.join(configuration_directory, ".nutrella.cache.yml")
  @configuration_filename = File.join(configuration_directory, ".nutrella.yml")
end

Public Instance Methods

run() click to toggle source
# File lib/nutrella/command.rb, line 16
def run
  launch(board_url)
ensure
  logger.close
end

Private Instance Methods

board_name_resolver() click to toggle source
# File lib/nutrella/command.rb, line 68
def board_name_resolver
  Nutrella::BoardNameResolver.new(url_cache, configuration_values.fetch(:cache_first, ""))
end
board_url() click to toggle source
# File lib/nutrella/command.rb, line 32
def board_url
  url = enable_trello_app? ? trello_url(cached_url) : cached_url

  logger.info { "Board URL: '#{url}'" }

  url
end
cache_capacity() click to toggle source
# File lib/nutrella/command.rb, line 40
def cache_capacity
  @_cache_capacity ||= configuration_values.fetch(:cache_capacity)
end
cached_url() click to toggle source
# File lib/nutrella/command.rb, line 44
def cached_url
  @_cached_url ||= board_name_resolver.resolve(@board_name) { task_board.lookup_or_create(@board_name).url }
end
configuration_values() click to toggle source
# File lib/nutrella/command.rb, line 48
def configuration_values
  @_configuration_values ||= Nutrella::Configuration.values(configuration_filename)
end
enable_trello_app?() click to toggle source
# File lib/nutrella/command.rb, line 52
def enable_trello_app?
  configuration_values.fetch(:enable_trello_app)
end
launch(url) click to toggle source
# File lib/nutrella/command.rb, line 24
def launch(url)
  launch_command = configuration_values.fetch(:launch_command).gsub("$url$", url)

  logger.info { "Launch command: '#{launch_command}'" }

  system(launch_command)
end
log_filename() click to toggle source
# File lib/nutrella/command.rb, line 60
def log_filename
  configuration_values.fetch(:enable_logging) ? "nutrella.log" : "/dev/null"
end
logger() click to toggle source
# File lib/nutrella/command.rb, line 56
def logger
  @_logger ||= Logger.new(log_filename)
end
task_board() click to toggle source
# File lib/nutrella/command.rb, line 72
def task_board
  Nutrella::TaskBoard.new(configuration_values)
end
trello_url(http_url) click to toggle source
# File lib/nutrella/command.rb, line 64
def trello_url(http_url)
  http_url.gsub(/^http.?:/, "trello:")
end
url_cache() click to toggle source
# File lib/nutrella/command.rb, line 76
def url_cache
  Nutrella::Cache.new(cache_filename, cache_capacity)
end