Class: Birdwatcher::Commands::Schema

Inherits:
Birdwatcher::Command show all
Defined in:
lib/birdwatcher/commands/schema.rb

Constant Summary

Constants inherited from Birdwatcher::Command

Birdwatcher::Command::ARGUMENT_SEPARATOR

Constants included from Birdwatcher::Concerns::Concurrency

Birdwatcher::Concerns::Concurrency::DEFAULT_THREAD_POOL_SIZE

Constants included from Birdwatcher::Concerns::Core

Birdwatcher::Concerns::Core::DATA_DIRECTORY

Instance Attribute Summary

Attributes inherited from Birdwatcher::Command

#arguments

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Birdwatcher::Command

auto_completion, auto_completion_strings, descendants, #execute, has_name?, meta, meta=

Methods included from Birdwatcher::Concerns::Concurrency

included, #thread_pool

Methods included from Birdwatcher::Concerns::Persistence

included, #save_status, #save_user

Methods included from Birdwatcher::Concerns::Presentation

included, #make_status_summary_output, #make_url_summary_output, #make_user_details_output, #make_user_summary_output, #output_status_summary, #output_user_details, #output_user_summary, #page_text

Methods included from Birdwatcher::Concerns::Outputting

#confirm, #error, #fatal, included, #info, #line_separator, #newline, #output, #output_formatted, #task, #warn

Methods included from Birdwatcher::Concerns::Util

#escape_html, #excerpt, included, #parse_time, #pluralize, #strip_control_characters, #strip_html, #suppress_output, #suppress_warnings, #time_ago_in_words, #unescape_html

Methods included from Birdwatcher::Concerns::Core

#console, #current_workspace, #current_workspace=, #database, included, #klout_client, #read_data_file, #twitter_client

Class Method Details

.detailed_usageObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/birdwatcher/commands/schema.rb', line 10

def self.detailed_usage
<<-USAGE
The #{'schema'.bold} command can be used to get schema information on tables in
the database.

#{'USAGE:'.bold}

#{'List all available tables:'.bold}
  schema

#{'See columns, indexes and foreign keys on a table:'.bold}
  schema statuses
USAGE
end

Instance Method Details

#runObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/birdwatcher/commands/schema.rb', line 25

def run
  if !arguments?
    tables = database.tables.sort
    output_available_tables(tables)
    return
  end
  table  = arguments.first.strip
  tables = database.tables.sort.map(&:to_s)
  if !tables.include?(table)
    error("Unknown table: #{table.bold}")
    newline
    output_available_tables(tables)
    return false
  end
  schema       = database.schema(table.to_sym)
  indexes      = database.indexes(table.to_sym)
  foreign_keys = database.foreign_key_list(table.to_sym)
  info("Schema information for table #{table.bold}:")
  newline
  output_schema_table(schema)
  newline
  info("Indexes on table #{table.bold}:")
  newline
  output_index_table(indexes)
  newline
  info("Foreign keys on table #{table.bold}:")
  newline
  output_foreign_key_table(foreign_keys)
  newline
end