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)


42
43
44
45
# File 'lib/flydata/helpers.rb', line 42

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

.env_modeObject



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

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

.env_suffixObject



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

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

.flydata_api_host_fileObject



71
72
73
# File 'lib/flydata/helpers.rb', line 71

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

.flydata_conf_fileObject



75
76
77
# File 'lib/flydata/helpers.rb', line 75

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

.format_menu_list(menu_list) ⇒ Object

format text



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/flydata/helpers.rb', line 56

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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/flydata/helpers.rb', line 15

def print_usage
  puts '-' * 64
  puts <<-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
  puts '-' * 64
end

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

Retry the given block if exception happens



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/flydata/helpers.rb', line 80

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



38
39
40
# File 'lib/flydata/helpers.rb', line 38

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