tebako 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91362403f264faf856ec42bf6eb6d8411a595ba037e8d102132147301975f4b1
4
- data.tar.gz: 559b3f4aa269c5b0d0b271ebce87046f591adf229afb51a2f5715ac184b2e3de
3
+ metadata.gz: d3ce7f498e5f82482a720d99b95c4f5e405c595f4ded4d5dffa5ac3030679530
4
+ data.tar.gz: 7fb7a07898f02dad4bcffe7f058c142311f6c9873dfb1accb460cd9442390064
5
5
  SHA512:
6
- metadata.gz: 40d38a252bd29670656293ba1d5beb9bf166159a15380e2e8862448d0312146364882bb441c20891d53aa9742ff07c918f3ff2bb5bb1963b7978392376eb8ea4
7
- data.tar.gz: 91228cf1d10a6392b0725418eacfb35a00f982f8a111ed95811c37353a10720f7e786bc169036e41f335faf38e148caf7cdb63410b0fa025bdbf032401b481c5
6
+ metadata.gz: e089f8dc1edd455cb028b3ca888285b260df832228296891167bc248f2e39df650696b031c7201db0f2115e26242f2edfada4045dec1d42e82e8635cf01dd57d
7
+ data.tar.gz: 632d3337eae51876bfa9bf48a77d33a80e16b86439c66f0b406a7cf3bcb004d7f18f8a9f46bb858f8bc76cda2565078ea9883a5f1d1279ef6e3c80ff3f2808e0
data/CMakeLists.txt CHANGED
@@ -194,7 +194,7 @@ string(SUBSTRING ${RUBY_VER} 0 3 RUBY_VER_BASE)
194
194
  string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
195
195
 
196
196
  #if(DWARFS_PRELOAD)
197
- # def_ext_prj_t(LIBDWARFS_WR "0.5.5" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
197
+ # def_ext_prj_t(LIBDWARFS_WR "0.5.8" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
198
198
  #
199
199
  # string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" LIBDWARFS_WR_VER_COMPONENTS ${LIBDWARFS_WR_VER})
200
200
  #
@@ -203,7 +203,7 @@ string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
203
203
  # list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
204
204
  # set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
205
205
  #else(DWARFS_PRELOAD)
206
- def_ext_prj_g(DWARFS_WR "v0.5.7")
206
+ def_ext_prj_g(DWARFS_WR "v0.5.8")
207
207
  #endif(DWARFS_PRELOAD)
208
208
 
209
209
  set(LIBYAML_RUBY_OPTION "")
data/Gemfile CHANGED
@@ -29,7 +29,3 @@ source "https://rubygems.org"
29
29
 
30
30
  # Specify your gem's dependencies in tebako.gemspec
31
31
  gemspec
32
- gem "hoe"
33
- gem "minitest"
34
- gem "rubocop", "~> 1.52"
35
- gem "rubocop-rubycw"
data/README.adoc CHANGED
@@ -10,7 +10,8 @@ Platform tests on Cirrus:
10
10
  image:https://api.cirrus-ci.com/github/tamatebako/tebako.svg?branch=main&task=ubuntu-aarch64["Ubuntu aarch64", link="https://cirrus-ci.com/github/tamatebako/tebako"]
11
11
 
12
12
  Quality:
13
- image:https://github.com/tamatebako/tebako/actions/workflows/lint.yml/badge.svg["lint", link="https://github.com/tamatebako/tebako/actions/workflows/lint.yml"]
13
+ image:https://github.com/tamatebako/tebako/actions/workflows/lint-and-rspec.yml/badge.svg["lint and rspec", link="https://github.com/tamatebako/tebako/actions/workflows/lint-and-rspec.yml"]
14
+ image:https://codecov.io/gh/tamatebako/tebako/graph/badge.svg?token=XD3emQ5qsY["Tebako cli rspec coverage", link="https://codecov.io/gh/tamatebako/tebako"]
14
15
 
15
16
  == Purpose
16
17
 
@@ -86,8 +87,8 @@ with debug information unstripped. You can opt to run 'strip -S' manually, it mo
86
87
 
87
88
  | 2.7.8 | Linux, macOS
88
89
  | 3.0.7 | Linux, macOS
