gitti 0.4.0 → 0.6.1

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
  SHA1:
3
- metadata.gz: ef8765bec0642f4ee88c23169fffe92f8f0bba1a
4
- data.tar.gz: a877ebe7e9bcff04915ed4fcc782dcf2c8000dc3
3
+ metadata.gz: 9af5dbeb98c92b61217e79f16a009baea537c068
4
+ data.tar.gz: '0378847df0d03662f0a7d89d25c51b01ff887ce7'
5
5
  SHA512:
6
- metadata.gz: 683017b302f2becfaa0fb76c6f2dbfecd3e961ef534d8c8b784070a2df90fefc4df38c476d9601ef0d2e0167b2c613adbe781e918520ba15dc2e8e0b33e0ece7
7
- data.tar.gz: 41320be67f3b4f4a3dd34bdac9a7ac4a94b21d47012f84be53cb8dee0170c9acc811927c910e985983f724a7d7826fbd36b04f457c31b25c47320733af7ce832
6
+ metadata.gz: 2a43608097a13b762821df5a576e8f8346cd684680b1494fce35e0d0b2f3f043ba6ef8e36b931f2eb447b526cab753b62287206eee984f6323c6ee33c0a96c00
7
+ data.tar.gz: 60aaf0d3ee8c9582ec276a65e700391e1b0f3ae388f2dd53143c30c322218e9c20bf94fa3ee0269952aca453388d0097b747ed33749e44d10a412e951b51a994
data/README.md CHANGED
@@ -1,150 +1,166 @@
1
- # gitti
2
-
3
- gitti gem - (yet) another (lite) git command line helper / wrapper
4
-
5
- * home :: [github.com/rubycoco/gitti](https://github.com/rubycoco/gitti)
6
- * bugs :: [github.com/rubycoco/gitti/issues](https://github.com/rubycoco/gitti/issues)
7
- * gem :: [rubygems.org/gems/gitti](https://rubygems.org/gems/gitti)
8
- * rdoc :: [rubydoc.info/gems/gitti](http://rubydoc.info/gems/gitti)
9
-
10
-
11
-
12
- ## Usage
13
-
14
- `Git` • `GitProject` • `GitMirror`
15
-
16
-
17
- ### `Git` Class
18
-
19
- Use the `Git` class for "low-level / to the metal" git commands
20
- that run in your current working directory.
21
- Example:
22
-
23
- ``` ruby
24
-
25
- ###############
26
- ## "setup" starter git commands
27
-
28
- Git.clone( "git@github.com:rubycoco/gitti.git" )
29
- Git.clone( "git@github.com:rubycoco/gitti.git", "gitti-clone" )
30
-
31
- Git.mirror( "git@github.com:rubycoco/gitti.git" ) ## same as git clone --mirror
32
-
33
- #################
34
- ## standard git commands
35
-
36
- Git.version ## same as git --version
37
- Git.status
38
- Git.status( short: true ) ## same as Git.changes
39
- Git.changes ## same as git status --short
40
-
41
- #####################
42
- ## status helpers
43
-
44
- Git.clean?
45
- Git.changes?
46
- Git.dirty? ## alias for changes?
47
-
48
- #######
49
- ## more (major) git commands
50
-
51
- Git.fetch
52
- Git.pull
53
- Git.fast_forward ## same as git pull --ff-only
54
- Git.ff ## alias for fast_forward
55
- Git.push
56
- Git.add( "pathspec" )
57
- Git.add_all ## same as git --all
58
- Git.commit( "message" )
59
-
60
- Git.files ## same as git ls-tree --full-tree --name-only -r HEAD
61
-
62
- Git.check ## same as git fsck
63
- Git.fsck ## alias for check
64
- Git.checksum ## another alias for check
65
-
66
- Git.origin ## same as git remote show origin
67
- Git.upstream ## same as git remote show upstream
68
- Git.origin?
69
- Git.upstream?
70
-
71
-
72
- Git.config( "user.name" ) ## use --get option
73
- Git.config( "user.name", show_origin: true ) ## add --show-origin flag
74
- Git.config( "user.name", show_scope: true ) ## add --show-scope flag
75
-
76
- Git.config( /user/ ) ## use --get-regexp option
77
- Git.config( /user/, show_origin: true ) ## add --show-origin flag
78
- Git.config( /user/, show_scope: true ) ## add --show-scope flag
79
- ```
80
-
81
-
82
-
83
- ### `GitProject` Class
84
-
85
- Use the `GitProject` class for existing git repo(sitories)
86
- with workspace. Example:
87
-
88
- ``` ruby
89
- GitProject.open( "rubycoco/gitti" ) do |proj|
90
- proj.status
91
- proj.status( short: true )
92
- proj.changes
93
- proj.clean?
94
- proj.changes?
95
- proj.dirty?
96
-
97
- proj.fetch
98
- proj.pull
99
- proj.fast_forward
100
- proj.ff
101
-
102
- proj.push
103
-
104
- proj.add( "pathspec" )
105
- proj.add_all
106
- proj.commit( "message" )
107
-
108
- proj.files
109
-
110
- proj.origin
111
- proj.upstream
112
- proj.origin?
113
- proj.upstream?
114
- end
115
- ```
116
-
117
-
118
- ### `GitMirror` Class
119
-
120
- Use the `GitMirror` class for existing mirrored (bare) git repo(sitories)
121
- without workspace. Example:
122
-
123
- ``` ruby
124
- GitMirror.open( "rubycoco/gitti.git" ) do |mirror|
125
- mirror.update # sames as git remote update
126
- end
127
- ```
128
-
129
-
130
-
131
- That's it for now.
132
-
133
-
134
- ## Installation
135
-
136
- Use
137
-
138
- gem install gitti
139
-
140
- or add to your Gemfile
141
-
142
- gem 'gitti'
143
-
144
-
145
-
146
- ## License
147
-
148
- The `gitti` scripts are dedicated to the public domain.
149
- Use it as you please with no restrictions whatsoever.
150
-
1
+ # gitti
2
+
3
+ gitti gem - (yet) another (lite) git command line helper / wrapper
4
+
5
+ * home :: [github.com/rubycoco/gitti](https://github.com/rubycoco/gitti)
6
+ * bugs :: [github.com/rubycoco/gitti/issues](https://github.com/rubycoco/gitti/issues)
7
+ * gem :: [rubygems.org/gems/gitti](https://rubygems.org/gems/gitti)
8
+ * rdoc :: [rubydoc.info/gems/gitti](http://rubydoc.info/gems/gitti)
9
+
10
+
11
+
12
+ ## Usage
13
+
14
+ `Git` • `GitProject` • `GitMirror`
15
+
16
+
17
+ ### `Git` Class
18
+
19
+ Use the `Git` class for "low-level / to the metal" git commands
20
+ that run in your current working directory.
21
+ Example:
22
+
23
+ ``` ruby
24
+
25
+ ###############
26
+ ## "setup" starter git commands
27
+
28
+ Git.clone( "https://github.com/rubycoco/gitti.git" )
29
+ Git.clone( "https://github.com/rubycoco/gitti.git", "gitti-clone" )
30
+ # -or- -- if you have write / commit access use ssh
31
+ Git.clone( "git@github.com:rubycoco/gitti.git" )
32
+ Git.clone( "git@github.com:rubycoco/gitti.git", "gitti-clone" )
33
+
34
+ Git.mirror( "https://github.com/rubycoco/gitti.git" ) ## same as git clone --mirror
35
+
36
+ #################
37
+ ## standard git commands
38
+
39
+ Git.version ## same as git --version
40
+ Git.status
41
+ Git.status( short: true ) ## same as Git.changes
42
+ Git.changes ## same as git status --short
43
+
44
+ #####################
45
+ ## status helpers
46
+
47
+ Git.clean?
48
+ Git.changes?
49
+ Git.dirty? ## alias for changes?
50
+
51
+ #######
52
+ ## more (major) git commands
53
+
54
+ Git.fetch
55
+ Git.pull
56
+ Git.fast_forward ## same as git pull --ff-only
57
+ Git.ff ## alias for fast_forward
58
+ Git.push
59
+ Git.add( "pathspec" )
60
+ Git.add_all ## same as git --all
61
+ Git.commit( "message" )
62
+
63
+ Git.files ## same as git ls-tree --full-tree --name-only -r HEAD
64
+
65
+ Git.check ## same as git fsck
66
+ Git.fsck ## alias for check
67
+ Git.checksum ## another alias for check
68
+
69
+ Git.master? ## on master branch
70
+ Git.main? ## on main branch
71
+
72
+ Git.origin ## same as git remote show origin
73
+ Git.upstream ## same as git remote show upstream
74
+ Git.origin?
75
+ Git.upstream?
76
+
77
+ Git.config( "user.name" ) ## use --get option
78
+ Git.config( "user.name", show_origin: true ) ## add --show-origin flag
79
+ Git.config( "user.name", show_scope: true ) ## add --show-scope flag
80
+
81
+ Git.config( /user/ ) ## use --get-regexp option
82
+ Git.config( /user/, show_origin: true ) ## add --show-origin flag
83
+ Git.config( /user/, show_scope: true ) ## add --show-scope flag
84
+ ```
85
+
86
+
87
+
88
+ ### `GitProject` Class
89
+
90
+ Use the `GitProject` class for existing git repo(sitories)
91
+ with workspace. Example:
92
+
93
+ ``` ruby
94
+ GitProject.open( "rubycoco/gitti" ) do |proj|
95
+ proj.status
96
+ proj.status( short: true )
97
+ proj.changes
98
+ proj.clean?
99
+ proj.changes?
100
+ proj.dirty?
101
+
102
+ proj.fetch
103
+ proj.pull
104
+ proj.fast_forward
105
+ proj.ff
106
+
107
+ proj.push
108
+
109
+ proj.add( "pathspec" )
110
+ proj.add_all
111
+ proj.commit( "message" )
112
+
113
+ proj.files
114
+
115
+ proj.master?
116
+ proj.main?
117
+
118
+ proj.origin
119
+ proj.upstream
120
+ proj.origin?
121
+ proj.upstream?
122
+ end
123
+ ```
124
+
125
+
126
+ ### `GitMirror` Class
127
+
128
+ Use the `GitMirror` class for existing mirrored (bare) git repo(sitories)
129
+ without workspace. Example:
130
+
131
+ ``` ruby
132
+ GitMirror.open( "rubycoco/gitti.git" ) do |mirror|
133
+ mirror.update # sames as git remote update
134
+ end
135
+ ```
136
+
137
+
138
+
139
+ That's it for now.
140
+
141
+
142
+
143
+ ## Real World Usage
144
+
145
+ The [`monos`](https://github.com/rubycoco/monos) gem incl. some monorepo / mono source tree tools and (startup) scripts
146
+ that let you run git commands on multiple repos.
147
+
148
+
149
+
150
+ ## Installation
151
+
152
+ Use
153
+
154
+ gem install gitti
155
+
156
+ or add to your Gemfile
157
+
158
+ gem 'gitti'
159
+
160
+
161
+
162
+ ## License
163
+
164
+ The `gitti` scripts are dedicated to the public domain.
165
+ Use it as you please with no restrictions whatsoever.
166
+
data/Rakefile CHANGED
@@ -17,12 +17,13 @@ Hoe.spec 'gitti' do
17
17
  self.readme_file = 'README.md'
18
18
  self.history_file = 'CHANGELOG.md'
19
19
 
20
- self.extra_deps = []
20
+ self.extra_deps = [
21
+ ['shell-lite', '>= 0.0.1' ],
22
+ ]
21
23
 
22
24
  self.licenses = ['Public Domain']
23
25
 
24
26
  self.spec_extras = {
25
27
  required_ruby_version: '>= 2.2.2'
26
28
  }
27
-
28
29
  end
@@ -1,57 +1,60 @@
1
- require 'pp'
2
- require 'time'
3
- require 'date' ## e.g. Date.today etc.
4
- require 'yaml'
5
- require 'json'
6
- require 'uri'
7
- require 'net/http'
8
- require "net/https"
9
- require 'open3'
10
- require 'fileutils' ## e.g. FileUtils.mkdir_p etc.
11
-
12
-
13
-
14
- # our own code
15
- require 'gitti/version' # note: let version always go first
16
- require 'gitti/git'
17
- require 'gitti/project'
18
- require 'gitti/mirror'
19
- require 'gitti/reposet'
20
-
21
-
22
-
23
- module Gitti
24
- ## todo: change to GitHubRepoRef or GitHubProject
25
- ## or Git::GitHub or Git::Source::GitHub or such - why? why not?
26
- class GitHubRepo
27
- attr_reader :owner, :name
28
-
29
- def initialize( owner, name )
30
- @owner = owner ## use/rename to login or something - why? why not??
31
- @name = name # e.g. "rubylibs/webservice"
32
- end
33
-
34
-
35
- def ssh_clone_url
36
- ## check: use https: as default? for github - http:// still supported? or redirected?
37
- ## "http://github.com/#{@owner}/#{@name}"
38
- "git@github.com:#{@owner}/#{@name}.git"
39
- end
40
-
41
- def http_clone_url ## use clone_url( http: true ) -- why? why not?
42
- ## note: https is default for github - http:// gets redirected to https://
43
- "http://github.com/#{@owner}/#{@name}"
44
- end
45
-
46
- def https_clone_url
47
- "https://github.com/#{@owner}/#{@name}"
48
- end
49
-
50
-
51
- end ## class GitHubRepo
52
- end ## module Gitti
53
-
54
-
55
-
56
- # say hello
57
- puts GittiCore.banner ## if defined?( $RUBYCOCO_DEBUG )
1
+ require 'shell-lite' ## note: move shell execute for (re)use to its own (upstream) gem
2
+
3
+ module Gitti
4
+ Shell = Computer::Shell
5
+ ShellError = Computer::ShellError
6
+ GitError = Computer::ShellError ## raised if git exec returns with non-zero exit - just use ShellError - why? why not?
7
+ ## raised by Git::Shell.run
8
+ ## todo/check: use ShellError or RunError - why? why not?
9
+ ## and make Git::Shell top-level e.g. Shell - why? why not?
10
+
11
+ ## differentiate into/use
12
+ ## GitShell.run/GitCmd.run() or such and Shell.run - why? why not?
13
+ end
14
+
15
+
16
+
17
+ # our own code
18
+ require 'gitti/version' # note: let version always go first
19
+ require 'gitti/git'
20
+ require 'gitti/project'
21
+ require 'gitti/mirror'
22
+ require 'gitti/reposet'
23
+
24
+
25
+
26
+ module Gitti
27
+ ## todo: change to GitHubRepoRef or GitHubProject
28
+ ## or Git::GitHub or Git::Source::GitHub or such - why? why not?
29
+ class GitHubRepo
30
+ attr_reader :owner, :name
31
+
32
+ def initialize( owner, name )
33
+ @owner = owner ## use/rename to login or something - why? why not??
34
+ @name = name # e.g. "rubylibs/webservice"
35
+ end
36
+
37
+
38
+ def ssh_clone_url
39
+ ## check: use https: as default? for github - http:// still supported? or redirected?
40
+ ## "http://github.com/#{@owner}/#{@name}"
41
+ "git@github.com:#{@owner}/#{@name}.git"
42
+ end
43
+
44
+ def http_clone_url ## use clone_url( http: true ) -- why? why not?
45
+ ## note: https is default for github - http:// gets redirected to https://
46
+ "http://github.com/#{@owner}/#{@name}"
47
+ end
48
+
49
+ def https_clone_url
50
+ "https://github.com/#{@owner}/#{@name}"
51
+ end
52
+
53
+
54
+ end ## class GitHubRepo
55
+ end ## module Gitti
56
+
57
+
58
+
59
+ # say hello
60
+ puts GittiCore.banner ## if defined?( $RUBYCOCO_DEBUG )
@@ -1,24 +1,18 @@
1
1
  module Gitti
2
2
 
3
- ## raised by Git::Shell.run -- check if top-level ShellError alread exists?
4
- ## use ShellError or RunError - why? why not?
5
- ## and make Git::Shell top-level e.g. Shell - why? why not?
6
- class GitError < StandardError
7
- end
8
-
9
-
10
3
  class Git ## make Git a module - why? why not?
11
4
 
12
5
  ###
13
6
  ## todo/fix: change opts=nil to *args or such - why? why not?
14
7
 
15
-
16
8
  ###############
17
9
  ## "setup" starter git commands
18
10
 
19
- def self.clone( repo, name=nil )
20
- cmd = "git clone #{repo}"
21
- cmd << " #{name}" unless name.nil? || name.empty?
11
+ def self.clone( repo, name=nil, depth: nil )
12
+ cmd = "git clone"
13
+ cmd << " --depth #{depth}" unless depth.nil?
14
+ cmd << " #{repo}"
15
+ cmd << " #{name}" unless name.nil? || name.empty?
22
16
  Shell.run( cmd )
23
17
  end
24
18
 
@@ -194,6 +188,21 @@ class Git ## make Git a module - why? why not?
194
188
  end
195
189
 
196
190
 
191
+ def self.branch
192
+ cmd = 'git branch'
193
+ Shell.run( cmd )
194
+ end
195
+
196
+ def self.master?
197
+ output = branch ## check for '* master'
198
+ output.split( /\r?\n/ ).include?( '* master' )
199
+ end
200
+
201
+ def self.main?
202
+ output = branch ## check for '* main'
203
+ output.split( /\r?\n/ ).include?('* main')
204
+ end
205
+
197
206
  ## git remote update will update all of your branches
198
207
  ## set to track remote ones, but not merge any changes in.
199
208
  ##
@@ -214,6 +223,7 @@ class Git ## make Git a module - why? why not?
214
223
  Shell.run( cmd )
215
224
  end
216
225
 
226
+
217
227
  def self.origin ## e.g. git remote show origin
218
228
  cmd = "git remote show origin"
219
229
  Shell.run( cmd )
@@ -224,15 +234,23 @@ class Git ## make Git a module - why? why not?
224
234
  Shell.run( cmd )
225
235
  end
226
236
 
237
+ def self.remote
238
+ cmd = "git remote"
239
+ Shell.run( cmd )
240
+ end
241
+
227
242
  def self.origin?
228
- puts "todo/fix: check if remote origin is available/exists - how?"
243
+ output = remote ## check for 'origin'
244
+ output.split( /\r?\n/ ).include?( 'origin' )
229
245
  end
230
246
 
231
247
  def self.upstream?
232
- puts "todo/fix: check if remote upstream is available/exists - how?"
248
+ output = remote ## check for 'upstream'
249
+ output.split( /\r?\n/ ).include?( 'upstream' )
233
250
  end
234
251
 
235
252
 
253
+
236
254
  def self.check ## e.g. git fsck - check/validate hash of objects
237
255
  cmd = "git fsck"
238
256
  Shell.run( cmd )
@@ -242,49 +260,6 @@ class Git ## make Git a module - why? why not?
242
260
  alias_method :checksum, :check
243
261
  end
244
262
 
245
-
246
-
247
- ###
248
- # use nested class for "base" for running commands - why? why not?
249
- class Shell
250
- def self.run( cmd )
251
- print "cmd exec >#{cmd}<..."
252
- stdout, stderr, status = Open3.capture3( cmd )
253
-
254
- if status.success?
255
- print " OK"
256
- print "\n"
257
- else
258
- print " FAIL (#{status.exitstatus})"
259
- print "\n"
260
- end
261
-
262
- unless stdout.empty?
263
- puts stdout
264
- end
265
-
266
- unless stderr.empty?
267
- ## todo/check: or use >2: or &2: or such
268
- ## stderr output not always an error (that is, exit status might be 0)
269
- puts "STDERR:"
270
- puts stderr
271
- end
272
-
273
- if status.success?
274
- stdout # return stdout string
275
- else
276
- puts "!! ERROR: cmd exec >#{cmd}< failed with exit status #{status.exitstatus}:"
277
- puts stderr
278
-
279
- ### todo/fix: do NOT use GitError here!!! make it more "general"
280
- ### use a Git::Shell.run() wrapper or such - why? why not?
281
- ## or use a Shell.git() or Shell.git_run() ???
282
- ## or pass in error class - why? why not?
283
- raise GitError, "cmd exec >#{cmd}< failed with exit status #{status.exitstatus}<: #{stderr}"
284
- end
285
- end
286
- end # class Git::Shell
287
-
288
263
  end # class Git
289
264
 
290
265
  end # module Gitti
@@ -1,33 +1,33 @@
1
- module Gitti
2
-
3
- class GitMirror
4
- def self.open( path, &blk )
5
- new( path ).open( &blk )
6
- end
7
-
8
- def self.update( path ) ### all-in-one convenience shortcut
9
- new( path).open { |mirror| mirror.update }
10
- end
11
-
12
-
13
-
14
- def initialize( path )
15
- raise ArgumentError, "dir >#{path}< not found; dir MUST already exist for GitMirror class - sorry" unless Dir.exist?( path )
16
- ## todo/check: check for more dirs and files e.g.
17
- ## /info,/objects,/refs, /hooks, HEAD, config, description -- why? why not?
18
- raise ArgumentError, "dir >#{path}/objects< not found; dir MUST already be initialized with git for GitMirror class - sorry" unless Dir.exist?( "#{path}/objects" )
19
- @path = path
20
- end
21
-
22
-
23
- def open( &blk )
24
- Dir.chdir( @path ) do
25
- blk.call( self )
26
- end
27
- end
28
-
29
- def update() Git.update; end
30
-
31
- end # class GitMirror
32
- end # module Gitti
33
-
1
+ module Gitti
2
+
3
+ class GitMirror
4
+ def self.open( path, &blk )
5
+ new( path ).open( &blk )
6
+ end
7
+
8
+ def self.update( path ) ### all-in-one convenience shortcut
9
+ new( path).open { |mirror| mirror.update }
10
+ end
11
+
12
+
13
+
14
+ def initialize( path )
15
+ raise ArgumentError, "dir >#{path}< not found; dir MUST already exist for GitMirror class - sorry" unless Dir.exist?( path )
16
+ ## todo/check: check for more dirs and files e.g.
17
+ ## /info,/objects,/refs, /hooks, HEAD, config, description -- why? why not?
18
+ raise ArgumentError, "dir >#{path}/objects< not found; dir MUST already be initialized with git for GitMirror class - sorry" unless Dir.exist?( "#{path}/objects" )
19
+ @path = path
20
+ end
21
+
22
+
23
+ def open( &blk )
24
+ Dir.chdir( @path ) do
25
+ blk.call( self )
26
+ end
27
+ end
28
+
29
+ def update() Git.update; end
30
+
31
+ end # class GitMirror
32
+ end # module Gitti
33
+
@@ -43,11 +43,17 @@ class GitProject
43
43
 
44
44
 
45
45
  ### remote show origin|upstream|etc.
46
+ def remote() Git.remote; end
46
47
  def origin() Git.origin; end
47
48
  def upstream() Git.upstream; end
48
49
  def origin?() Git.origin?; end
49
50
  def upstream?() Git.upstream?; end
50
51
 
52
+ ### branch management
53
+ def branch() Git.branch; end
54
+ def master?() Git.master?; end
55
+ def main?() Git.main?; end
56
+
51
57
 
52
58
  def run( cmd ) Git::Shell.run( cmd ); end
53
59
  end # class GitProject
@@ -7,8 +7,8 @@
7
7
 
8
8
  module GittiCore ## todo/check: rename GittiBase or GittiMeta or such - why? why not?
9
9
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
10
- MINOR = 4
11
- PATCH = 0
10
+ MINOR = 6
11
+ PATCH = 1
12
12
  VERSION = [MAJOR,MINOR,PATCH].join('.')
13
13
 
14
14
  def self.version
@@ -20,7 +20,7 @@ module GittiCore ## todo/check: rename GittiBase or GittiMeta or such - why?
20
20
  end
21
21
 
22
22
  def self.root
23
- "#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
23
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
24
24
  end
25
25
  end # module GittiCore
26
26
 
@@ -6,6 +6,16 @@ require 'helper'
6
6
 
7
7
  class TestBase < MiniTest::Test
8
8
 
9
+ def test_branch
10
+ Git.branch
11
+ assert_equal true, Git.master?
12
+ assert_equal false, Git.main?
13
+
14
+ Git.remote
15
+ assert_equal true, Git.origin?
16
+ assert_equal false, Git.upstream?
17
+ end
18
+
9
19
 
10
20
  def test_git_config
11
21
  puts "---"
metadata CHANGED
@@ -1,43 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-06 00:00:00.000000000 Z
11
+ date: 2020-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: shell-lite
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rdoc
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - "~>"
31
+ - - ">="
18
32
  - !ruby/object:Gem::Version
19
33
  version: '4.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '7'
20
37
  type: :development
21
38
  prerelease: false
22
39
  version_requirements: !ruby/object:Gem::Requirement
23
40
  requirements:
24
- - - "~>"
41
+ - - ">="
25
42
  - !ruby/object:Gem::Version
26
43
  version: '4.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '7'
27
47
  - !ruby/object:Gem::Dependency
28
48
  name: hoe
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
51
  - - "~>"
32
52
  - !ruby/object:Gem::Version
33
- version: '3.16'
53
+ version: '3.22'
34
54
  type: :development
35
55
  prerelease: false
36
56
  version_requirements: !ruby/object:Gem::Requirement
37
57
  requirements:
38
58
  - - "~>"
39
59
  - !ruby/object:Gem::Version
40
- version: '3.16'
60
+ version: '3.22'
41
61
  description: gitti - (yet) another (lite) git command line helper / wrapper
42
62
  email: ruby-talk@ruby-lang.org
43
63
  executables: []