siba 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. data/.gitignore +7 -0
  2. data/Gemfile +4 -0
  3. data/Guardfile +18 -0
  4. data/LICENSE +22 -0
  5. data/README.md +47 -0
  6. data/Rakefile +27 -0
  7. data/bin/siba +5 -0
  8. data/lib/siba.rb +27 -0
  9. data/lib/siba/backup.rb +31 -0
  10. data/lib/siba/console.rb +196 -0
  11. data/lib/siba/errors.rb +8 -0
  12. data/lib/siba/generator.rb +115 -0
  13. data/lib/siba/globals.rb +19 -0
  14. data/lib/siba/helpers/encoding_helper.rb +38 -0
  15. data/lib/siba/helpers/file_helper.rb +89 -0
  16. data/lib/siba/helpers/gem_helper.rb +22 -0
  17. data/lib/siba/helpers/password_strength.rb +94 -0
  18. data/lib/siba/helpers/security_helper.rb +30 -0
  19. data/lib/siba/helpers/string_helper.rb +32 -0
  20. data/lib/siba/helpers/test/extend_test.rb +114 -0
  21. data/lib/siba/helpers/test/file_mock.rb +38 -0
  22. data/lib/siba/helpers/test/helper.rb +55 -0
  23. data/lib/siba/helpers/test/kernel_mock.rb +44 -0
  24. data/lib/siba/helpers/test/removable_constants.rb +18 -0
  25. data/lib/siba/helpers/test/require.rb +12 -0
  26. data/lib/siba/logger_plug.rb +36 -0
  27. data/lib/siba/options_backup.rb +37 -0
  28. data/lib/siba/options_loader.rb +38 -0
  29. data/lib/siba/plugins/archive/tar/archive.rb +117 -0
  30. data/lib/siba/plugins/archive/tar/init.rb +38 -0
  31. data/lib/siba/plugins/archive/tar/options.yml +1 -0
  32. data/lib/siba/plugins/destination/dir/dest_dir.rb +77 -0
  33. data/lib/siba/plugins/destination/dir/init.rb +31 -0
  34. data/lib/siba/plugins/destination/dir/options.yml +2 -0
  35. data/lib/siba/plugins/encryption/gpg/encryption.rb +140 -0
  36. data/lib/siba/plugins/encryption/gpg/init.rb +45 -0
  37. data/lib/siba/plugins/encryption/gpg/options.yml +2 -0
  38. data/lib/siba/plugins/installed_plugins.rb +77 -0
  39. data/lib/siba/plugins/plugin_loader.rb +100 -0
  40. data/lib/siba/plugins/plugins.rb +57 -0
  41. data/lib/siba/plugins/plugins.yml +9 -0
  42. data/lib/siba/plugins/source/files/files.rb +166 -0
  43. data/lib/siba/plugins/source/files/init.rb +33 -0
  44. data/lib/siba/plugins/source/files/options.yml +11 -0
  45. data/lib/siba/restore.rb +113 -0
  46. data/lib/siba/scaffold.rb +166 -0
  47. data/lib/siba/siba_check.rb +75 -0
  48. data/lib/siba/siba_file.rb +89 -0
  49. data/lib/siba/siba_kernel.rb +37 -0
  50. data/lib/siba/siba_logger.rb +172 -0
  51. data/lib/siba/tasks/siba_task.rb +42 -0
  52. data/lib/siba/tasks/siba_tasks.rb +120 -0
  53. data/lib/siba/test_files.rb +76 -0
  54. data/lib/siba/test_files/a_file +1 -0
  55. data/lib/siba/test_files/files_and_dirs/.hidden +1 -0
  56. data/lib/siba/test_files/files_and_dirs/.hidden_dir/file10 +1 -0
  57. data/lib/siba/test_files/files_and_dirs/File With Spaces +1 -0
  58. data/lib/siba/test_files/files_and_dirs/dir1/file10 +1 -0
  59. data/lib/siba/test_files/files_and_dirs/dir1/sub-dir/file111.txt +1 -0
  60. data/lib/siba/test_files/files_and_dirs/file1 +1 -0
  61. data/lib/siba/test_files/files_and_dirs/file2.txt +1 -0
  62. data/lib/siba/tmp_dir.rb +94 -0
  63. data/lib/siba/version.rb +5 -0
  64. data/scaffolds/archive.rb +26 -0
  65. data/scaffolds/destination.rb +20 -0
  66. data/scaffolds/encryption.rb +26 -0
  67. data/scaffolds/project/.gitignore +5 -0
  68. data/scaffolds/project/Gemfile +4 -0
  69. data/scaffolds/project/Guardfile +9 -0
  70. data/scaffolds/project/LICENSE +22 -0
  71. data/scaffolds/project/README.md +33 -0
  72. data/scaffolds/project/Rakefile +28 -0
  73. data/scaffolds/project/lib/siba-c6y-demo.rb +11 -0
  74. data/scaffolds/project/lib/siba-c6y-demo/options.yml +2 -0
  75. data/scaffolds/project/lib/siba-c6y-demo/version.rb +9 -0
  76. data/scaffolds/project/siba-c6y-demo.gemspec +26 -0
  77. data/scaffolds/project/test/helper/require_integration.rb +5 -0
  78. data/scaffolds/project/test/helper/require_unit.rb +4 -0
  79. data/scaffolds/project/test/integration/i9n_init.rb +35 -0
  80. data/scaffolds/project/test/unit/test_init.rb +43 -0
  81. data/scaffolds/project/test/unit/yml/valid.yml +8 -0
  82. data/scaffolds/shared/examples.rb +47 -0
  83. data/scaffolds/shared/init_example.rb +13 -0
  84. data/scaffolds/source.rb +25 -0
  85. data/siba.gemspec +30 -0
  86. data/test/helper/require_integration.rb +4 -0
  87. data/test/helper/require_unit.rb +4 -0
  88. data/test/integration/helpers/i9n_file_helper.rb +50 -0
  89. data/test/integration/i9n_backup.rb +53 -0
  90. data/test/integration/i9n_console.rb +16 -0
  91. data/test/integration/i9n_generator.rb +29 -0
  92. data/test/integration/i9n_options_backup.rb +22 -0
  93. data/test/integration/i9n_scaffold.rb +27 -0
  94. data/test/integration/i9n_siba_file.rb +30 -0
  95. data/test/integration/i9n_test_unicode_files.rb +40 -0
  96. data/test/integration/i9n_tmp_dir.rb +44 -0
  97. data/test/integration/plugins/archive/tar/i9n_archive.rb +18 -0
  98. data/test/integration/plugins/destination/dir/i9n_dest_dir.rb +52 -0
  99. data/test/integration/plugins/encryption/gpg/i9n_encryption.rb +87 -0
  100. data/test/integration/plugins/i9n_installed_plugins.rb +13 -0
  101. data/test/integration/plugins/source/files/i9n_files.rb +146 -0
  102. data/test/integration/tasks/i9n_siba_tasks.rb +30 -0
  103. data/test/integration/yml/valid.yml +16 -0
  104. data/test/unit/helpers/test_encoding_helper.rb +17 -0
  105. data/test/unit/helpers/test_gem_helper.rb +17 -0
  106. data/test/unit/helpers/test_security_helper.rb +21 -0
  107. data/test/unit/helpers/test_string_helper.rb +35 -0
  108. data/test/unit/plugins/archive/tar/test_archive.rb +41 -0
  109. data/test/unit/plugins/archive/tar/test_init.rb +36 -0
  110. data/test/unit/plugins/archive/tar/yml/archive/check_installed.yml +2 -0
  111. data/test/unit/plugins/archive/tar/yml/init/default_compression.yml +1 -0
  112. data/test/unit/plugins/archive/tar/yml/init/invalid_compression.yml +2 -0
  113. data/test/unit/plugins/archive/tar/yml/init/valid.yml +2 -0
  114. data/test/unit/plugins/destination/dir/test_dest_dir.rb +41 -0
  115. data/test/unit/plugins/destination/dir/test_init.rb +36 -0
  116. data/test/unit/plugins/destination/dir/yml/init/valid.yml +2 -0
  117. data/test/unit/plugins/encryption/gpg/test_encryption.rb +70 -0
  118. data/test/unit/plugins/encryption/gpg/test_init.rb +47 -0
  119. data/test/unit/plugins/source/files/test_files.rb +44 -0
  120. data/test/unit/plugins/source/files/test_init.rb +48 -0
  121. data/test/unit/plugins/source/files/test_path_match.rb +140 -0
  122. data/test/unit/plugins/source/files/yml/ignore_list.yml +8 -0
  123. data/test/unit/plugins/source/files/yml/ignore_not_array.yml +5 -0
  124. data/test/unit/plugins/source/files/yml/include_not_array.yml +3 -0
  125. data/test/unit/plugins/source/files/yml/include_subdirs_false.yml +6 -0
  126. data/test/unit/plugins/source/files/yml/include_subdirs_missing.yml +5 -0
  127. data/test/unit/plugins/source/files/yml/no_ignore.yml +4 -0
  128. data/test/unit/plugins/source/files/yml/no_include.yml +1 -0
  129. data/test/unit/plugins/source/files/yml/valid.yml +9 -0
  130. data/test/unit/plugins/test_installed_plugins.rb +32 -0
  131. data/test/unit/plugins/test_plugin_loader.rb +27 -0
  132. data/test/unit/plugins/test_plugins.rb +44 -0
  133. data/test/unit/tasks/test_siba_task.rb +30 -0
  134. data/test/unit/tasks/test_siba_tasks.rb +84 -0
  135. data/test/unit/tasks/yml/task/invalid.yml +4 -0
  136. data/test/unit/tasks/yml/task/valid.yml +7 -0
  137. data/test/unit/test_backup.rb +18 -0
  138. data/test/unit/test_console.rb +166 -0
  139. data/test/unit/test_generator.rb +21 -0
  140. data/test/unit/test_globals.rb +34 -0
  141. data/test/unit/test_log_message.rb +26 -0
  142. data/test/unit/test_logger_plug.rb +49 -0
  143. data/test/unit/test_options_backup.rb +21 -0
  144. data/test/unit/test_options_loader.rb +72 -0
  145. data/test/unit/test_password_strength.rb +76 -0
  146. data/test/unit/test_restore.rb +18 -0
  147. data/test/unit/test_scaffold.rb +26 -0
  148. data/test/unit/test_siba_check.rb +118 -0
  149. data/test/unit/test_siba_logger.rb +174 -0
  150. data/test/unit/test_tmp_dir.rb +21 -0
  151. data/test/unit/yml/options_loader/array.yml +2 -0
  152. data/test/unit/yml/options_loader/empty.yml +0 -0
  153. data/test/unit/yml/options_loader/invalid.yml +4 -0
  154. data/test/unit/yml/options_loader/string.yml +1 -0
  155. data/test/unit/yml/options_loader/utf8_with_bom.yml +2 -0
  156. data/test/unit/yml/options_loader/valid.yml +12 -0
  157. data/test/unit/yml/siba_options_backup.yml +20 -0
  158. data/test/unit/yml/valid.yml +18 -0
  159. metadata +240 -0
