Sha256: 40f4f40fb6abc9dc712f958f4f6be3ea7e3561551e99ff6a88eabcefbaf26c9c
Contents?: true
Size: 848 Bytes
Versions: 2
Compression:
Stored size: 848 Bytes
Contents
require 'commands/map' require 'commands/bug' require 'commands/card' require 'commands/chore' require 'commands/feature' module Commands class Start COMMAND_MAP = Map.new.merge({ "bug" => Commands::Bug, "chore" => Commands::Chore, "feature" => Commands::Feature, /^\d+$/ => Commands::Card }) class << self def for(*args) identifier = args.shift construct_instance_for(identifier, args) || raise(ArgumentError, "Unknown card identifier given: #{identifier}") end private def construct_instance_for(identifier, args) if klass=COMMAND_MAP[identifier] instance = klass.new(*args) instance.story_id = identifier if instance.respond_to?(:story_id=) instance end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
git-pivotal-tracker-0.9.1 | lib/commands/start.rb |
git-pivotal-tracker-0.9.0 | lib/commands/start.rb |