schacon-git 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/lib/git/base.rb +11 -0
  2. data/lib/git/lib.rb +19 -0
  3. data/lib/git/log.rb +22 -1
  4. metadata +1 -1
data/lib/git/base.rb CHANGED
@@ -367,6 +367,17 @@ module Git
367
367
  self.lib.gc
368
368
  end
369
369
 
370
+ def apply(file)
371
+ if File.exists?(file)
372
+ self.lib.apply(file)
373
+ end
374
+ end
375
+
376
+ def apply_mail(file)
377
+ if File.exists?(file)
378
+ self.lib.apply_mail(file)
379
+ end
380
+ end
370
381
 
371
382
  ## LOWER LEVEL INDEX OPERATIONS ##
372
383
 
data/lib/git/lib.rb CHANGED
@@ -67,6 +67,9 @@ module Git
67
67
  arr_opts = ['--pretty=oneline']
68
68
  arr_opts << "-#{opts[:count]}" if opts[:count]
69
69
  arr_opts << "--since=\"#{opts[:since]}\"" if opts[:since].is_a? String
70
+ arr_opts << "--until=\"#{opts[:until]}\"" if opts[:until].is_a? String
71
+ arr_opts << "--grep=\"#{opts[:grep]}\"" if opts[:grep].is_a? String
72
+ arr_opts << "--author=\"#{opts[:author]}\"" if opts[:author].is_a? String
70
73
  arr_opts << "#{opts[:between][0].to_s}..#{opts[:between][1].to_s}" if (opts[:between] && opts[:between].size == 2)
71
74
  arr_opts << opts[:object] if opts[:object].is_a? String
72
75
  arr_opts << '-- ' + opts[:path_limiter] if opts[:path_limiter].is_a? String
@@ -78,6 +81,9 @@ module Git
78
81
  arr_opts = ['--pretty=raw']
79
82
  arr_opts << "-#{opts[:count]}" if opts[:count]
80
83
  arr_opts << "--since=\"#{opts[:since]}\"" if opts[:since].is_a? String
84
+ arr_opts << "--until=\"#{opts[:until]}\"" if opts[:until].is_a? String
85
+ arr_opts << "--grep=\"#{opts[:grep]}\"" if opts[:grep].is_a? String
86
+ arr_opts << "--author=\"#{opts[:author]}\"" if opts[:author].is_a? String
81
87
  arr_opts << "#{opts[:between][0].to_s}..#{opts[:between][1].to_s}" if (opts[:between] && opts[:between].size == 2)
82
88
  arr_opts << opts[:object] if opts[:object].is_a? String
83
89
  arr_opts << '-- ' + opts[:path_limiter] if opts[:path_limiter].is_a? String
@@ -387,6 +393,18 @@ module Git
387
393
  command('reset', arr_opts)
388
394
  end
389
395
 
396
+ def apply(patch_file)
397
+ arr_opts = []
398
+ arr_opts << patch_file.to_s if patch_file
399
+ command('apply', arr_opts)
400
+ end
401
+
402
+ def apply_mail(patch_file)
403
+ arr_opts = []
404
+ arr_opts << patch_file.to_s if patch_file
405
+ command('am', arr_opts)
406
+ end
407
+
390
408
  def stashes_all
391
409
  arr = []
392
410
  filename = File.join(@git_dir, 'logs/refs/stash')
@@ -429,6 +447,7 @@ module Git
429
447
  def checkout(branch, opts = {})
430
448
  arr_opts = []
431
449
  arr_opts << '-f' if opts[:force]
450
+ arr_opts << ["-b '#{opts[:new_branch]}'"] if opts[:new_branch]
432
451
  arr_opts << branch.to_s
433
452
 
434
453
  command('checkout', arr_opts)
data/lib/git/log.rb CHANGED
@@ -11,6 +11,7 @@ module Git
11
11
  @path = nil
12
12
  @count = nil
13
13
  @since = nil
14
+ @until = nil
14
15
  @between = nil
15
16
 
16
17
  @dirty_flag = nil
@@ -26,6 +27,18 @@ module Git
26
27
  @object = objectish
27
28
  return self
28
29
  end
30
+
31
+ def author(regex)
32
+ dirty_log
33
+ @author = regex
34
+ return self
35
+ end
36
+
37
+ def grep(regex)
38
+ dirty_log
39
+ @grep = regex
40
+ return self
41
+ end
29
42
 
30
43
  def path(path)
31
44
  dirty_log
@@ -39,6 +52,12 @@ module Git
39
52
  return self
40
53
  end
41
54
 
55
+ def until(date)
56
+ dirty_log
57
+ @until = date
58
+ return self
59
+ end
60
+
42
61
  def between(sha1, sha2 = nil)
43
62
  dirty_log
44
63
  @between = [sha1, sha2]
@@ -85,7 +104,9 @@ module Git
85
104
  # actually run the 'git log' command
86
105
  def run_log
87
106
  log = @base.lib.full_log_commits(:count => @count, :object => @object,
88
- :path_limiter => @path, :since => @since, :between => @between)
107
+ :path_limiter => @path, :since => @since,
108
+ :author => @author, :grep => @grep,
109
+ :until => @until, :between => @between)
89
110
  @commits = log.map { |c| Git::Object::Commit.new(@base, c['sha'], c) }
90
111
  end
91
112
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schacon-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon