siba 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/README.md +3 -3
  2. data/Rakefile +6 -6
  3. data/lib/siba/backup.rb +2 -2
  4. data/lib/siba/console.rb +13 -13
  5. data/lib/siba/generator.rb +4 -5
  6. data/lib/siba/helpers/file_helper.rb +6 -6
  7. data/lib/siba/helpers/password_strength.rb +5 -5
  8. data/lib/siba/helpers/security_helper.rb +9 -9
  9. data/lib/siba/helpers/test/extend_test.rb +7 -7
  10. data/lib/siba/helpers/test/helper.rb +3 -3
  11. data/lib/siba/logger_plug.rb +1 -1
  12. data/lib/siba/plugins/archive/tar/archive.rb +8 -8
  13. data/lib/siba/plugins/archive/tar/init.rb +3 -3
  14. data/lib/siba/plugins/destination/dir/dest_dir.rb +7 -7
  15. data/lib/siba/plugins/destination/dir/init.rb +2 -2
  16. data/lib/siba/plugins/encryption/gpg/encryption.rb +10 -10
  17. data/lib/siba/plugins/encryption/gpg/init.rb +1 -1
  18. data/lib/siba/plugins/installed_plugins.rb +10 -6
  19. data/lib/siba/plugins/plugin_loader.rb +6 -5
  20. data/lib/siba/plugins/source/files/files.rb +7 -7
  21. data/lib/siba/plugins/source/files/init.rb +2 -2
  22. data/lib/siba/restore.rb +5 -5
  23. data/lib/siba/scaffold.rb +17 -17
  24. data/lib/siba/siba_check.rb +3 -3
  25. data/lib/siba/siba_file.rb +6 -6
  26. data/lib/siba/siba_logger.rb +11 -11
  27. data/lib/siba/tasks/siba_task.rb +1 -1
  28. data/lib/siba/tasks/siba_tasks.rb +7 -7
  29. data/lib/siba/test_files.rb +4 -4
  30. data/lib/siba/tmp_dir.rb +4 -4
  31. data/lib/siba/version.rb +1 -1
  32. data/scaffolds/archive.rb +3 -3
  33. data/scaffolds/destination.rb +4 -4
  34. data/scaffolds/encryption.rb +3 -3
  35. data/scaffolds/project/siba-c6y-demo.gemspec +2 -2
  36. data/scaffolds/project/test/helper/require_integration.rb +1 -1
  37. data/scaffolds/project/test/integration/i9n_init.rb +4 -4
  38. data/scaffolds/project/test/unit/test_init.rb +8 -8
  39. data/scaffolds/shared/examples.rb +4 -4
  40. data/scaffolds/source.rb +4 -4
  41. data/siba.gemspec +1 -1
  42. data/test/integration/helpers/i9n_file_helper.rb +1 -1
  43. data/test/integration/i9n_backup.rb +1 -1
  44. data/test/integration/i9n_scaffold.rb +1 -1
  45. data/test/integration/i9n_test_unicode_files.rb +1 -1
  46. data/test/integration/i9n_tmp_dir.rb +2 -2
  47. data/test/integration/plugins/destination/dir/i9n_dest_dir.rb +1 -1
  48. data/test/integration/plugins/encryption/gpg/i9n_encryption.rb +4 -4
  49. data/test/integration/plugins/source/files/i9n_files.rb +6 -6
  50. data/test/integration/tasks/i9n_siba_tasks.rb +2 -2
  51. data/test/unit/helpers/test_encoding_helper.rb +1 -1
  52. data/test/unit/helpers/test_gem_helper.rb +1 -1
  53. data/test/unit/helpers/test_security_helper.rb +1 -1
  54. data/test/unit/helpers/test_string_helper.rb +1 -1
  55. data/test/unit/plugins/archive/tar/test_archive.rb +2 -2
  56. data/test/unit/plugins/archive/tar/test_init.rb +2 -2
  57. data/test/unit/plugins/destination/dir/test_dest_dir.rb +1 -1
  58. data/test/unit/plugins/destination/dir/test_init.rb +1 -1
  59. data/test/unit/plugins/encryption/gpg/test_encryption.rb +2 -14
  60. data/test/unit/plugins/encryption/gpg/test_init.rb +3 -3
  61. data/test/unit/plugins/source/files/test_files.rb +2 -2
  62. data/test/unit/plugins/source/files/test_init.rb +3 -3
  63. data/test/unit/plugins/source/files/test_path_match.rb +6 -6
  64. data/test/unit/plugins/test_installed_plugins.rb +4 -0
  65. data/test/unit/plugins/test_plugin_loader.rb +6 -3
  66. data/test/unit/tasks/test_siba_task.rb +2 -2
  67. data/test/unit/tasks/test_siba_tasks.rb +3 -3
  68. data/test/unit/test_backup.rb +2 -2
  69. data/test/unit/test_console.rb +5 -5
  70. data/test/unit/test_generator.rb +1 -1
  71. data/test/unit/test_globals.rb +1 -1
  72. data/test/unit/test_log_message.rb +1 -1
  73. data/test/unit/test_logger_plug.rb +1 -1
  74. data/test/unit/test_options_backup.rb +1 -1
  75. data/test/unit/test_options_loader.rb +27 -39
  76. data/test/unit/test_password_strength.rb +14 -14
  77. data/test/unit/test_restore.rb +2 -2
  78. data/test/unit/test_siba_logger.rb +18 -18
  79. data/test/unit/test_tmp_dir.rb +1 -1
  80. metadata +5 -5
