todos_export 0.3.1 → 0.4.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 +4 -4
- data/.gitignore +0 -1
- data/Gemfile.lock +72 -0
- data/lib/todos_export.rb +7 -2
- data/lib/todos_export/std_out.rb +27 -9
- data/lib/todos_export/version.rb +1 -1
- data/spec/lib/todos_export/github_isses_spec.rb +2 -0
- data/spec/lib/todos_export/std_out_spec.rb +34 -6
- data/spec/lib/todos_export_spec.rb +23 -95
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6e43464ddd7a06ed854ad261d4629aae23e494e
|
4
|
+
data.tar.gz: e5721d8587619ab581c7d03ec9e65892a6ba8333
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 080b421499ebbe742f754b2472d03dc28bc9512be5df8e169e946352a4a91c4996134bcd7de52a8acd95534cb18f35e617bed6e23c489d95300d4a1867360b74
|
7
|
+
data.tar.gz: f9c45454750915624c808355a196c64310ff5f30431cc5c2c04bd15416d693fac12f21407d038afd01ac257ad02def30249caae80ee0a7b847bd04e3ad7b35d3
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
todos_export (0.3.1)
|
5
|
+
highline
|
6
|
+
json
|
7
|
+
octokit
|
8
|
+
rugged
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: https://rubygems.org/
|
12
|
+
specs:
|
13
|
+
addressable (2.3.6)
|
14
|
+
awesome_print (1.2.0)
|
15
|
+
coveralls (0.7.0)
|
16
|
+
multi_json (~> 1.3)
|
17
|
+
rest-client
|
18
|
+
simplecov (>= 0.7)
|
19
|
+
term-ansicolor
|
20
|
+
thor
|
21
|
+
diff-lcs (1.2.5)
|
22
|
+
docile (1.1.5)
|
23
|
+
faraday (0.9.0)
|
24
|
+
multipart-post (>= 1.2, < 3)
|
25
|
+
highline (1.6.21)
|
26
|
+
json (1.8.1)
|
27
|
+
mime-types (2.3)
|
28
|
+
multi_json (1.10.1)
|
29
|
+
multipart-post (2.0.0)
|
30
|
+
netrc (0.7.7)
|
31
|
+
octokit (3.2.0)
|
32
|
+
sawyer (~> 0.5.3)
|
33
|
+
rake (10.3.2)
|
34
|
+
rest-client (1.7.2)
|
35
|
+
mime-types (>= 1.16, < 3.0)
|
36
|
+
netrc (~> 0.7)
|
37
|
+
rspec (3.0.0)
|
38
|
+
rspec-core (~> 3.0.0)
|
39
|
+
rspec-expectations (~> 3.0.0)
|
40
|
+
rspec-mocks (~> 3.0.0)
|
41
|
+
rspec-core (3.0.3)
|
42
|
+
rspec-support (~> 3.0.0)
|
43
|
+
rspec-expectations (3.0.3)
|
44
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
45
|
+
rspec-support (~> 3.0.0)
|
46
|
+
rspec-mocks (3.0.3)
|
47
|
+
rspec-support (~> 3.0.0)
|
48
|
+
rspec-support (3.0.3)
|
49
|
+
rugged (0.21.0)
|
50
|
+
sawyer (0.5.4)
|
51
|
+
addressable (~> 2.3.5)
|
52
|
+
faraday (~> 0.8, < 0.10)
|
53
|
+
simplecov (0.9.0)
|
54
|
+
docile (~> 1.1.0)
|
55
|
+
multi_json
|
56
|
+
simplecov-html (~> 0.8.0)
|
57
|
+
simplecov-html (0.8.0)
|
58
|
+
term-ansicolor (1.3.0)
|
59
|
+
tins (~> 1.0)
|
60
|
+
thor (0.19.1)
|
61
|
+
tins (1.3.0)
|
62
|
+
|
63
|
+
PLATFORMS
|
64
|
+
ruby
|
65
|
+
|
66
|
+
DEPENDENCIES
|
67
|
+
awesome_print
|
68
|
+
bundler (~> 1.3)
|
69
|
+
coveralls
|
70
|
+
rake
|
71
|
+
rspec
|
72
|
+
todos_export!
|
data/lib/todos_export.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require "todos_export/version"
|
2
4
|
require 'todos_export/github_issues'
|
3
5
|
require 'todos_export/std_out'
|
@@ -38,13 +40,16 @@ module TodosExport
|
|
38
40
|
f.each_with_index do |line, number|
|
39
41
|
search = line.scan(/((?:#)(?:| )(TODO|FIXME|BUG):?(.*)$)/i)
|
40
42
|
if !search.empty?
|
43
|
+
line = number + 1
|
44
|
+
|
41
45
|
self.exportables << {
|
42
46
|
:type => search[0][1].upcase,
|
43
47
|
:content => search[0][2].strip,
|
44
48
|
:original_content => search[0][0],
|
45
49
|
:file => file.gsub(/^(.\/)/, ''),
|
46
50
|
:original_file => file,
|
47
|
-
:line =>
|
51
|
+
:line => line,
|
52
|
+
:line_peek => File.readlines(file)[line].strip
|
48
53
|
}
|
49
54
|
end
|
50
55
|
end
|
@@ -63,7 +68,7 @@ module TodosExport
|
|
63
68
|
|
64
69
|
def git_head_sha
|
65
70
|
if git_directory?
|
66
|
-
Rugged::Repository.new(self.target).head.target
|
71
|
+
Rugged::Repository.new(self.target).head.target.oid
|
67
72
|
else
|
68
73
|
nil
|
69
74
|
end
|
data/lib/todos_export/std_out.rb
CHANGED
@@ -11,17 +11,35 @@ module TodosExport
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def output
|
14
|
-
out =
|
15
|
-
self.main.exportable_todos
|
16
|
-
|
14
|
+
out = ''
|
15
|
+
todos = self.main.exportable_todos
|
16
|
+
|
17
|
+
if todos.size > 0
|
18
|
+
out = "Todos\n====="
|
19
|
+
todos.each do |ex|
|
20
|
+
out += "\n- #{ex[:content]}"
|
21
|
+
out += "\n <%= color(\"#{ex[:original_file]}:#{ex[:line]}\", :green) %>"
|
22
|
+
end
|
17
23
|
end
|
18
|
-
|
19
|
-
self.main.exportable_fixmes
|
20
|
-
|
24
|
+
|
25
|
+
fixmes = self.main.exportable_fixmes
|
26
|
+
|
27
|
+
if fixmes.size > 0
|
28
|
+
out += "\n\nFixmes\n======"
|
29
|
+
fixmes.each do |ex|
|
30
|
+
out += "\n- #{ex[:content]}"
|
31
|
+
out += "\n <%= color(\"#{ex[:original_file]}:#{ex[:line]}\", :green) %>"
|
32
|
+
end
|
21
33
|
end
|
22
|
-
|
23
|
-
self.main.exportable_bugs
|
24
|
-
|
34
|
+
|
35
|
+
bugs = self.main.exportable_bugs
|
36
|
+
|
37
|
+
if bugs.size > 0
|
38
|
+
out += "\n\nBugs\n===="
|
39
|
+
bugs.each do |ex|
|
40
|
+
out += "\n- #{ex[:content]}"
|
41
|
+
out += "\n <%= color(\"#{ex[:original_file]}:#{ex[:line]}\", :green) %>"
|
42
|
+
end
|
25
43
|
end
|
26
44
|
|
27
45
|
return out
|
data/lib/todos_export/version.rb
CHANGED
@@ -1,30 +1,58 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'todos_export/std_out'
|
3
5
|
|
4
6
|
describe TodosExport::StdOut do
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
context '#output' do
|
8
|
+
it 'normal' do
|
9
|
+
input = StringIO.new
|
10
|
+
output = StringIO.new
|
11
|
+
terminal = HighLine.new(input, output)
|
12
|
+
|
13
|
+
main = TodosExport::Main.new('spec/resources')
|
14
|
+
main.find_exportables
|
8
15
|
|
9
|
-
|
10
|
-
|
16
|
+
s = TodosExport::StdOut.new(main)
|
17
|
+
terminal.say(s.output)
|
18
|
+
output.string.gsub("\e[32m", '').gsub("\e[0m", '').should ==
|
11
19
|
"Todos
|
12
20
|
=====
|
13
21
|
- Find a kinder message
|
22
|
+
spec/resources/ruby_file_with_todos.rb:12
|
14
23
|
- Make a list
|
24
|
+
spec/resources/ruby_file_with_todos.rb:18
|
15
25
|
- Add more cheese types
|
26
|
+
spec/resources/ruby_file_with_todos.rb:26
|
16
27
|
- Add more region cheeses
|
28
|
+
spec/resources/ruby_file_with_todos.rb:35
|
17
29
|
- Personalize the class to your taste
|
30
|
+
spec/resources/ruby_file_with_todos.rb:41
|
18
31
|
- Be a better Ruby file
|
32
|
+
spec/resources/sub_directory/another_ruby_file_with_todos.rb:1
|
19
33
|
|
20
34
|
Fixmes
|
21
35
|
======
|
22
36
|
- This is a useless class, what we really need to do is sit down and eat some cheese
|
37
|
+
spec/resources/ruby_file_with_todos.rb:2
|
23
38
|
- Use case statement
|
39
|
+
spec/resources/ruby_file_with_todos.rb:22
|
24
40
|
|
25
41
|
Bugs
|
26
42
|
====
|
27
43
|
- This should be false
|
28
|
-
|
44
|
+
spec/resources/ruby_file_with_todos.rb:46
|
45
|
+
- This should say it's a Ruby file
|
46
|
+
spec/resources/sub_directory/another_ruby_file_with_todos.rb:2
|
47
|
+
"
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'none' do
|
51
|
+
main = TodosExport::Main.new('spec/spec_helper.rb')
|
52
|
+
main.find_exportables
|
53
|
+
|
54
|
+
s = TodosExport::StdOut.new(main)
|
55
|
+
s.output.should == ''
|
56
|
+
end
|
29
57
|
end
|
30
58
|
end
|
@@ -36,8 +36,8 @@ describe TodosExport::Main do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it '#git_directory?' do
|
39
|
-
TodosExport::Main.new('./').git_directory?.should
|
40
|
-
TodosExport::Main.new(Dir.tmpdir).git_directory?.should
|
39
|
+
TodosExport::Main.new('./').git_directory?.should be true
|
40
|
+
TodosExport::Main.new(Dir.tmpdir).git_directory?.should be false
|
41
41
|
end
|
42
42
|
|
43
43
|
it '#git_head_sha' do
|
@@ -82,89 +82,7 @@ describe TodosExport::Main do
|
|
82
82
|
|
83
83
|
it '#exportables' do
|
84
84
|
subject.find_exportables
|
85
|
-
|
86
|
-
{
|
87
|
-
:type => "FIXME",
|
88
|
-
:content => "This is a useless class, what we really need to do is sit down and eat some cheese",
|
89
|
-
:original_content => "# fixme: This is a useless class, what we really need to do is sit down and eat some cheese",
|
90
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
91
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
92
|
-
:line => 2
|
93
|
-
},
|
94
|
-
{
|
95
|
-
:type => "TODO",
|
96
|
-
:content => "Find a kinder message",
|
97
|
-
:original_content => "#TODO: Find a kinder message",
|
98
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
99
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
100
|
-
:line => 12
|
101
|
-
},
|
102
|
-
{
|
103
|
-
:type => "TODO",
|
104
|
-
:content => "Make a list",
|
105
|
-
:original_content => "# TODO: Make a list",
|
106
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
107
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
108
|
-
:line => 18
|
109
|
-
},
|
110
|
-
{
|
111
|
-
:type => "FIXME",
|
112
|
-
:content => "Use case statement",
|
113
|
-
:original_content => "#FIXME: Use case statement",
|
114
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
115
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
116
|
-
:line => 22
|
117
|
-
},
|
118
|
-
{
|
119
|
-
:type => "TODO",
|
120
|
-
:content => "Add more cheese types",
|
121
|
-
:original_content => "#todo: Add more cheese types",
|
122
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
123
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
124
|
-
:line => 26
|
125
|
-
},
|
126
|
-
{
|
127
|
-
:type => "TODO",
|
128
|
-
:content => "Add more region cheeses",
|
129
|
-
:original_content => "#todo Add more region cheeses",
|
130
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
131
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
132
|
-
:line => 35
|
133
|
-
},
|
134
|
-
{
|
135
|
-
:type => "TODO",
|
136
|
-
:content => "Personalize the class to your taste",
|
137
|
-
:original_content => "# TODO Personalize the class to your taste",
|
138
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
139
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
140
|
-
:line => 41
|
141
|
-
},
|
142
|
-
{
|
143
|
-
:type => "BUG",
|
144
|
-
:content => "This should be false",
|
145
|
-
:original_content => "# BUG: This should be false",
|
146
|
-
:file => 'spec/resources/ruby_file_with_todos.rb',
|
147
|
-
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
148
|
-
:line => 46
|
149
|
-
},
|
150
|
-
{
|
151
|
-
:type => "TODO",
|
152
|
-
:content => "Be a better Ruby file",
|
153
|
-
:original_content => "# TODO: Be a better Ruby file",
|
154
|
-
:file => 'spec/resources/sub_directory/another_ruby_file_with_todos.rb',
|
155
|
-
:original_file => "spec/resources/sub_directory/another_ruby_file_with_todos.rb",
|
156
|
-
:line => 1
|
157
|
-
},
|
158
|
-
{
|
159
|
-
:type => "BUG",
|
160
|
-
:content => "This should say it's a Ruby file",
|
161
|
-
:original_content => "# BUG: This should say it's a Ruby file",
|
162
|
-
:file => 'spec/resources/sub_directory/another_ruby_file_with_todos.rb',
|
163
|
-
:original_file => "spec/resources/sub_directory/another_ruby_file_with_todos.rb",
|
164
|
-
:line => 2
|
165
|
-
}
|
166
|
-
]
|
167
|
-
exportables.each do |e|
|
85
|
+
subject.exportable_todos + subject.exportable_fixmes + subject.exportable_bugs.each do |e|
|
168
86
|
subject.exportables.should include e
|
169
87
|
end
|
170
88
|
end
|
@@ -178,7 +96,8 @@ describe TodosExport::Main do
|
|
178
96
|
:original_content => "#TODO: Find a kinder message",
|
179
97
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
180
98
|
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
181
|
-
:line => 12
|
99
|
+
:line => 12,
|
100
|
+
:line_peek => 'puts "Pick a tasty cheese dammit"'
|
182
101
|
},
|
183
102
|
{
|
184
103
|
:type => "TODO",
|
@@ -186,7 +105,8 @@ describe TodosExport::Main do
|
|
186
105
|
:original_content => "# TODO: Make a list",
|
187
106
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
188
107
|
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
189
|
-
:line => 18
|
108
|
+
:line => 18,
|
109
|
+
:line_peek => 'end' # This can be better
|
190
110
|
},
|
191
111
|
{
|
192
112
|
:type => "TODO",
|
@@ -194,7 +114,8 @@ describe TodosExport::Main do
|
|
194
114
|
:original_content => "#todo: Add more cheese types",
|
195
115
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
196
116
|
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
197
|
-
:line => 26
|
117
|
+
:line => 26,
|
118
|
+
:line_peek => 'return true'
|
198
119
|
},
|
199
120
|
{
|
200
121
|
:type => "TODO",
|
@@ -202,7 +123,8 @@ describe TodosExport::Main do
|
|
202
123
|
:original_content => "#todo Add more region cheeses",
|
203
124
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
204
125
|
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
205
|
-
:line => 35
|
126
|
+
:line => 35,
|
127
|
+
:line_peek => 'return false'
|
206
128
|
},
|
207
129
|
{
|
208
130
|
:type => "TODO",
|
@@ -210,7 +132,8 @@ describe TodosExport::Main do
|
|
210
132
|
:original_content => "# TODO Personalize the class to your taste",
|
211
133
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
212
134
|
:original_file => "spec/resources/ruby_file_with_todos.rb",
|
213
|
-
:line => 41
|
135
|
+
:line => 41,
|
136
|
+
:line_peek => 'return true'
|
214
137
|
},
|
215
138
|
{
|
216
139
|
:type => "TODO",
|
@@ -218,7 +141,8 @@ describe TodosExport::Main do
|
|
218
141
|
:original_content => "# TODO: Be a better Ruby file",
|
219
142
|
:file => 'spec/resources/sub_directory/another_ruby_file_with_todos.rb',
|
220
143
|
:original_file => "spec/resources/sub_directory/another_ruby_file_with_todos.rb",
|
221
|
-
:line => 1
|
144
|
+
:line => 1,
|
145
|
+
:line_peek => '# BUG: This should say it\'s a Ruby file' # this can be better
|
222
146
|
}
|
223
147
|
]
|
224
148
|
|
@@ -236,7 +160,8 @@ describe TodosExport::Main do
|
|
236
160
|
:original_content => "# fixme: This is a useless class, what we really need to do is sit down and eat some cheese",
|
237
161
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
238
162
|
:original_file => 'spec/resources/ruby_file_with_todos.rb',
|
239
|
-
:line => 2
|
163
|
+
:line => 2,
|
164
|
+
:line_peek => '# This is a class for cheeses'
|
240
165
|
},
|
241
166
|
{
|
242
167
|
:type => "FIXME",
|
@@ -244,7 +169,8 @@ describe TodosExport::Main do
|
|
244
169
|
:original_content => "#FIXME: Use case statement",
|
245
170
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
246
171
|
:original_file => 'spec/resources/ruby_file_with_todos.rb',
|
247
|
-
:line => 22
|
172
|
+
:line => 22,
|
173
|
+
:line_peek => "if self.cheese == 'chedar'"
|
248
174
|
}
|
249
175
|
]
|
250
176
|
|
@@ -262,7 +188,8 @@ describe TodosExport::Main do
|
|
262
188
|
:original_content => "# BUG: This should be false",
|
263
189
|
:file => 'spec/resources/ruby_file_with_todos.rb',
|
264
190
|
:original_file => 'spec/resources/ruby_file_with_todos.rb',
|
265
|
-
:line => 46
|
191
|
+
:line => 46,
|
192
|
+
:line_peek => 'return true'
|
266
193
|
},
|
267
194
|
{
|
268
195
|
:type => "BUG",
|
@@ -270,7 +197,8 @@ describe TodosExport::Main do
|
|
270
197
|
:original_content => "# BUG: This should say it's a Ruby file",
|
271
198
|
:file => 'spec/resources/sub_directory/another_ruby_file_with_todos.rb',
|
272
199
|
:original_file => 'spec/resources/sub_directory/another_ruby_file_with_todos.rb',
|
273
|
-
:line => 2
|
200
|
+
:line => 2,
|
201
|
+
:line_peek => 'puts "I\'m a Perl file"'
|
274
202
|
}
|
275
203
|
]
|
276
204
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: todos_export
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Caught
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- .gitignore
|
148
148
|
- .rspec
|
149
149
|
- Gemfile
|
150
|
+
- Gemfile.lock
|
150
151
|
- LICENSE.txt
|
151
152
|
- README.md
|
152
153
|
- Rakefile
|