todos_export 0.1.0 → 0.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bf5fa8301c8d5d433196901d6deed5401ad3ce5d
4
+ data.tar.gz: 7cbf93f02c90142b61b06721c6d2ede7491e98c3
5
+ SHA512:
6
+ metadata.gz: 07216597538d032a5dd764e75e6e7beb76c339aa45fa86107050d4641abbae603c0e72191129f481b44be01fe771de63aec11f23c541bdf49302910849ebe1c7
7
+ data.tar.gz: a37068bf74c679dc3f5c24130e7f0a47e9737dd47ea8d82634f11247e3e70cc9bee9ad5fed1c90328263c0586254f5cc3ccabd6677190dd1d219d8ec4a483c76
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # TodosExport
1
+ # Todo's Export
2
2
 
3
3
  Export comment TODO's, FIXME's and BUG's from your code.
4
4
 
5
- [![Build Status](https://travis-ci.org/rcaught/todos_export.png)](https://travis-ci.org/rcaught/todos_export)
5
+ [![Build Status](https://travis-ci.org/rcaught/todos_export.png?branch=master)](https://travis-ci.org/rcaught/todos_export)
6
6
  [![Dependency Status](https://gemnasium.com/rcaught/todos_export.png)](https://gemnasium.com/rcaught/todos_export)
7
7
  [![Coverage Status](https://coveralls.io/repos/rcaught/todos_export/badge.png)](https://coveralls.io/r/rcaught/todos_export)
8
8
  [![Code Climate](https://codeclimate.com/github/rcaught/todos_export.png)](https://codeclimate.com/github/rcaught/todos_export)
data/lib/todos_export.rb CHANGED
@@ -2,6 +2,9 @@ require "todos_export/version"
2
2
  require 'todos_export/github_issues'
3
3
  require "highline/import"
4
4
  require 'octokit'
5
+ require 'rugged'
6
+ require 'awesome_print'
7
+
5
8
  HighLine.track_eof = false
6
9
 
7
10
  module TodosExport
@@ -48,6 +51,23 @@ module TodosExport
48
51
  end
49
52
  end
50
53
 
54
+ def git_directory?
55
+ begin
56
+ Rugged::Repository.new(self.target)
57
+ return true
58
+ rescue
59
+ return false
60
+ end
61
+ end
62
+
63
+ def git_head_sha
64
+ if git_directory?
65
+ Rugged::Repository.new(self.target).head.target
66
+ else
67
+ nil
68
+ end
69
+ end
70
+
51
71
  def exportable_todos
52
72
  self.exportables.select { |x| x[:type] == 'TODO' }
53
73
  end
@@ -1,6 +1,6 @@
1
1
  module TodosExport
2
2
  class GithubIssues
3
- attr_accessor :main
3
+ attr_accessor :main, :remote_repo
4
4
 
5
5
  def initialize(main)
6
6
  @main = main
@@ -38,24 +38,29 @@ module TodosExport
38
38
  menu.prompt = "Choose a repository to add issues to:"
39
39
 
40
40
  @client.repos.each do |repo|
41
- menu.choice(repo.full_name) { @repo = repo.full_name }
41
+ menu.choice(repo.full_name) { @remote_repo = repo.full_name }
42
42
  end
43
43
  end
44
44
  end
45
45
 
46
+ def github_line_url(file, line)
47
+ sha = self.main.git_head_sha || 'master'
48
+ "https://github.com/#{@remote_repo}/blob/#{sha}/#{file}#L#{line}"
49
+ end
50
+
46
51
  def process_exportables
47
52
  say("\n")
48
53
  self.main.exportables.each do |ex|
49
54
  say("Create a new Issue")
50
55
  say("==================")
51
56
  say("<%= color('Name:', :green) %>\n#{ex[:content]}")
52
- say("<%= color('Description:', :green) %>\n#{ex[:content]}\n\nhttps://github.com/#{@repo}/blob/master/#{ex[:file]}#L#{ex[:line]}")
57
+ say("<%= color('Description:', :green) %>\n#{ex[:content]}\n\n#{self.github_line_url(ex[:file], ex[:line])}")
53
58
  say("<%= color('Tags:', :green) %>\n'#{ex[:type].downcase}'")
54
59
  say("\n")
55
60
  create = agree("Create this issue? [y]es, [n]o")
56
- if create && @client.create_issue(@repo,
61
+ if create && @client.create_issue(@remote_repo,
57
62
  ex[:content],
58
- "#{ex[:content]}\n\nhttps://github.com/#{@repo}/blob/master/#{ex[:file]}#L#{ex[:line]}",
63
+ "#{ex[:content]}\n\n#{self.github_line_url(ex[:file], ex[:line])}",
59
64
  { :labels => ex[:type].downcase }
60
65
  )
61
66
  say("\n<%= color('Created!', :green) %>\n\n")
@@ -1,3 +1,3 @@
1
1
  module TodosExport
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -3,10 +3,16 @@ require 'todos_export/github_issues'
3
3
 
4
4
  describe TodosExport::GithubIssues do
5
5
  subject do
6
- main = TodosExport::Main.new('spec/resources')
6
+ main = TodosExport::Main.new('./')
7
7
  main.find_exportables
8
8
 
9
- TodosExport::GithubIssues.new(main)
9
+ s = TodosExport::GithubIssues.new(main)
10
+ s.remote_repo = 'my_repo'
11
+ s
10
12
  end
11
13
 
14
+ it '#github_line_url' do
15
+ match = Regexp.escape("https://github.com/my_repo/blob/") + "[0-9a-f]{5,40}" + Regexp.escape("/spec/resources/ruby_file_with_todos.rb#L2")
16
+ subject.github_line_url('spec/resources/ruby_file_with_todos.rb', 2).should =~ /#{match}/
17
+ end
12
18
  end
@@ -35,6 +35,15 @@ describe TodosExport::Main do
35
35
  end
36
36
  end
37
37
 
38
+ it '#git_directory?' do
39
+ TodosExport::Main.new('./').git_directory?.should be_true
40
+ TodosExport::Main.new(Dir.tmpdir).git_directory?.should be_false
41
+ end
42
+
43
+ it '#git_head_sha' do
44
+ TodosExport::Main.new('./').git_head_sha.should =~ /[0-9a-f]{5,40}/
45
+ end
46
+
38
47
  it '#delete_exportable' do
39
48
  copied_file = Tempfile.new('copy_of_ruby_file_with_todos.rb')
40
49
  copied_file.write(File.open('spec/resources/ruby_file_with_todos.rb', 'rb').read)
@@ -73,7 +82,7 @@ describe TodosExport::Main do
73
82
 
74
83
  it '#exportables' do
75
84
  subject.find_exportables
76
- subject.exportables.should == [
85
+ exportables = [
77
86
  {
78
87
  :type => "FIXME",
79
88
  :content => "This is a useless class, what we really need to do is sit down and eat some cheese",
@@ -155,11 +164,14 @@ describe TodosExport::Main do
155
164
  :line => 2
156
165
  }
157
166
  ]
167
+ exportables.each do |e|
168
+ subject.exportables.should include e
169
+ end
158
170
  end
159
171
 
160
172
  it '#exportable_todos' do
161
173
  subject.find_exportables
162
- subject.exportable_todos.should == [
174
+ exportable_todos = [
163
175
  {
164
176
  :type => "TODO",
165
177
  :content => "Find a kinder message",
@@ -209,11 +221,15 @@ describe TodosExport::Main do
209
221
  :line => 1
210
222
  }
211
223
  ]
224
+
225
+ exportable_todos.each do |e|
226
+ subject.exportable_todos.should include e
227
+ end
212
228
  end
213
229
 
214
230
  it '#exportable_fixmes' do
215
231
  subject.find_exportables
216
- subject.exportable_fixmes.should == [
232
+ exportable_fixmes = [
217
233
  {
218
234
  :type => "FIXME",
219
235
  :content => "This is a useless class, what we really need to do is sit down and eat some cheese",
@@ -231,11 +247,15 @@ describe TodosExport::Main do
231
247
  :line => 22
232
248
  }
233
249
  ]
250
+
251
+ exportable_fixmes.each do |e|
252
+ subject.exportable_fixmes.should include e
253
+ end
234
254
  end
235
255
 
236
256
  it '#exportable_bugs' do
237
257
  subject.find_exportables
238
- subject.exportable_bugs.should == [
258
+ exportable_bugs = [
239
259
  {
240
260
  :type => "BUG",
241
261
  :content => "This should be false",
@@ -253,5 +273,9 @@ describe TodosExport::Main do
253
273
  :line => 2
254
274
  }
255
275
  ]
276
+
277
+ exportable_bugs.each do |e|
278
+ subject.exportable_bugs.should include e
279
+ end
256
280
  end
257
281
  end
data/todos_export.gemspec CHANGED
@@ -22,8 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
24
  spec.add_development_dependency "coveralls"
25
+ spec.add_development_dependency "awesome_print"
25
26
 
26
27
  spec.add_runtime_dependency "highline"
27
28
  spec.add_runtime_dependency "octokit"
28
29
  spec.add_runtime_dependency "json"
30
+ spec.add_runtime_dependency 'rugged'
29
31
  end
metadata CHANGED
@@ -1,132 +1,149 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: todos_export
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Ryan Caught
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-06-18 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :development
23
- prerelease: false
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 9
30
- segments:
31
- - 1
32
- - 3
33
- version: "1.3"
11
+ date: 2013-06-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
34
14
  name: bundler
35
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
37
20
  type: :development
38
21
  prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
48
28
  name: rake
49
- requirement: *id002
50
- - !ruby/object:Gem::Dependency
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
51
34
  type: :development
52
35
  prerelease: false
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
62
42
  name: rspec
63
- requirement: *id003
64
- - !ruby/object:Gem::Dependency
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
65
48
  type: :development
66
49
  prerelease: false
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
76
56
  name: coveralls
77
- requirement: *id004
78
- - !ruby/object:Gem::Dependency
79
- type: :runtime
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: awesome_print
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
80
77
  prerelease: false
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
90
84
  name: highline
91
- requirement: *id005
92
- - !ruby/object:Gem::Dependency
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
93
90
  type: :runtime
94
91
  prerelease: false
95
- version_requirements: &id006 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
104
98
  name: octokit
105
- requirement: *id006
106
- - !ruby/object:Gem::Dependency
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
107
104
  type: :runtime
108
105
  prerelease: false
109
- version_requirements: &id007 !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
118
112
  name: json
119
- requirement: *id007
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rugged
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
120
139
  description: Export comment Todo's, Fixme's and Bug's from your code
121
- email:
140
+ email:
122
141
  - rcaught@gmail.com
123
- executables:
142
+ executables:
124
143
  - todos_export
125
144
  extensions: []
126
-
127
145
  extra_rdoc_files: []
128
-
129
- files:
146
+ files:
130
147
  - .gitignore
131
148
  - .rspec
132
149
  - Gemfile
@@ -145,41 +162,31 @@ files:
145
162
  - spec/resources/sub_directory/another_ruby_file_with_todos.rb
146
163
  - spec/spec_helper.rb
147
164
  - todos_export.gemspec
148
- has_rdoc: true
149
165
  homepage: https://github.com/rcaught/todos_export
150
- licenses:
166
+ licenses:
151
167
  - MIT
168
+ metadata: {}
152
169
  post_install_message:
153
170
  rdoc_options: []
154
-
155
- require_paths:
171
+ require_paths:
156
172
  - lib
157
- required_ruby_version: !ruby/object:Gem::Requirement
158
- none: false
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- hash: 3
163
- segments:
164
- - 0
165
- version: "0"
166
- required_rubygems_version: !ruby/object:Gem::Requirement
167
- none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
173
- - 0
174
- version: "0"
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
175
183
  requirements: []
176
-
177
184
  rubyforge_project:
178
- rubygems_version: 1.3.7
185
+ rubygems_version: 2.0.3
179
186
  signing_key:
180
- specification_version: 3
187
+ specification_version: 4
181
188
  summary: Export comment Todo's, Fixme's and Bug's from your code
182
- test_files:
189
+ test_files:
183
190
  - spec/lib/todos_export/github_isses_spec.rb
184
191
  - spec/lib/todos_export_spec.rb
185
192
  - spec/resources/python_file.py