89
- | 3.1.{4,5,6} | Linux, macOS, Windows
90
- | 3.2.{3,4} | Linux, macOS, Windows
90
+ | 3.1.6 | Linux, macOS, Windows
91
+ | 3.2.4 | Linux, macOS, Windows
91
92
  | 3.3.{3,4} | Linux, macOS, Windows
92
93
 
93
94
  |===
@@ -232,8 +233,6 @@ Displays the Tebako version.
232
233
  Displays the help message.
233
234
 
234
235
 
235
-
236
-
237
236
  == Usage
238
237
 
239
238
  === General
@@ -291,9 +290,6 @@ docker run -v <application_folder>:/mnt/w \
291
290
  tebako {command} {parameters}
292
291
  ----
293
292
 
294
-
295
-
296
-
297
293
  ==== Packaging from outside the container
298
294
 
299
295
  To package your application from outside the container, just run a single Docker
@@ -659,7 +655,8 @@ tebako press \
659
655
  [-R|--Ruby=<ruby-version>] \
660
656
  [-o|--output=<packaged-file-name>] \
661
657
  [-l|--log-level=<error|warn|debug|trace>] \
662
- [-D|--devmode]
658
+ [-D|--devmode] \
659
+ [-t|--tebafile=<path-to-tebafile>]
663
660
  ----
664
661
 
665
662
  Where:
@@ -668,7 +665,7 @@ Where:
668
665
  the Tebako root folder (see details in the Tebako Root Folder Selection section)
669
666
 
670
667
  `Ruby`::
