Class: Flydata::Command::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/flydata/command/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = Slop.new) ⇒ Base

Returns a new instance of Base.



4
5
6
7
# File 'lib/flydata/command/base.rb', line 4

def initialize(options = Slop.new)
  @api_client = ApiClient.instance
  @opts = options
end

Instance Attribute Details

#optsObject (readonly)

Returns the value of attribute opts.



8
9
10
# File 'lib/flydata/command/base.rb', line 8

def opts
  @opts
end

Instance Method Details

#ask_input_table_nameObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/flydata/command/base.rb', line 64

def ask_input_table_name
  input = nil
  loop do
    say("Input a table name.")
    say(">> ")
    input = gets.strip
    if input =~ /^[a-zA-Z0-9_]+$/
      break
    else
      puts "Please enter a valid table name."
    end
  end
  input
end

#ask_yes_no(message, default_yes = true) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/flydata/command/base.rb', line 36

def ask_yes_no(message, default_yes=true)
  suffix = default_yes ? "(Y/n)" : "(y/n)"
  loop do
    ans = ask("#{message} #{suffix}:  ")
    return true if default_yes and ans == ''
    if ans.size > 0
      case ans[0].downcase
      when 'y'; return true
      when 'n'; return false
      end
    end
    say(" ! Please answer y[es] or n[o]")
    newline
  end
end

#choose_one(message, prompt, menu_list, value_list = []) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/flydata/command/base.rb', line 51

def choose_one(message, prompt, menu_list, value_list=[])
  choice = nil
  value_list = menu_list unless menu_list.size == value_list.size
  say(message) if message
  choose do |menu|
    menu.index = :number
    menu.index_suffix = ") "
    menu.select_by = :index
    menu.prompt = prompt ? prompt : ">> "
    menu.choices(*menu_list) {|item| choice = value_list[menu_list.index(item)]}
  end
  choice
end

#flydataObject



9
# File 'lib/flydata/command/base.rb', line 9

def flydata; @api_client end

#newlineObject

print console



32
# File 'lib/flydata/command/base.rb', line 32

def newline; puts end

#register_crontabObject



24
25
26
27
28
29
# File 'lib/flydata/command/base.rb', line 24

def register_crontab
  data_entries = retrieve_data_entries
  if data_entries.any?{|e| e['log_deletion']}
    Flydata::Command::Crontab.new.run
  end
end

#retrieve_data_entriesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/flydata/command/base.rb', line 11

def retrieve_data_entries
  data_entries = flydata.get('/data_entries')
  unless flydata.response.code == 200 and data_entries
    raise "Failed to retrieve data_entries"
  end
  data_entries.collect do |de|
    if Flydata::Preference::DataEntryPreference.conf_exists?(de)
      Flydata::Preference::DataEntryPreference.load_conf(de)
    else
      de
    end
  end
end

#separator(str = "=") ⇒ Object



33
34
35
# File 'lib/flydata/command/base.rb', line 33

def separator(str="=")
  puts str * 64
end