@@ -0,0 +1,76 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba::TestFiles
4
+ class << self
5
+ include Siba::FilePlug
6
+ def test_files_dir
7
+ siba_file.file_expand_path("../test_files/", __FILE__)
8
+ end
9
+
10
+ def test_file
11
+ File.join test_files_dir, "a_file"
12
+ end
13
+
14
+ def test_dir
15
+ File.join test_files_dir, "files_and_dirs"
16
+ end
17
+
18
+ def prepare_test_dir(dest_dir_name_part, tmp_dir=nil)
19
+ tmp_dir ||= Siba.tmp_dir
20
+ dest_dir = File.join(tmp_dir,"#{dest_dir_name_part}#{random_suffix}")
21
+ siba_file.file_utils_mkpath tmp_dir unless siba_file.file_directory? tmp_dir
22
+ siba_file.file_utils_cp_r test_dir, dest_dir
23
+ dest_dir
24
+ end
25
+
26
+ def prepare_test_file(dest_file_name_part, tmp_dir=nil)
27
+ tmp_dir ||= Siba.tmp_dir
28
+ dest_file = File.join(tmp_dir,"#{dest_file_name_part}#{random_suffix}")
29
+ siba_file.file_utils_mkpath tmp_dir unless siba_file.file_directory? tmp_dir
30
+ siba_file.file_utils_cp test_file, dest_file
31
+ dest_file
32
+ end
33
+
34
+ def generate_path(dest_file_name_part, tmp_dir=nil)
35
+ tmp_dir ||= Siba.tmp_dir
36
+ File.join(tmp_dir,"#{dest_file_name_part}#{random_suffix}")
37
+ end
38
+
39
+ def mkdir_in_tmp_dir(prefix, tmp_dir=nil)
40
+ tmp_dir ||= Siba.tmp_dir
41
+ dir = "#{prefix}#{random_suffix}"
42
+ dir_path = File.join(tmp_dir, dir)
43
+ siba_file.file_utils_mkpath dir_path
44
+ dir_path
45
+ end
46
+
47
+ def prepare_options_text(src_yml_path, replace_data)
48
+ replace_prefix = "#_replace_"
49
+ options_text = Siba::FileHelper.read src_yml_path
50
+ replace_data.each_pair do |key, value|
51
+ str_to_replace = "#{replace_prefix}#{key.to_s}"
52
+ raise "YML does not contain #{str_to_replace} text" unless options_text.include? str_to_replace
53
+ options_text.gsub! str_to_replace, value
54
+ end
55
+
56
+ raise "Test YML still has unreplaced text" if options_text.include? "#{replace_prefix}"
57
+ options_text
58
+ end
59
+
60
+ def prepare_options(src_yml_path, replace_data)
61
+ YAML.load prepare_options_text(src_yml_path, replace_data)
62
+ end
63
+
64
+ def prepare_yml(src_yml_path, replace_data, tmp_dir=nil)
65
+ tmp_dir ||= Siba.tmp_dir
66
+ options_text = prepare_options_text src_yml_path, replace_data
67
+ dest_file = File.join tmp_dir,"#{File.basename(src_yml_path,".yml")}#{random_suffix}.yml"
68
+ siba_file.file_open(dest_file, "w") { |f| f.write options_text }
69
+ dest_file
70
+ end
71
+
72
+ def random_suffix
73
+ "-#{Siba::SecurityHelper.alphanumeric_password(8,true)}"
74
+ end
75
+ end
76
+ end
@@ -0,0 +1 @@
1
+ This is a standalone file
@@ -0,0 +1 @@
1
+ This is a hidden file
@@ -0,0 +1 @@
1
+ This is a file in a hidden dir
@@ -0,0 +1 @@
1
+ This file name has spaces and capital characters
@@ -0,0 +1 @@
1
+ This is file in a dir
@@ -0,0 +1 @@
1
+ This is a file in a sub dir
@@ -0,0 +1 @@
1
+ This is file 1
@@ -0,0 +1 @@
1
+ This is file 2
@@ -0,0 +1,94 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba
4
+ class TmpDir
5
+ include Siba::FilePlug
6
+ include Siba::LoggerPlug
7
+ TmpDirPrefix = "siba-"
8
+
9
+ def initialize
10
+ @tmp_dir = nil
11
+ end
12
+
13
+ def get
14
+ @tmp_dir ||= create
15
+ end
16
+
17
+ def cleanup
18
+ siba_file.file_utils_remove_entry_secure @tmp_dir unless @tmp_dir.nil?
19
+ @tmp_dir = nil
20
+ end
21
+
22
+ class << self
23
+ include Siba::FilePlug
24
+ include Siba::LoggerPlug
25
+ def test_access
26
+ siba_file.run_this "test access" do
27
+ begin
28
+ tmp_dir_obj = TmpDir.new
29
+ test_dir = tmp_dir_obj.get
30
+ raise unless siba_file.file_directory? test_dir
31
+ tmp_dir_obj.cleanup
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.
35
+ You can also specify the alternative location for temporary folder in options:
36
+
37
+ settings:
38
+ tmp_dir: ~/your_tmp_dir
39
+ }
40
+ raise
41
+ end
42
+ logger.debug "Access to temporary directory verified"
43
+ end
44
+ end
45
+ end
46
+
47
+ protected
48
+
49
+ def create
50
+ siba_file.run_this "create tmp dir" do
51
+ tmp_dir_from_settings = Siba.settings && Siba.settings["tmp_dir"]
52
+ tmp_path = nil
53
+ if tmp_dir_from_settings.nil?
54
+ tmp_path = siba_file.dir_mktmpdir TmpDirPrefix
55
+ else
56
+ tmp_path = File.join(siba_file.file_expand_path(tmp_dir_from_settings),
57
+ "#{TmpDirPrefix}#{Siba::TestFiles.random_suffix}")
58
+ siba_file.file_utils_mkpath tmp_path
59
+ end
60
+ tmp_path
61
+ end
62
+ end
63
+ end
64
+
65
+ module TmpDirPlug
66
+ include Siba::FilePlug
67
+ include Siba::LoggerPlug
68
+
69
+ def tmp_dir
70
+ if tmp_dir_clean?
71
+ @tmp_dir_obj = TmpDir.new
72
+ @tmp_dir = @tmp_dir_obj.get
73
+ end
74
+ @tmp_dir
75
+ end
76
+
77
+ def cleanup_tmp_dir
78
+ unless @tmp_dir_obj.nil?
79
+ logger.debug "Removing temporary files" if Siba::LoggerPlug.opened?
80
+ siba_file.file_utils_cd Siba.current_dir
81
+ @tmp_dir_obj.cleanup
82
+ @tmp_dir_obj = nil
83
+ end
84
+ @tmp_dir = nil unless @tmp_dir.nil?
85
+ rescue Exception => ex
86
+ logger.fatal "Failed to remove temporary files" if Siba::LoggerPlug.opened?
87
+ raise
88
+ end
89
+
90
+ def tmp_dir_clean?
91
+ @tmp_dir.nil?
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,5 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba
4
+ VERSION = "0.4.3"
5
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba::C6y
4
+ module Demo
5
+ class Init
6
+ include Siba::FilePlug
7
+ include Siba::LoggerPlug
8
+
9
+ def initialize(options)
10
+ ## init_example.rb ##
11
+ end
12
+
13
+ # Archive the contents of sources_dir and put it to dest_dir.
14
+ # Return the archive file name. It must start with dest_file_name
15
+ # and its ending must not vary with time.
16
+ def backup(sources_dir, dest_dir, dest_file_name)
17
+ ## examples.rb ##
18
+ end
19
+
20
+ # Extract contents of archive file (path_to_archive) to_dir
21
+ # No return value is expected.
22
+ def restore(path_to_archive, to_dir)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba::C6y
4
+ module Demo
5
+ class Init
6
+ include Siba::FilePlug
7
+ include Siba::LoggerPlug
8
+
9
+ def initialize(options)
10
+ ## init_example.rb ##
11
+ end
12
+
13
+ # Put backup file (path_to_backup_file) to destination
14
+ # No return value is expected
15
+ def backup(path_to_backup_file)
16
+ ## examples.rb ##
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba::C6y
4
+ module Demo
5
+ class Init
6
+ include Siba::FilePlug
7
+ include Siba::LoggerPlug
8
+
9
+ def initialize(options)
10
+ ## init_example.rb ##
11
+ end
12
+
13
+ # Encrypt backup archive file (path_to_archive) and put it to dest_dir.
14
+ # Return the name of encrypted file. It must begin with archive name
15
+ # and its ending must always be the same.
16
+ def backup(path_to_archive, dest_dir)
17
+ ## examples.rb ##
18
+ end
19
+
20
+ # Decrypt backup file (path_to_backup) to_dir.
21
+ # Return the name of decrypted file.
22
+ def restore(path_to_backup, to_dir)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.swp
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in siba-destination-demo.gemspec
4
+ gemspec
@@ -0,0 +1,9 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'minitest', :notify=>false do
5
+ watch(%r|^test/unit/(.*\/)*test_(.*)\.rb|)
6
+ watch(%r|^lib/siba-c6y-demo/(.*\/)*([^/]+)\.rb|) do |m|
7
+ "test/unit/#{m[1]}test_#{m[2]}.rb" unless m[2][0] == '.'
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) <year> <name>
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,33 @@
1
+ # Developing a SIBA plugin
2
+
3
+ Follow four simple steps to develop a SIBA extension plugin.
4
+
5
+ ## 1. Generate project skeleton
6
+
7
+ Generate an empty project for a plugin gem:
8
+
9
+ $ siba scaffold CATEGORY plugin-name
10
+
11
+ where CATEGORY can be: source, archive, encryption or destination.
12
+
13
+ ## 2. Change `init.rb` file
14
+
15
+ After the project is generated, add your code to init.rb file located in lib/your-plugin-dir. It already has all necessay methods with instructions and examples.
16
+
17
+ ## 3. Change `options.yml`
18
+
19
+ Add your plugin options to `options.yml`. It is located in the same directory as `init.rb`. This file is used for `siba generate` command.
20
+
21
+ ## 4. Publish
22
+
23
+ Publish your plugin gem. If you want your plugin to be shown to users by `siba list` and `siba generate` commands, please add its description to /lib/siba/plugins/plugins.yml file in SIBA project on github and issue a pull request.
24
+
25
+ ## Testing
26
+
27
+ The project contains test files with examples. Two types of tests are used: unit and integration. In unit tests file system, shell and other time consuming operations are not performed.
28
+
29
+ To run unit tests:
30
+ rake
31
+
32
+ To run integration tests
33
+ rake test:i9n
@@ -0,0 +1,28 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ namespace "test" do
5
+ desc "Run all unit tests"
6
+ Rake::TestTask.new("unit") do |t|
7
+ t.pattern = "test/unit/**/test*.rb"
8
+ t.libs << 'test'
9
+ end
10
+
11
+ desc "Run all integration tests"
12
+ Rake::TestTask.new("integration") do |t|
13
+ t.pattern = "test/integration/**/i9n_*.rb"
14
+ t.libs << 'test'
15
+ end
16
+
17
+ desc "Run all integration tests"
18
+ task :i9n => ["test:integration"] do
19
+ end
20
+ end
21
+
22
+ desc "Run all unit tests"
23
+ task :test => ["test:unit"] do
24
+ end
25
+
26
+ desc "Run tests"
27
+ task :default => "test:unit"
28
+
@@ -0,0 +1,11 @@
1
+ # encoding: UTF-8
2
+
3
+ require "siba-c6y-demo/version"
4
+ require "siba-c6y-demo/init"
5
+
6
+ module Siba
7
+ module C6y
8
+ module Demo
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,2 @@
1
+ # A skeleton for the plugin options
2
+ # It is used by 'siba generate' command
@@ -0,0 +1,9 @@
1
+ # encoding: UTF-8
2
+
3
+ module Siba
4
+ module C6y
5
+ module Demo
6
+ VERSION = "0.0.1"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "siba-c6y-demo/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "siba-c6y-demo"
7
+ s.version = Siba::C6y::Demo::VERSION
8
+ s.authors = ["TODO: Write your name"]
9
+ s.email = ["TOD0: your@email.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{TODO: Write a gem summary}
12
+ s.description = %q{TODO: Write a gem description}
13
+
14
+ s.rubyforge_project = "siba-c6y-demo"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency 'siba', '~>siba_version'
22
+
23
+ s.add_development_dependency 'minitest', '~>2.10'
24
+ s.add_development_dependency 'rake', '~>0.9'
25
+ s.add_development_dependency 'guard-minitest', '~>0.4'
26
+ end
@@ -0,0 +1,5 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'siba/helpers/test/require'
4
+ SibaTest.init_integration
5
+