devtools-jdiff 1.0.0 → 1.1.0

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: fb03878b0815ae6c847bf65d121323c0d4f28720
4
- data.tar.gz: be362377156fef0f1bd7ac147b17a25b87ad9790
3
+ metadata.gz: c0724457fede3383a2e9653e143980b65e38f309
4
+ data.tar.gz: db10e913a6fafc9859d761070fd6f0ae06b26574
5
5
  SHA512:
6
- metadata.gz: 10f0bf6619e4a1c15db2828447d1a6f16e5ffc50c012f9b0240c35c6a798d02ea37675d2202ebdb5f2c8b1eaa3a713ebdce1bc3f27c60d63c97f9695d5dc6ab4
7
- data.tar.gz: 7668654ff35a70baf40d3b8cde29576ba61d45982a3815dbb85fef6b0a018756bdc5f8a85ee05cdbebbfcd9514aa945fe3910e9ccb7cdf0f53b20f60e8d23bdd
6
+ metadata.gz: 7c5eed3c6442333d79b3b6ce1a4ecb0ec4c0cffb65bb5f16c05e5e0dc4ed82d4f86918f1999642a2787d63f6b1aeda114171c43b7d4cf32e42ab483a29743cc2
7
+ data.tar.gz: b4be7bd611b3426ef1785541729224faffe7817c6273968994e3f517604b2d81e70765a6758646be24494c45c091ae719e0f23ecfde0e1f62d47b04d23b5503e
@@ -1,5 +1,5 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3.3
5
- before_install: gem install bundler -v 1.13.5
4
+ - 2.4.0
5
+ before_install: gem install bundler -v 1.14.3
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "jira_diff/globals"
4
+ require "jira_diff/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "devtools-jdiff"
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "config", "~> 1.3"
25
- spec.add_dependency "octokit", "~> 4.0"
24
+ spec.add_dependency "config", "~> 1.4"
25
+ spec.add_dependency "octokit", "~> 4.6"
26
26
  spec.add_dependency "devtools-base", "~> 2.0"
27
27
 
28
- spec.add_development_dependency "bundler", "~> 1.13"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "rspec", "~> 3.0"
31
- spec.add_development_dependency "pry", "~> 0.4"
32
- spec.add_development_dependency "factory_girl", "~> 4.0"
28
+ spec.add_development_dependency "bundler", "~> 1.14"
29
+ spec.add_development_dependency "rake", "~> 12.0"
30
+ spec.add_development_dependency "rspec", "~> 3.5"
31
+ spec.add_development_dependency "pry", "~> 0.10"
32
+ spec.add_development_dependency "factory_girl", "~> 4.8"
33
33
  end
@@ -1,5 +1,5 @@
1
1
  require "devtools"
2
- require "jira_diff/globals"
2
+ require "jira_diff/version"
3
3
  require "jira_diff/options"
4
4
  require "jira_diff/stories"
5
5
 
@@ -12,18 +12,18 @@ module JIRADiff
12
12
 
13
13
  def log(branch)
14
14
  raise RuntimeError, "Invalid branch: #{branch}" unless branch_valid? branch
15
- run_command("\\git --no-pager log --no-merges --pretty='%H|%s' #{branch}")
15
+ run_command("\\git --no-pager log --no-merges --pretty='%H|%B\1' #{branch}").split("\1")
16
16
  end
17
17
 
18
18
  def branch_valid?(branch)
19
- run_command("\\git branch --all --list #{branch}")[0] =~ /#{branch}/
19
+ run_command("\\git branch --all --list #{branch}").split("/n")[0] =~ /#{branch}/
20
20
  end
21
21
 
22
22
  private
23
23
 
24
24
  def run_command(cmd)
25
25
  Open3.popen3(cmd, chdir: @working_dir) do |_i, o, _e, _t|
26
- o.read.split("\n")
26
+ o.read
27
27
  end
28
28
  end
29
29
  end
@@ -5,11 +5,11 @@ module JIRADiff
5
5
  class Stories
6
6
 
7
7
  def initialize(opts = Options.defaults)
8
- @branches = _get_branches(opts[:master], opts[:source])
8
+ @branches = _get_branches(opts[:master], opts[:source])
9
9
  @directory = opts[:directory] || '.'
10
- @includes = _get_includes(opts.includes)
11
- @options = opts
12
- @stories = opts[:stories] || {}
10
+ @includes = _get_includes(opts.includes)
11
+ @options = opts
12
+ @stories = opts[:stories] || {}
13
13
 
14
14
  _get_stories if @stories == {}
15
15
  end
@@ -43,7 +43,7 @@ module JIRADiff
43
43
 
44
44
  def master=(new_master)
45
45
  @stories[master] = []
46
- @branches[0] = new_master
46
+ @branches[0] = new_master
47
47
  _get_stories(new_master)
48
48
  end
49
49
 
@@ -77,14 +77,14 @@ module JIRADiff
77
77
 
78
78
  def diff
79
79
  stories = []
80
- opts = @options
80
+ opts = @options
81
81
 
82
82
  source_stories.each do |story|
