```ruby
require 'pivotal-tracker'

# Usage: ruby pivo.rb print_stories API_TOKEN PROJECT_ID

class Pivo
  attr_reader :project

  def initialize(token, project_id)
    PivotalTracker::Client.use_ssl = true
    PivotalTracker::Client.token = token
    @project = PivotalTracker::Project.find(project_id)
  end

  def print_stories
    project.stories.all.each do |story|
      puts "  [##{story.id}] - {#{story.current_state}} #{story.name} {#{story.owned_by}}"
    end
  end
end

pivo = Pivo.new(ARGV[1], ARGV[2])
case ARGV[0]
when 'print_stories'
  pivo.print_stories
end
```

Define operations available for a story
user
```ruby
require 'pivotal-tracker'

# Usage: ruby pivo.rb print_stories API_TOKEN PROJECT_ID

class Pivo
  attr_reader :project

  def initialize(token, project_id)
    PivotalTracker::Client.use_ssl = true
    PivotalTracker::Client.token = token
    @project = PivotalTracker::Project.find(project_id)
  end

  def print_stories
    project.stories.all.each do |story|
      puts "  [##{story.id}] - {#{story.current_state}} #{story.name} {#{story.owned_by}}"
    end
  end

  %w(start finish deliver accept reject).each do |operation|
    define_method(operation) do |story_id|
      find(story_id).update(current_state: "#{operation}ed")
    end
  end

  private

  def find(story_id)
    @project.stories.find(story_id)
  end
end

pivo = Pivo.new(ARGV[1], ARGV[2])
case ARGV[0]
when 'print_stories'
  pivo.print_stories
end
```
assistant