gig 0.0.5 → 0.0.6
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 +4 -4
- data/README.md +18 -0
- data/gig.gemspec +28 -0
- data/lib/gig/version.rb +1 -1
- data/lib/gig.rb +20 -17
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f943dab3aba7fb52891beaaeb7408e835a60fc190f964f7afa6bab43145d7e81
|
4
|
+
data.tar.gz: 8b1139ef896f849a8013602ceeb16d5d370daa56ad0d0fa2e3f3ded5c7923dfe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e3f4a87eee4b3bcfe6cbd517eef485efe2ebb61f902790b81455dfbba57b4d4652803ff533d10fdf816613a8221806b6310c169f554218a4a5b6a029cc4a73e
|
7
|
+
data.tar.gz: 29e571ba1108209a2fc4f1d4bafc8ff40f28b03f2f1f55c4dbde1e151fa3bdd930cb202abbc0fa81b19f2fe1d277955c8daf80331c23ff2674c7c1b67fd57de9
|
data/README.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
`gig` contains a rake task of the same name to check for consistency of files between git, gemspec, and the filesystem before building.
|
2
2
|
|
3
|
+
## Usage
|
4
|
+
|
5
|
+
In your rakefile, `require 'gig'` and invoke [Gig.make_task](https://rubydoc.info/gems/gig/Gig), passing `gemspec_filename` and `ignore_files`. Globs are useful for `ignore_files`, and `File::FNM_DOTMATCH` should be used when globs may contain dotfiles. For example:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
require 'gig'
|
9
|
+
|
10
|
+
ignore_files = %w(
|
11
|
+
.github/**/*
|
12
|
+
.gitignore
|
13
|
+
.gitmodules
|
14
|
+
Gemfile
|
15
|
+
Rakefile.rb
|
16
|
+
test/**/*
|
17
|
+
).map { |glob| Dir.glob(glob, File::FNM_DOTMATCH) }.inject([], &:|)
|
18
|
+
Gig.make_task(gemspec_filename: 'my_gem.gemspec', ignore_files: ignore_files)
|
19
|
+
```
|
20
|
+
|
3
21
|
## License
|
4
22
|
|
5
23
|
The gem is available under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/gig.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("../lib", __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require "gig/version"
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "gig"
|
9
|
+
spec.version = Gig::VERSION
|
10
|
+
spec.authors = ["Ethan"]
|
11
|
+
spec.email = ["ethan@unth.net"]
|
12
|
+
|
13
|
+
spec.summary = "gig"
|
14
|
+
spec.description = "a rake task to check a gem's consistency with git and the filesystem before building"
|
15
|
+
spec.homepage = "https://github.com/notEthan/gig"
|
16
|
+
spec.license = "MIT"
|
17
|
+
|
18
|
+
spec.files = [
|
19
|
+
'LICENSE.txt',
|
20
|
+
'README.md',
|
21
|
+
'gig.gemspec',
|
22
|
+
*Dir['lib/**/*'],
|
23
|
+
].reject { |f| File.lstat(f).ftype == 'directory' }
|
24
|
+
|
25
|
+
spec.require_paths = ["lib"]
|
26
|
+
|
27
|
+
spec.add_dependency 'rake'
|
28
|
+
end
|
data/lib/gig/version.rb
CHANGED
data/lib/gig.rb
CHANGED
@@ -6,7 +6,7 @@ module Gig
|
|
6
6
|
class << self
|
7
7
|
# @param name [#to_s] rake task name
|
8
8
|
# @param gemspec_filename
|
9
|
-
# @param ignore_files [Enumerable]
|
9
|
+
# @param ignore_files [Enumerable<String>]
|
10
10
|
def make_task(name: 'gig', gemspec_filename: , ignore_files: )
|
11
11
|
Rake.application.last_description = "check consistency of gemspec files with git and filesystem before building the gem"
|
12
12
|
Rake::Task.define_task(name) do
|
@@ -33,33 +33,36 @@ module Gig
|
|
33
33
|
in_spec = spec.files.include?(file) || spec.test_files.include?(file)
|
34
34
|
in_ignore = ignore_files.include?(file)
|
35
35
|
|
36
|
-
if
|
37
|
-
if
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
36
|
+
if in_spec
|
37
|
+
if in_ignore
|
38
|
+
file_error.("file in gig ignore_files, but present in gemspec: #{file}")
|
39
|
+
end
|
40
|
+
|
41
|
+
if in_git
|
42
|
+
if in_fs
|
42
43
|
git_status = `git status --porcelain #{Shellwords.escape(file)}`
|
43
44
|
if git_status.empty?
|
44
45
|
# pass
|
45
46
|
else
|
46
|
-
file_error.("file modified from git: #{file}")
|
47
|
+
file_error.("file in gemspec, but modified from git: #{file}")
|
47
48
|
end
|
48
49
|
else
|
49
|
-
|
50
|
-
# pass
|
51
|
-
else
|
52
|
-
file_error.("git file not in gemspec: #{file}")
|
53
|
-
end
|
50
|
+
file_error.("file in gemspec, but not in filesystem: #{file}")
|
54
51
|
end
|
55
52
|
else
|
56
|
-
|
53
|
+
if in_fs
|
54
|
+
file_error.("file in gemspec and filesystem, but not in git: #{file}")
|
55
|
+
else
|
56
|
+
file_error.("file in gemspec, but not in git and not in filesystem: #{file}")
|
57
|
+
end
|
57
58
|
end
|
59
|
+
elsif in_ignore
|
60
|
+
# in ignore_files, and not in gemspec: pass (regardless of git or fs)
|
58
61
|
else
|
59
|
-
if
|
60
|
-
file_error.("file in
|
62
|
+
if in_git
|
63
|
+
file_error.("file in git, but in neither gemspec nor gig ignore_files: #{file}")
|
61
64
|
else
|
62
|
-
# in
|
65
|
+
# not in gemspec, not in ignore_files, not in git: pass - it's in the filesystem but can be ignored
|
63
66
|
end
|
64
67
|
end
|
65
68
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -24,7 +24,8 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
description: '
|
27
|
+
description: a rake task to check a gem's consistency with git and the filesystem
|
28
|
+
before building
|
28
29
|
email:
|
29
30
|
- ethan@unth.net
|
30
31
|
executables: []
|
@@ -33,13 +34,14 @@ extra_rdoc_files: []
|
|
33
34
|
files:
|
34
35
|
- LICENSE.txt
|
35
36
|
- README.md
|
37
|
+
- gig.gemspec
|
36
38
|
- lib/gig.rb
|
37
39
|
- lib/gig/version.rb
|
38
40
|
homepage: https://github.com/notEthan/gig
|
39
41
|
licenses:
|
40
42
|
- MIT
|
41
43
|
metadata: {}
|
42
|
-
post_install_message:
|
44
|
+
post_install_message:
|
43
45
|
rdoc_options: []
|
44
46
|
require_paths:
|
45
47
|
- lib
|
@@ -54,8 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
56
|
- !ruby/object:Gem::Version
|
55
57
|
version: '0'
|
56
58
|
requirements: []
|
57
|
-
rubygems_version: 3.1.
|
58
|
-
signing_key:
|
59
|
+
rubygems_version: 3.1.6
|
60
|
+
signing_key:
|
59
61
|
specification_version: 4
|
60
62
|
summary: gig
|
61
63
|
test_files: []
|