skap 1.0.1 → 1.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 16e74f93e2cb2c5bfb6ec42565f0ee3a276f6d134a63418a98328a259141272e
4
- data.tar.gz: a00a345fb79bd667ecde44d7b62fc8933f0f6e131185a740a6a6e30afd78e047
3
+ metadata.gz: f7487b2bdb15b4a94bf5e9f5862eeebaf20f6a23b9e7c3aae850fdf6350283c3
4
+ data.tar.gz: 55c46f71dd2c1bdf6a04c0160c9cbf378c14ae13dd244606d0c0cd170ff0defb
5
5
  SHA512:
6
- metadata.gz: '0908fffd649481ec79c9f772585beacf0b327ff6614dd2da60c9090c77876bb67cd0ec0d4f014b2b0eada4ddc1141c43c9f330c38e612fcfd03bcfa35f1d1459'
7
- data.tar.gz: 27c06e31d15c05c3b311854f26f0f01eb8adb23487b79b9c8d8d426b09799d75720a5dd9c7bcaf9e11f33ae4f90c92f4b4e812c5c09529935cb2540fa0a7d248
6
+ metadata.gz: 849759daeaffebc05744d58df836f6a7da9e703c48d3d273a0180449a0bd82fc911782a7ee1f2df1ad9f6694361e364f5bd6b3704a20d85e778100c72cb98e96
7
+ data.tar.gz: dc7359b30974a0844520c45c858b178319f5d660e0fe5846de49a1c71c9dd30a69a26f6150462e62edeb459b56173a8962c6db1bd887bf0a683db55e8ec7aaa3
@@ -32,11 +32,7 @@ module Skap
32
32
 
33
33
  return unless shell("git submodule add -b #{branch} --depth 3 -- #{repo} #{dir}")
34
34
 
35
- sources_data = load_file(SOURCES)
36
- sources_data[dir] = {"file-extensions" => [], "ignored" => [], "indexed" => []}
37
-
38
- sources_data = sources_data.sort_by(&:first).to_h
39
- File.write(SOURCES, Psych.dump(sources_data, line_width: 100))
35
+ Files::Sources.new.add_source(dir)
40
36
  end
41
37
 
42
38
  # @param dir [String]
@@ -46,6 +42,8 @@ module Skap
46
42
  assert_empty_options(rest)
47
43
 
48
44
  shell("git submodule deinit -f -- #{dir} && git rm -f #{dir} && rm -rf .git/modules/#{dir}")
45
+
46
+ Files::Sources.new.delete_source(dir)
49
47
  end
50
48
 
51
49
  # @param dirs [Array<String>]
@@ -53,7 +51,12 @@ module Skap
53
51
  def update(*dirs)
54
52
  path_arg = dirs.empty? ? "" : "-- #{dirs.join(" ")}"
55
53
 
56
- shell("git submodule update --checkout --single-branch --recursive #{path_arg}")
54
+ commands = [
55
+ "git submodule init",
56
+ "git submodule update --checkout --single-branch --recursive #{path_arg}",
57
+ ]
58
+
59
+ shell(commands.join(" && "))
57
60
  end
58
61
  end
59
62
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Skap
4
+ module CLI::Version
5
+ include Command
6
+ extend self
7
+
8
+ # @return [void]
9
+ def start
10
+ puts "Skap, v#{Skap::VERSION}"
11
+ end
12
+ end
13
+ end
data/lib/skap/cli.rb CHANGED
@@ -21,10 +21,11 @@ module Skap
21
21
  section, command, *rest = argv
22
22
 
23
23
  case section
24
- when "works" then CLI::Works.start(command, rest)
25
24
  when "help", "--help", "-h", nil then CLI::Help.start
26
25
  when "init" then CLI::Init.start(command, rest)
27
26
  when "sources" then CLI::Sources.start(command, rest)
27
+ when "version", "--version", "-v" then CLI::Version.start
28
+ when "works" then CLI::Works.start(command, rest)
28
29
  else
29
30
  raise ArgumentError, "Unknown section: #{section}"
30
31
  end
@@ -38,4 +39,5 @@ end
38
39
  require_relative "cli/help"
39
40
  require_relative "cli/init"
40
41
  require_relative "cli/sources"
42
+ require_relative "cli/version"
41
43
  require_relative "cli/works"
@@ -5,6 +5,22 @@ module Skap
5
5
  class Sources < YAMLFile
6
6
  self.file_name = "sources.yaml"
7
7
 
8
+ # @param dir [String]
9
+ # @return [void]
10
+ def add_source(dir)
11
+ file[dir] = {"file-extensions" => [], "ignored" => [], "indexed" => []}
12
+ @file = file.sort_by(&:first).to_h
13
+
14
+ update_file
15
+ end
16
+
17
+ # @param dir [String]
18
+ # @return [void]
19
+ def delete_source(dir)
20
+ file.delete(dir)
21
+ update_file
22
+ end
23
+
8
24
  # @param key [String]
9
25
  # @param dirs [Array<String>]
10
26
  # @return [Hash<String, Array<String>>]
@@ -12,7 +12,7 @@ module Skap
12
12
  file[document_path] = document
13
13
  @file = file.sort_by(&:first).to_h
14
14
 
15
- File.write(self.class.file_name, Psych.dump(file, line_width: 100))
15
+ update_file
16
16
  end
17
17
 
18
18
  # @return [Set<String>]
data/lib/skap/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Skap
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
5
5
  end
@@ -20,5 +20,10 @@ module Skap
20
20
  def load_file
21
21
  Psych.load_file(self.class.file_name, symbolize_names: false) || {}
22
22
  end
23
+
24
+ # @return [void]
25
+ def update_file
26
+ File.write(self.class.file_name, Psych.dump(file, line_width: 100))
27
+ end
23
28
  end
24
29
  end
data/menu.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- - cmd: help
2
+ - cmd: ["help", "--help", "-h"]
3
3
  text: "Show help message about supported commands."
4
4
  - cmd: ["init", "init DIRECTORY_PATH"]
5
5
  text: "Create configuration files in current directory or in DIRECTORY_PATH."
@@ -14,6 +14,8 @@
14
14
  Update git submodule from upstream in DIRECTORY or in all git submodules if DIRECTORY
15
15
  is not specified. You may pass one or more directory paths (DIRECTORY ...) to update
16
16
  their contents.
17
+ - cmd: ["version", "--version", "-v"]
18
+ text: "Show program version"
17
19
  - cmd: works
18
20
  children:
19
21
  - cmd: ["covered", "covered DIRECTORY ..."]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evgeniy Nochevnov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-28 00:00:00.000000000 Z
11
+ date: 2024-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-core
@@ -94,6 +94,7 @@ files:
94
94
  - lib/skap/cli/help.rb
95
95
  - lib/skap/cli/init.rb
96
96
  - lib/skap/cli/sources.rb
97
+ - lib/skap/cli/version.rb
97
98
  - lib/skap/cli/works.rb
98
99
  - lib/skap/command.rb
99
100
  - lib/skap/files/menu.rb
@@ -125,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  - !ruby/object:Gem::Version
126
127
  version: '0'
127
128
  requirements: []
128
- rubygems_version: 3.5.19
129
+ rubygems_version: 3.5.18
129
130
  signing_key:
130
131
  specification_version: 4
131
132
  summary: ''