Class: Birdwatcher::Commands::Set

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

Constant Summary collapse

TRUTHY_VALUES =
%w(1 true yes on).freeze
FALSY_VALUES =
%w(0 false no off).freeze

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

Instance Method Summary collapse

Methods inherited from Birdwatcher::Command

auto_completion, auto_completion_strings, descendants, detailed_usage, #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

Instance Method Details

#runObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/birdwatcher/commands/set.rb', line 13

def run
  if arguments.count < 2
    error("You must provide an option name and value")
    return false
  end

  if !current_module
    error("No module loaded")
    return false
  end

  option, value = arguments.first.upcase, arguments[1..-1].join(" ")
  if !current_module.meta[:options].keys.include?(option)
    error("Unknown option: #{option.bold}")
    return false
  end

  if current_module.meta[:options][option][:boolean]
    if truthy?(value)
      value = true
    elsif falsy?(value)
      value = false
    end
  end

  current_module.meta[:options][option][:value] = value
end