@@ -44,7 +44,7 @@ module Siba
44
44
  raise Siba::CheckError, "'#{name}' option should be of [Hash] type" unless obj.is_a? Hash
45
45
  obj
46
46
  end
47
-
47
+
48
48
  # Tries to conver value to string
49
49
  def try_to_s(value, key_name)
50
50
  raise Siba::CheckError, "'#{key_name}' option should be string" if [Array, Hash].any?{|a| value.is_a?(a)}
@@ -65,8 +65,8 @@ module Siba
65
65
  if item_type == String
66
66
  value = try_to_s value, key_name
67
67
  else
68
- item_type = [item_type] unless item_type.is_a?(Array)
69
- raise Siba::CheckError, "'#{key_name}' option should be of #{item_type.to_s} type" if item_type.none? {|i| value.is_a? i }
68
+ item_type = [item_type] unless item_type.is_a?(Array)
69
+ raise Siba::CheckError, "'#{key_name}' option should be of #{item_type.to_s} type" if item_type.none? {|i| value.is_a? i }
70
70
  end
71
71
  value
72
72
  end
@@ -24,11 +24,11 @@ module Siba
24
24
  return File, meth.to_s.gsub(FILE_REGEXP, "")
25
25
  end
26
26
  end
27
-
27
+
28
28
  def method_missing(meth, *args, &block)
29
29
  file_class, class_meth = SibaFile.get_file_class meth
30
30
  if file_class
31
- file_class.send(class_meth, *args, &block)
31
+ file_class.send(class_meth, *args, &block)
32
32
  else
33
33
  super
34
34
  end
@@ -56,10 +56,10 @@ module Siba
56
56
  rescue Exception => ex
57
57
  fail_message ||= "Failed to run the command: #{command}"
58
58
  raise Siba::Error, "#{fail_message}
59
- #{ex.message}"
59
+ #{ex.message}"
60
60
  end
61
61
 
62
- # Runs the shell command.
62
+ # Runs the shell command.
63
63
  # Works the same way as Kernel.system method but without showing the output.
64
64
  # Returns true if it was successfull.
65
65
  def shell_ok?(command)
@@ -70,7 +70,7 @@ module Siba
70
70
  return false
71
71
  end
72
72
  end
73
-
73
+
74
74
  # Used to inject "siba_file" to classes that include this module
75
75
  module FilePlug
76
76
  def siba_file
@@ -78,7 +78,7 @@ module Siba
78
78
  end