83
83
  stories << story unless find(master, story.sha)
84
84
  end
85
85
 
86
- opts.source = ['diff']
87
- opts.stories = {'diff' => stories.flatten}
86
+ opts.source = ['diff']
87
+ opts.stories = { 'diff' => stories.flatten }
88
88
  Stories.new opts
89
89
  end
90
90
 
@@ -112,6 +112,8 @@ module JIRADiff
112
112
  branches.to_a.each do |branch|
113
113
  puts "checking #{branch}" if @options.debug
114
114
  git.log(branch).each do |line|
115
+ line.strip!
116
+ next if line.empty?
115
117
  add_story branch, Story.new(line)
116
118
  end
117
119
  end
@@ -1,31 +1,28 @@
1
1
  module JIRADiff
2
2
 
3
3
  class Story
4
- def initialize( story )
5
- unless story =~ /\S+|\S+/
6
- raise ArgumentError, "story must follow 'SHA|description' format"
4
+ def initialize(story)
5
+ unless story =~ /\w{40}|.*/
6
+ raise ArgumentError, 'story must follow "SHA|description" format'
7
7
  end
8
8
 
9
- @sha, @description = story.split('|')
9
+ @sha, description = story.split("|")
10
+ @stories, @description = split_story description
10
11
 
11
12
  raise ArgumentError if @sha.nil? || @description.nil?
12
13
  end
13
- attr_reader :sha
14
14
 
15
- def split_story( description = @description )
16
- raise RuntimeError 'description cannot be blank' unless description
15
+ attr_reader :sha, :stories, :description
17
16
 
18
- stories = []
19
- story_pattern = /\[?(((SRMPRT|OSMCLOUD)\-\d+)|NO-JIRA)\]?[,:\-\s]+\s*(.*)$/
20
- line = description.match(story_pattern)
17
+ def split_story(description)
18
+ raise RuntimeError, "description cannot be blank" unless description
21
19
 
22
- if line.nil? # did not find a JIRA ticket pattern
23
- stories.push 'NO-JIRA'
24
- desc = description.strip
25
- else
26
- stories.push line.captures[0]
27
- desc = line.captures[3].strip
28
- end
20
+ stories = []
21
+ story_pattern = /\[?(((SRMPRT|OSMCLOUD)\-\d+)|NO-JIRA)\]?[,:\-\s]?\s*(.*)$/m
22
+ line = description.match(story_pattern)
23
+
24
+ stories.push line ? line.captures[0] : "JIRA-NOT-FOUND"
25
+ desc = (line ? line.captures[3] : description).strip
29
26
 
30
27
  # Perform recursion if there are multiple tickets in the description
31
28
  if desc =~ story_pattern
@@ -37,16 +34,12 @@ module JIRADiff
37
34
  [stories.flatten, desc]
38
35
  end
39
36
 
40
- def tickets
41
- (split_story)[0]
42
- end
43
-
44
- def desc
45
- (split_story)[1]
37
+ def subject
38
+ @description.split("\n")[0].gsub(/[*:-]/, " ").strip rescue "No Description Provided"
46
39
  end
47
40
 
48
41
  def to_s
49
- '[%07.07s] %s - %s' % [sha, tickets.join(', '), desc]
42
+ "[%07.07s] %-14s - %.80s" % [sha, stories.join(", "), subject]
50
43
  end
51
44
 
52
45
  end
@@ -1,4 +1,4 @@
1
1
  module JIRADiff
2
2
  PROGRAM_NAME = "JIRADiff"
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devtools-jdiff
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donovan Young
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-03 00:00:00.000000000 Z
11
+ date: 2017-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: config
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '1.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: octokit
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.0'
33
+ version: '4.6'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.0'
40
+ version: '4.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: devtools-base
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,70 +58,70 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.13'
61
+ version: '1.14'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.13'
68
+ version: '1.14'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '12.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '12.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '3.5'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '3.5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.4'
103
+ version: '0.10'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.4'
110
+ version: '0.10'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: factory_girl
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '4.0'
117
+ version: '4.8'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '4.0'
124
+ version: '4.8'
125
125
  description: Looks for JIRA stories within the commits in a git repositoryand compares
126
126
  branches to find stories included in one branchbut not another
127
127
  email:
@@ -146,10 +146,10 @@ files:
146
146
  - exe/jdiff
147
147
  - lib/jira_diff.rb
148
148
  - lib/jira_diff/git.rb
149
- - lib/jira_diff/globals.rb
150
149
  - lib/jira_diff/options.rb
151
150
  - lib/jira_diff/stories.rb
152
151
  - lib/jira_diff/story.rb
152
+ - lib/jira_diff/version.rb
153
153
  homepage: https://github.com/dyoung522/devtools-jdiff
154
154
  licenses:
155
155
  - MIT
@@ -170,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  version: '0'
171
171
  requirements: []
172
172
  rubyforge_project:
173
- rubygems_version: 2.5.2
173
+ rubygems_version: 2.6.8
174
174
  signing_key:
175
175
  specification_version: 4
176
176
  summary: Compares git branches, searching for JIRA stories