671
- This parameter defines Ruby version that will be packaged (optional, defaults to
668
+ this parameter defines Ruby version that will be packaged (optional, defaults to
672
669
  `3.1.6`)
673
670
 
674
671
  `<project-root>`::
@@ -685,11 +682,16 @@ the output file name (optional, defaults to `<current folder>/<entry point base
685
682
  logging level for the Tebako built-in memory filesystem driver
686
683
  (optional, defaults to `error`)
687
684
 
685
+ `tebafile`::
686
+ the tebako configuration file (optional, defaults to `$PWD/.tebako.yml`).
687
+ Please refer to the separate section below for tebafile description.
688
+
688
689
  `devmode`:: flag that activates development mode, in which Tebako's cache and
689
690
  packaging consistency checks are relaxed.
690
691
  +
691
- NOTE: Development mode is *not intended for production use* and should only be
692
- used during development.
692
+ NOTES:
693
+ * Development mode is *not intended for production use* and should only be used during development.
694
+ * `entry-point` and `project-root-folder` are required parameters and may be provided either via command-line or in `tebafile`.
693
695
 
694
696
  [example]
695
697
  ====
@@ -724,16 +726,21 @@ based on `tebako press` may create inconsistent environment upon restore.
724
726
  $ tebako setup \
725
727
  [-p|--prefix=<tebako-root-folder>] \
726
728
  [-R|--Ruby=<ruby-version>] \
727
- [-D|--devmode]
729
+ [-D|--devmode] \
730
+ [-t|--tebafile=<path-to-tebafile>]
728
731
  ----
729
732
 
730
733
  Where:
731
734
 
732
735
  `<tebako-root-folder>`:: the Tebako root folder (see details in the Tebako Root Folder Selection section)
733
736
 
734
- `Ruby` parameter defines Ruby version that will be packaged (optional, defaults to 3.1.6)
737
+ `Ruby`:: parameter defines Ruby version that will be packaged (optional, defaults to 3.1.6)
738
+
739
+ `tebafile`::
740
+ the tebako configuration file (optional, defaults to `$PWD/.tebako.yml`).
741
+ Please refer to the separate section below for tebafile description.
735
742
 
736
- `devmode` flag activates development mode, in which Tebako's cache and packaging consistency checks are relaxed.
743
+ `devmode`:: flag activates development mode, in which Tebako's cache and packaging consistency checks are relaxed.
737
744
  Please note that this mode is not intended for production use and should only be used during development.
738
745
 
739
746
  ==== Clean
@@ -746,13 +753,18 @@ Normally you do not need to do it since tebako packager optimizes artifacts life
746
753
  [source,sh]
747
754
  ----
748
755
  $ tebako clean \
749
- [-p|--prefix=<tebako-root-folder>]
756
+ [-p|--prefix=<tebako-root-folder>] \
757
+ [-t|--tebafile=<path-to-tebafile>]
750
758
  ----
751
759
 
752
760
  Where:
753
761
 
754
762
  `<tebako-root-folder>`:: the Tebako root folder (see details in the Tebako Root Folder Selection section)
755
763
 
764
+ `tebafile`::
765
+ the tebako configuration file (optional, defaults to `$PWD/.tebako.yml`).
766
+ Please refer to the separate section below for tebafile description.
767
+
756
768
  [example]
757
769
  ====
758
770
  [source,sh]
@@ -777,7 +789,9 @@ NOTE: Compiled DwarFS libraries are not cleaned.
777
789
  ----
778
790
  $ tebako clean_ruby
779
791
  [-p|--prefix=<tebako-root-folder>] \
780
- [-R|--Ruby=<ruby-version>]
792
+ [-R|--Ruby=<ruby-version>] \
793
+ [-t|--tebafile=<path-to-tebafile>]
794
+
781
795
  ----
782
796
 
783
797
  Where:
@@ -788,6 +802,10 @@ the Tebako setup folder (optional, defaults to current folder)
788
802
  `Ruby`::
789
803
  defines Ruby version that will cleaned (optional, cleans all versions by default)
790
804
 
805
+ `tebafile`::
806
+ the tebako configuration file (optional, defaults to `$PWD/.tebako.yml`).
807
+ Please refer to the separate section below for tebafile description.
808
+
791
809
  [example]
792
810
  ====
793
811
  [source,sh]
@@ -806,6 +824,26 @@ as a cache key in CI/CD pipelines.
806
824
  $ tebako hash
807
825
  ----
808
826
 
827
+ === Tebako configuration file
828
+
829
+ It is possible to provide all or some options for the `tebako setup/press/clean/clean_ruby` commands via Tebako configuration file ('tebafile').
830
+ Tebafile is a YAML file with a single section 'options'. The options are the same as long names for the command line. For, example for the prefix option
831
+
832
+ [source]
833
+ ----
834
+ -p|--prefix=<tebako-root-folder>
835
+ ----
836
+ the key in the YAML file would be 'prefix'.
837
+
838
+ Below is an example tebafile that sets values for prefix and Ruby options
839
+ [source,yaml]
840
+ ----
841
+ options:
842
+ prefix: /tmp/tebako
843
+ Ruby: 3.2.4
844
+ ----
845
+
846
+ Please note that the options provided on the command line have preference over tebafile settings.
809
847
 
810
848
  === Image extraction
811
849
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of tebako
6
6
  #
@@ -27,10 +27,12 @@
27
27
 
28
28
  require "bundler/gem_tasks"
29
29
  require "rubocop/rake_task"
30
+ require "rspec/core/rake_task"
30
31
 
31
32
  RuboCop::RakeTask.new
33
+ RSpec::Core::RakeTask.new(:spec)
32
34
 
33
- task default: %i[rubocop]
35
+ task default: %i[rubocop spec]
34
36
 
35
37
  desc "Generate version.txt"
36
38
  task "generate_version_txt" do
data/common.env CHANGED
@@ -1,5 +1,5 @@
1
1
  BUILD_TYPE=Release
2
2
  DEPS=deps
3
3
  INCBIN_TAG=348e36b
4
- DWARFS_WR_TAG=v0.5.7
4
+ DWARFS_WR_TAG=v0.5.8
5
5
  RUBY_VER=3.1.6
data/lib/tebako/cli.rb CHANGED
@@ -40,7 +40,7 @@ require_relative "version"
40
40
  # Tebako - an executable packager
41
41
  # Implementation of tebako command-line interface
42
42
  module Tebako
43
- OPTIONS_FILE = ".tebako.yml"
43
+ DEFAULT_TEBAFILE = ".tebako.yml"
44
44
  # Tebako packager front-end
45
45
  class Cli < Thor
46
46
  package_name "Tebako"
@@ -48,7 +48,8 @@ module Tebako
48
48
  desc: "A path to tebako packaging environment, '~/.tebako' ('$HOME/.tebako') by default"
49
49
  class_option :devmode, type: :boolean, aliases: "-D", required: false,
50
50
  desc: "Developer mode, please do not use if unsure"
51
-
51
+ class_option :tebafile, type: :string, aliases: "-t", required: false,
52
+ desc: "tebako configuration file 'tebafile', '$PWD/.tebako.yml' by default"
52
53
  desc "clean", "Clean tebako packaging environment"
53
54
  def clean
54
55
  clean_cache
@@ -123,35 +124,19 @@ module Tebako
123
124
 
124
125
  def options
125
126
  original_options = super
126
-
127
- return original_options unless File.exist?(OPTIONS_FILE)
128
-
129
- defaults = ::YAML.load_file(OPTIONS_FILE) || {}
130
- Thor::CoreExt::HashWithIndifferentAccess.new(defaults.merge(original_options))
127
+ tebafile = original_options["tebafile"].nil? ? DEFAULT_TEBAFILE : original_options["tebafile"]
128
+ if File.exist?(tebafile)
129
+ Thor::CoreExt::HashWithIndifferentAccess.new(options_from_tebafile(tebafile).merge(original_options))
130
+ else
131
+ puts "Warning: Tebako configuration file '#{tebafile}' not found." unless original_options["tebafile"].nil?
132
+ original_options
133
+ end
131
134
  end
132
135
  end
133
136
 
134
- private
135
-
136
137
  no_commands do
137
- def do_press
138
- cfg_cmd = "cmake -DSETUP_MODE:BOOLEAN=OFF #{cfg_options} #{press_options}"
139
- build_cmd = "cmake --build #{output} --target tebako --parallel #{Etc.nprocessors}"
140
- merged_env = ENV.to_h.merge(b_env)
141
- Tebako.packaging_error(103) unless system(merged_env, cfg_cmd)
142
- Tebako.packaging_error(104) unless system(merged_env, build_cmd)
143
- end
144
-
145
- def do_setup
146
- cfg_cmd = "cmake -DSETUP_MODE:BOOLEAN=ON #{cfg_options}"
147
- build_cmd = "cmake --build \"#{output}\" --target setup --parallel #{Etc.nprocessors}"
148
- merged_env = ENV.to_h.merge(b_env)
149
- Tebako.packaging_error(101) unless system(merged_env, cfg_cmd)
150
- Tebako.packaging_error(102) unless system(merged_env, build_cmd)
151
- end
138
+ include Tebako::CliHelpers
139
+ include Tebako::CliRubies
152
140
  end
153
-
154
- include Tebako::CliHelpers
155
- include Tebako::CliRubies
156
141
  end
157
142
  end
@@ -55,31 +55,47 @@ module Tebako
55
55
  # So we have to use \"xxx\"
56
56
  @cfg_options ||=
57
57
  "-DCMAKE_BUILD_TYPE=Release -DRUBY_VER:STRING=\"#{ruby_ver}\" -DRUBY_HASH:STRING=\"#{ruby_hash}\" " \
58
- "-DDEPS:STRING=\"#{deps}\" -G \"#{m_files}\" -B \"#{output}\" -S \"#{source}\""
58
+ "-DDEPS:STRING=\"#{deps}\" -G \"#{m_files}\" -B \"#{output_folder}\" -S \"#{source}\""
59
59
  end
60
60
 
61
61
  def clean_cache
62
62
  puts "Cleaning tebako packaging environment"
63
63
  # Using File.join(deps, "") to ensure that the slashes are appropriate
64
- FileUtils.rm_rf([File.join(deps, ""), File.join(output, "")], secure: true)
64
+ FileUtils.rm_rf([File.join(deps, ""), File.join(output_folder, "")], secure: true)
65
65
  end
66
66
 
67
67
  def clean_output
68
68
  puts "Cleaning CMake cache and Ruby build files"
69
- # Using File.join(output, "") to ensure that the slashes are appropriate
70
69
 
71
70
  nmr = "src/_ruby_*"
72
71
  nms = "stash_*"
73
72
  FileUtils.rm_rf(Dir.glob(File.join(deps, nmr)), secure: true)
74
73
  FileUtils.rm_rf(Dir.glob(File.join(deps, nms)), secure: true)
75
74
 
76
- FileUtils.rm_rf(File.join(output, ""), secure: true)
75
+ # Using File.join(output_folder, "") to ensure that the slashes are appropriate
76
+ FileUtils.rm_rf(File.join(output_folder, ""), secure: true)
77
77
  end
78
78
 
79
79
  def deps
80
80
  @deps ||= File.join(prefix, "deps")
81
81
  end
82
82
 
83
+ def do_press
84
+ cfg_cmd = "cmake -DSETUP_MODE:BOOLEAN=OFF #{cfg_options} #{press_options}"
85
+ build_cmd = "cmake --build #{output_folder} --target tebako --parallel #{Etc.nprocessors}"
86
+ merged_env = ENV.to_h.merge(b_env)
87
+ Tebako.packaging_error(103) unless system(merged_env, cfg_cmd)
88
+ Tebako.packaging_error(104) unless system(merged_env, build_cmd)
89
+ end
90
+
91
+ def do_setup
92
+ cfg_cmd = "cmake -DSETUP_MODE:BOOLEAN=ON #{cfg_options}"
93
+ build_cmd = "cmake --build \"#{output_folder}\" --target setup --parallel #{Etc.nprocessors}"
94
+ merged_env = ENV.to_h.merge(b_env)
95
+ Tebako.packaging_error(101) unless system(merged_env, cfg_cmd)
96
+ Tebako.packaging_error(102) unless system(merged_env, build_cmd)
97
+ end
98
+
83
99
  def ensure_version_file
84
100
  version_file_path = File.join(deps, E_VERSION_FILE)
85
101
 
@@ -128,8 +144,20 @@ module Tebako
128
144
  end
129
145
  # rubocop:enable Metrics/MethodLength
130
146
 
131
- def output
132
- @output ||= File.join(prefix, "o")
147
+ def options_from_tebafile(tebafile)
148
+ ::YAML.load_file(tebafile)["options"] || {}
149
+ rescue Psych::SyntaxError => e
150
+ puts "Warning: The tebafile '#{tebafile}' contains invalid YAML syntax."
151
+ puts e.message
152
+ {}
153
+ rescue StandardError => e
154
+ puts "An unexpected error occurred while loading the tebafile '#{tebafile}'."
155
+ puts e.message
156
+ {}
157
+ end
158
+
159
+ def output_folder
160
+ @output_folder ||= File.join(prefix, "o")
133
161
  end
134
162
 
135
163
  def package
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.8.1"
29
+ VERSION = "0.8.2"
30
30
  end
data/src/tebako-main.cpp CHANGED
@@ -145,6 +145,8 @@ extern "C" int tebako_main(int* argc, char*** argv) {
145
145
  // Nested error, no recovery :(
146
146
  }
147
147
  }
148
+
149
+ // tebako_chdir("/__tebako_memfs__/local");
148
150
  }
149
151
  return ret;
150
152
  }
data/tebako.gemspec CHANGED
@@ -51,7 +51,7 @@ Gem::Specification.new do |spec|
51
51
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
52
52
  `git ls-files --recurse-submodules -z`.split("\x0").reject do |f|
53
53
  (f == __FILE__) ||
54
- f.match(%r{\A(?:(?:tests|tests-2|features|deps|output|common\.env)/|\.(?:git|cirrus|tebako|rubocop))})
54
+ f.match(%r{\A(?:(?:tests|tests-2|spec|deps|output|common\.env)/|\.(?:git|rspec|cirrus|tebako|rubocop))})
55
55
  end
56
56
  end
57
57
 
@@ -63,4 +63,12 @@ Gem::Specification.new do |spec|
63
63
 
64
64
  spec.add_dependency "thor", "~> 1.2"
65
65
  spec.add_dependency "yaml", "~> 0.2.1"
66
+
67
+ spec.add_development_dependency "hoe"
68
+ spec.add_development_dependency "minitest"
69
+ spec.add_development_dependency "rspec", "~> 3.2"
70
+ spec.add_development_dependency "rubocop", "~> 1.52"
71
+ spec.add_development_dependency "rubocop-rubycw"
72
+ spec.add_development_dependency "simplecov"
73
+ spec.add_development_dependency "simplecov-cobertura"
66
74
  end
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.8.2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tebako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-06 00:00:00.000000000 Z
11
+ date: 2024-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -38,6 +38,104 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.2.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: hoe
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.52'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.52'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-rubycw
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov-cobertura
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
41
139
  description: |
42
140
  Tebako is an executable packager. It packages a set of files into a single
43
141
  executable binary that allows a user to run a selected file from the