79
79
 
80
80
  def self.siba_file
81
- @siba_file ||= SibaFile.new
81
+ @siba_file ||= SibaFile.new
82
82
  end
83
83
 
84
84
  # It is used in test to insert mock SibaFile object
@@ -25,10 +25,10 @@ module Siba
25
25
  return 0 if SibaLogger.messages.nil?
26
26
  return SibaLogger.messages.size if severity.nil?
27
27
  severity_i = SibaLogger.level_to_i severity
28
- SibaLogger.messages.count do |i|
29
- if exact_level
30
- i.level == severity_i
31
- else
28
+ SibaLogger.messages.count do |i|
29
+ if exact_level
30
+ i.level == severity_i
31
+ else
32
32
  i.level >= severity_i
33
33
  end
34
34
  end
@@ -38,15 +38,15 @@ module Siba
38
38
  def count_messages(msg, severity=nil, exact_level=true)
39
39
  return 0 if SibaLogger.messages.nil?
40
40
  severity_i = SibaLogger.level_to_i severity unless severity.nil?
41
- SibaLogger.messages.count do |i|
41
+ SibaLogger.messages.count do |i|
42
42
  match_level = true
43
43
  if severity_i
44
- if exact_level
44
+ if exact_level
45
45
  match_level = i.level == severity_i
46
- else
46
+ else
47
47
  match_level = i.level >= severity_i
48
48
  end
49
- end
49
+ end
50
50
  if match_level
