Module: Flydata::Helpers

Included in:
ApiClient, Cli, Command::Setup, Command::Sync, Credentials
Defined in:
lib/flydata/helpers.rb

Constant Summary collapse

@@development_mode =
nil

Class Method Summary collapse

Class Method Details

.development?Boolean

Returns:

  • (Boolean)


51
52
53
54
# File 'lib/flydata/helpers.rb', line 51

def development?
  return @@development_mode unless @@development_mode.nil?
  @@development_mode = !!(File.open(flydata_conf_file).first.strip.end_with?('dev'))
end

.env_modeObject



56
57
58
# File 'lib/flydata/helpers.rb', line 56

def env_mode
  development? ? 'dev' : ''
end

.env_suffixObject



60
61
62
# File 'lib/flydata/helpers.rb', line 60

def env_suffix
  development? ? '_dev' : ''
end

.flydata_api_host_fileObject



80
81
82
# File 'lib/flydata/helpers.rb', line 80

def flydata_api_host_file
  File.join(FLYDATA_HOME, 'flydata_api_host')
end

.flydata_conf_fileObject



84
85
86
# File 'lib/flydata/helpers.rb', line 84

def flydata_conf_file
  File.join(FLYDATA_HOME, 'flydata.conf')
end

.format_menu_list(menu_list) ⇒ Object

format text



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

def format_menu_list(menu_list)
  max_length_list = menu_list.inject(Array.new(menu_list.first.size, 0)) do |ml, menu|
    0.upto(menu.size - 1) do |i|
      ml[i] = menu[i].length if ml[i] < menu[i].length
    end
    ml
  end

  menu_list = menu_list.collect do |menu|
    0.upto(menu.size - 1).inject("") do |str, i|
      str = "#{str}#{menu[i].ljust(max_length_list[i] + 1, ' ')}"
    end
  end
end

.parse_command(cmd) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/flydata/helpers.rb', line 5

def parse_command(cmd)
  klass = Flydata::Command::Base
  method = cmd
  if cmd.include?(':')
    class_name, method = cmd.split(':')
    klass = to_command_class(class_name)
  end
  [klass, method]
end


15
16
17
# File 'lib/flydata/helpers.rb', line 15

def print_usage
  puts usage_text
end

.retry_on(exception = StandardError, try_count = 3, interval = 1.0) ⇒ Object

Retry the given block if exception happens



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/flydata/helpers.rb', line 89

def retry_on(exception = StandardError, try_count = 3, interval = 1.0)
  count = 0
  begin
    count += 1
    yield
  rescue exception
    if count < try_count
      sleep interval
      interval *= 2
      retry
    else
      raise
    end
  end
end

.to_command_class(class_name) ⇒ Object



47
48
49
# File 'lib/flydata/helpers.rb', line 47

def to_command_class(class_name)
  eval("Flydata::Command::#{class_name.camelcase}")
end

.usage_textObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/flydata/helpers.rb', line 19

def usage_text
  text = ""
  text += '-' * 64
  text += "\n"
  text += <<-EOM
Usage: flydata COMMAND
  setup                    # setup initially
  start                    # start flydata process
  stop                     # stop flydata process
  restart                  # restart flydata process
  status                   # check flydata process
  conf                     # show configuration
  sync                     # initial sync(only for mysql database)

If you encountered login or any other errors during setup,
please setup flydata again by following commands.
   source ~/.bashrc
   flydata setup

You can check the logs of sender(flydata) process.
   Log path: #{File.join(FLYDATA_HOME, 'flydata.log')}
  EOM
  text += "\n"
  text += '-' * 64
  text += "\n"
  text
end