51
51
  !((i.msg =~ /#{msg}/).nil?)
52
52
  else
@@ -68,13 +68,13 @@ module Siba
68
68
  @loggers << Logger.new(@strlog)
69
69
 
70
70
  unless SibaLogger.quiet
71
- @stdout_log = Logger.new(STDOUT)
71
+ @stdout_log = Logger.new(STDOUT)
72
72
  @loggers << stdout_log
73
73
  end
74
74
 
75
75
  unless path_to_log_file.nil? || SibaLogger.no_log
76
76
  @file = File.open(path_to_log_file, "a:utf-8")
77
- @file_log = Logger.new(file)
77
+ @file_log = Logger.new(file)
78
78
  @loggers << file_log
79
79
  end
80
80
 
@@ -127,7 +127,7 @@ module Siba
127
127
  def log_exception(exception, log_only_backtrace=false)
128
128
  log('debug',exception.message) unless log_only_backtrace
129
129
  unless exception.backtrace.nil?
130
- log('debug',"\n--- stack trace ---\n#{exception.backtrace.join("\n")}\n--- stack trace ---")
130
+ log('debug',"\n--- stack trace ---\n#{exception.backtrace.join("\n")}\n--- stack trace ---")
131
131
  end
132
132
  end
133
133
 
@@ -35,7 +35,7 @@ module Siba
35
35
  def load(options)
36
36
  @options = options
37
37
  @type = Siba::SibaCheck.options_string(@options, "type")
38
- @type.downcase!
38
+ @type.downcase!
39
39
  @plugin = Siba::PluginLoader.loader.load(category, type, options)
40
40
  end
41
41
  end
@@ -39,7 +39,7 @@ module Siba
39
39
  end
40
40
  path_to_backup = File.join encryption_dir, name_of_encrypted_file
41
41
  unless siba_file.file_file? path_to_backup
42
- raise Siba::Error, "Failed to encrypt backup: #{path_to_backup}"
42
+ raise Siba::Error, "Failed to encrypt backup: #{path_to_backup}"
43
43
  end
44
44
 
45
45
  @tasks["destination"].backup path_to_backup
@@ -53,7 +53,7 @@ module Siba
53
53
  unless siba_file.file_file? path_to_backup
54
54
  raise Siba::Error, "Failed to get backup from destination: #{backup_file_name}"
55
55
  end
56
-
56
+
57
57
  archive_file_name = @tasks["encryption"].restore path_to_backup, encryption_dir
58
58
  path_to_archive = File.join encryption_dir, archive_file_name
59
59
  unless siba_file.file_file? path_to_archive
@@ -64,7 +64,7 @@ module Siba
64
64
  if Siba::FileHelper.dir_empty? source_dir
65
65
  raise Siba::Error, "Failed to extract archive: #{path_to_archive}"
66
66
  end
67
-
67
+
68
68
  @tasks["source"] = OptionsBackup.load_source_from_backup source_dir if @tasks["source"].nil?
69
69
  @tasks["source"].restore source_dir
70
70
  end
@@ -76,7 +76,7 @@ module Siba
76
76
 
77
77
  def self.backup_name(now=nil)
78
78
  if Siba::StringHelper.nil_or_empty Siba.backup_name
79
- raise Siba::Error, "Backup task name is not specified"
79
+ raise Siba::Error, "Backup task name is not specified"
80
80
  end
81
81
  "#{Siba.backup_name}-#{SibaTasks.backup_name_suffix(now)}"
82
82
  end
@@ -96,7 +96,7 @@ module Siba
96
96
  def encryption_dir
97
97
  @encryption_dir ||= TestFiles::mkdir_in_tmp_dir("enc").freeze
98
98
  end
99
-
99
+
100
100
  def destination_dir
101
101
  @destination_dir ||= TestFiles::mkdir_in_tmp_dir("dest").freeze
102
102
  end
@@ -106,7 +106,7 @@ module Siba
106
106
 
107
107
  # Monthly backup on the 1st day of each month
108
108
  # "month-01" through "month-12"
109
- return "month-#{"%02d" % now.month}" if now.day == 1
109
+ return "month-#{"%02d" % now.month}" if now.day == 1
110
110
 
111
111
  # Weekly backup on Sunday
112
112
  # "week-1-sun" through "week-5-sun"
@@ -114,7 +114,7 @@ module Siba
114
114
 
115
115
  # Daily backup
116
116
  # "day-2-mon" through "day-7-sat"
117
- "day-#{now.wday+1}-#{now.strftime("%a").downcase}"
117
+ "day-#{now.wday+1}-#{now.strftime("%a").downcase}"
118
118
  end
119
119
  end
120
120
  end
@@ -9,11 +9,11 @@ module Siba::TestFiles
9
9
 
10
10
  def test_file
11
11
  File.join test_files_dir, "a_file"
12
- end
12
+ end
13
13
 
14
14
  def test_dir
15
15
  File.join test_files_dir, "files_and_dirs"
16
- end
16
+ end
17
17
 
18
18
  def prepare_test_dir(dest_dir_name_part, tmp_dir=nil)
19
19
  tmp_dir ||= Siba.tmp_dir
@@ -22,7 +22,7 @@ module Siba::TestFiles
22
22
  siba_file.file_utils_cp_r test_dir, dest_dir
23
23
  dest_dir
24
24
  end
25
-
25
+
26
26
  def prepare_test_file(dest_file_name_part, tmp_dir=nil)
27
27
  tmp_dir ||= Siba.tmp_dir
28
28
  dest_file = File.join(tmp_dir,"#{dest_file_name_part}#{random_suffix}")
@@ -34,7 +34,7 @@ module Siba::TestFiles
34
34
  def generate_path(dest_file_name_part, tmp_dir=nil)
35
35
  tmp_dir ||= Siba.tmp_dir
36
36
  File.join(tmp_dir,"#{dest_file_name_part}#{random_suffix}")
37
- end
37
+ end
38
38
 
39
39
  def mkdir_in_tmp_dir(prefix, tmp_dir=nil)
40
40
  tmp_dir ||= Siba.tmp_dir
@@ -30,8 +30,8 @@ module Siba
30
30
  raise unless siba_file.file_directory? test_dir
31
31
  tmp_dir_obj.cleanup
32
32
  rescue Exception
33
- logger.error %q{Can not create temporary directory.
34
- Please make sure you have write permissions to the system temporary folder.
33
+ logger.error %q{Can not create temporary directory.
34
+ Please make sure you have write permissions to the system temporary folder.
35
35
  You can also specify the alternative location for temporary folder in options:
36
36
 
37
37
  settings:
@@ -51,7 +51,7 @@ settings:
51
51
  tmp_dir_from_settings = Siba.settings && Siba.settings["tmp_dir"]
52
52
  tmp_path = nil
53
53
  if tmp_dir_from_settings.nil?
54
- tmp_path = siba_file.dir_mktmpdir TmpDirPrefix
54
+ tmp_path = siba_file.dir_mktmpdir TmpDirPrefix
55
55
  else
56
56
  tmp_path = File.join(siba_file.file_expand_path(tmp_dir_from_settings),
57
57
  "#{TmpDirPrefix}#{Siba::TestFiles.random_suffix}")
@@ -61,7 +61,7 @@ settings:
61
61
  end
62
62
  end
63
63
  end
64
-
64
+
65
65
  module TmpDirPlug
66
66
  include Siba::FilePlug
67
67
  include Siba::LoggerPlug
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Siba
4
- VERSION = "0.5.6"
4
+ VERSION = "0.5.7"
5
5
  end
@@ -1,14 +1,14 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Siba::C6y
4
- module Demo
5
- class Init
4
+ module Demo
5
+ class Init
6
6
  include Siba::FilePlug
7
7
  include Siba::LoggerPlug
8
8
 
9
9
  def initialize(options)
10
10
  ## init_example.rb ##
11
- end
11
+ end
12
12
 
13
13
  # Archive the contents of sources_dir and put it to dest_dir.
14
14
  # Return the archive file name. It must start with dest_file_name
@@ -1,18 +1,18 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Siba::C6y
4
- module Demo
5
- class Init
4
+ module Demo
5
+ class Init
6
6
  include Siba::FilePlug
7
7
  include Siba::LoggerPlug
8
8
 
9
9
  def initialize(options)
10
10
  ## init_example.rb ##
11
- end
11
+ end
12
12
 
13
13
  # Put backup file (path_to_backup_file) to destination
14
14
  # No return value is expected
15
- def backup(path_to_backup_file)
15
+ def backup(path_to_backup_file)
16
16
  ## examples.rb ##
17
17
  end
18
18
 
@@ -1,14 +1,14 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Siba::C6y
4
- module Demo
5
- class Init
4
+ module Demo
5
+ class Init
6
6
  include Siba::FilePlug
7
7
  include Siba::LoggerPlug
8
8
 
9
9
  def initialize(options)
10
10
  ## init_example.rb ##
11
- end
11
+ end
12
12
 
13
13
  # Encrypt backup archive file (path_to_archive) and put it to dest_dir.
14
14
  # Return the name of encrypted file. It must begin with archive name
@@ -16,10 +16,10 @@ Gem::Specification.new do |s|
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
-
19
+
20
20
  s.add_runtime_dependency 'siba', '~>siba_version'
21
21
 
22
- s.add_development_dependency 'minitest', '~>2.10'
22
+ s.add_development_dependency 'minitest', '~>3.0'
23
23
  s.add_development_dependency 'rake', '~>0.9'
24
24
  s.add_development_dependency 'guard-minitest', '~>0.4'
25
25
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  require 'siba/helpers/test/require'
4
- SibaTest.init_integration
4
+ SibaTest.init_integration
5
5
 
@@ -8,11 +8,11 @@ require 'siba-c6y-demo/init'
8
8
  describe Siba::C6y::Demo::Init do
9
9
  it "should run integration test" do
10
10
  # All file operations will work normally in integration tests
11
- # You can use the following helper methods
12
-
11
+ # You can use the following helper methods
12
+
13
13
  # Get path to test tmp dir (will be cleaned automatically after each test)
14
14
  SibaTest.tmp_dir
15
-
15
+
16
16
  # Make a sub dir with a random name in a test tmp dir
17
17
  tmp_sub_dir = mkdir_in_tmp_dir "prefix"
18
18
 
@@ -27,7 +27,7 @@ describe Siba::C6y::Demo::Init do
27
27
  dirs_same? path_to_test_dir, path_to_test_dir2
28
28
 
29
29
  # Read test yml and replace values (see siba/test/integration/yml/valid.yml)
30
- # path_to_options = prepare_options path_to_yml,
30
+ # path_to_options = prepare_options path_to_yml,
31
31
  # { src_dir: path_to_test_dir,
32
32
  # src_file: path_to_test_file,
33
33
  # dest_dir: path_to_test_dir2 }
@@ -7,31 +7,31 @@ require 'siba-c6y-demo/init'
7
7
  # 'rake' command runs unit tests
8
8
  # 'guard' command will run unit tests automatically
9
9
  describe Siba::C6y::Demo do
10
- before do
10
+ before do
11
11
  @yml_path = File.expand_path('../yml', __FILE__)
12
12
  end
13
13
 
14
14
  it "should load plugin" do
15
15
  # helper to load options from YAML from @yml_path dir
16
- options_hash = load_options "valid"
16
+ options_hash = load_options "valid"
17
17
 
18
18
  plugin = Siba::C6y::Demo::Init.new options_hash
19
19
  plugin.must_be_instance_of Siba::C6y::Demo::Init
20
20
  end
21
21
 
22
- it "siba should load plugin" do
22
+ it "siba should load plugin" do
23
23
  # helper to load the plugin by siba (build and install demo gem to make it work)
24
- # @plugin_category = "c6y"
25
- # @plugin_type = "demo"
26
- # plugin = create_plugin "valid"
24
+ # @plugin_category = "c6y"
25
+ # @plugin_type = "demo"
26
+ # plugin = create_plugin "valid"
27
27
  end
28
-
28
+
29
29
  it "should check log" do
30
30
  # ... code
31
31
  # must_log "info"
32
32
  # wont_log "warn"
33
33
  # wont_log_from "warn"
34
- # show_log
34
+ # show_log
35
35
  end
36
36
 
37
37
  it "should verify file operations" do
@@ -10,7 +10,7 @@
10
10
 
11
11
  # -- File operations --
12
12
  # "siba_file" object is available after including Siba::FilePlug
13
- # You can use it for file operations
13
+ # You can use it for file operations
14
14
  # instead of calling Dir, File, FileUtils directly.
15
15
  # It mocks all methods of these classes in unit tests
16
16
  # but runs them normally and in integration tests.
@@ -35,11 +35,11 @@
35
35
  tmp_dir = Siba.tmp_dir
36
36
 
37
37
  # Create a sub-dir with a random name in the temp dir
38
- path_to_tmp_dir = Siba::TestFiles.mkdir_in_tmp_dir "you_dir_prefix"
38
+ path_to_tmp_dir = Siba::TestFiles.mkdir_in_tmp_dir "you_dir_prefix"
39
39
 
40
- # Note: Siba.tmp_dir will be removed automatically,
40
+ # Note: Siba.tmp_dir will be removed automatically,
41
41
  # so there is no need to clean anything.
42
-
42
+
43
43
  # Some Siba::FileHelper methods
44
44
  files_and_dirs = Siba::FileHelper.entries current_dir
45
45
  my_file = File.join tmp_dir, "myfile"
@@ -1,14 +1,14 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Siba::C6y
4
- module Demo
5
- class Init
4
+ module Demo
5
+ class Init
6
6
  include Siba::FilePlug
7
7
  include Siba::LoggerPlug
8
8
 
9
9
  def initialize(options)
10
10
  ## init_example.rb ##
11
- end
11
+ end
12
12
 
13
13
  # Collect source files and put them into dest_dir
14
14
  # No return value is expected
@@ -16,7 +16,7 @@ module Siba::C6y
16
16
  ## examples.rb ##
17
17
  end
18
18
 
19
- # Restore source files from_dir
19
+ # Restore source files from_dir
20
20
  # No return value is expected
21
21
  def restore(from_dir)
22
22
  end