comment_extractor 1.0.1

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.
Files changed (165) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +132 -0
  4. data/bin/comment_parser_debug +45 -0
  5. data/lib/comment_extractor/code_object/comment.rb +19 -0
  6. data/lib/comment_extractor/code_object.rb +12 -0
  7. data/lib/comment_extractor/code_objects.rb +46 -0
  8. data/lib/comment_extractor/configuration.rb +50 -0
  9. data/lib/comment_extractor/encoding.rb +40 -0
  10. data/lib/comment_extractor/extractor/c.rb +8 -0
  11. data/lib/comment_extractor/extractor/cc.rb +8 -0
  12. data/lib/comment_extractor/extractor/class.rb +8 -0
  13. data/lib/comment_extractor/extractor/clojure.rb +11 -0
  14. data/lib/comment_extractor/extractor/coffee.rb +13 -0
  15. data/lib/comment_extractor/extractor/concerns/simple_extractor.rb +189 -0
  16. data/lib/comment_extractor/extractor/concerns/slash_extractor.rb +16 -0
  17. data/lib/comment_extractor/extractor/cpp.rb +8 -0
  18. data/lib/comment_extractor/extractor/cs.rb +8 -0
  19. data/lib/comment_extractor/extractor/css.rb +8 -0
  20. data/lib/comment_extractor/extractor/cxx.rb +8 -0
  21. data/lib/comment_extractor/extractor/d.rb +9 -0
  22. data/lib/comment_extractor/extractor/erlang.rb +12 -0
  23. data/lib/comment_extractor/extractor/fortran.rb +11 -0
  24. data/lib/comment_extractor/extractor/go.rb +8 -0
  25. data/lib/comment_extractor/extractor/h.rb +8 -0
  26. data/lib/comment_extractor/extractor/haml.rb +49 -0
  27. data/lib/comment_extractor/extractor/haskell.rb +12 -0
  28. data/lib/comment_extractor/extractor/hpp.rb +8 -0
  29. data/lib/comment_extractor/extractor/html.rb +13 -0
  30. data/lib/comment_extractor/extractor/java.rb +8 -0
  31. data/lib/comment_extractor/extractor/java_script.rb +12 -0
  32. data/lib/comment_extractor/extractor/lisp.rb +11 -0
  33. data/lib/comment_extractor/extractor/lua.rb +12 -0
  34. data/lib/comment_extractor/extractor/m.rb +9 -0
  35. data/lib/comment_extractor/extractor/markdown.rb +7 -0
  36. data/lib/comment_extractor/extractor/mm.rb +8 -0
  37. data/lib/comment_extractor/extractor/perl.rb +12 -0
  38. data/lib/comment_extractor/extractor/php.rb +8 -0
  39. data/lib/comment_extractor/extractor/python.rb +13 -0
  40. data/lib/comment_extractor/extractor/ruby.rb +40 -0
  41. data/lib/comment_extractor/extractor/sass.rb +8 -0
  42. data/lib/comment_extractor/extractor/scala.rb +8 -0
  43. data/lib/comment_extractor/extractor/scss.rb +8 -0
  44. data/lib/comment_extractor/extractor/shell.rb +11 -0
  45. data/lib/comment_extractor/extractor/sqf.rb +8 -0
  46. data/lib/comment_extractor/extractor/sql.rb +12 -0
  47. data/lib/comment_extractor/extractor/sqs.rb +7 -0
  48. data/lib/comment_extractor/extractor/tex.rb +12 -0
  49. data/lib/comment_extractor/extractor/text.rb +10 -0
  50. data/lib/comment_extractor/extractor/yaml.rb +12 -0
  51. data/lib/comment_extractor/extractor.rb +96 -0
  52. data/lib/comment_extractor/extractor_manager.rb +158 -0
  53. data/lib/comment_extractor/file.rb +42 -0
  54. data/lib/comment_extractor/parser.rb +33 -0
  55. data/lib/comment_extractor/smart_string_scanner.rb +11 -0
  56. data/lib/comment_extractor/version.rb +4 -0
  57. data/lib/comment_extractor.rb +18 -0
  58. data/spec/assets/binary_file +0 -0
  59. data/spec/assets/shebang_file +3 -0
  60. data/spec/assets/source_code/c.c +158 -0
  61. data/spec/assets/source_code/cc.cc +24 -0
  62. data/spec/assets/source_code/class +0 -0
  63. data/spec/assets/source_code/clojure.clj +41 -0
  64. data/spec/assets/source_code/coffee.coffee +27 -0
  65. data/spec/assets/source_code/cpp.cpp +130 -0
  66. data/spec/assets/source_code/cs.cs +53 -0
  67. data/spec/assets/source_code/css.css +37 -0
  68. data/spec/assets/source_code/cxx +0 -0
  69. data/spec/assets/source_code/d.d +110 -0
  70. data/spec/assets/source_code/erlang.es +34 -0
  71. data/spec/assets/source_code/fortran.f +41 -0
  72. data/spec/assets/source_code/golang.go +61 -0
  73. data/spec/assets/source_code/h +0 -0
  74. data/spec/assets/source_code/haml.haml +26 -0
  75. data/spec/assets/source_code/haskell.hs +36 -0
  76. data/spec/assets/source_code/hpp +0 -0
  77. data/spec/assets/source_code/html.html +139 -0
  78. data/spec/assets/source_code/java.java +39 -0
  79. data/spec/assets/source_code/java_script.js +164 -0
  80. data/spec/assets/source_code/lisp.el +18 -0
  81. data/spec/assets/source_code/lua.lua +34 -0
  82. data/spec/assets/source_code/m +0 -0
  83. data/spec/assets/source_code/mm +0 -0
  84. data/spec/assets/source_code/perl.pl +36 -0
  85. data/spec/assets/source_code/php.php +31 -0
  86. data/spec/assets/source_code/python.py +139 -0
  87. data/spec/assets/source_code/ruby.rb +36 -0
  88. data/spec/assets/source_code/sass.sass +77 -0
  89. data/spec/assets/source_code/scala.scala +46 -0
  90. data/spec/assets/source_code/scss.scss +93 -0
  91. data/spec/assets/source_code/shell.sh +5 -0
  92. data/spec/assets/source_code/sqf +0 -0
  93. data/spec/assets/source_code/sql.sql +11 -0
  94. data/spec/assets/source_code/sqs +0 -0
  95. data/spec/assets/source_code/tex.tex +20 -0
  96. data/spec/assets/source_code/text.txt +15 -0
  97. data/spec/assets/source_code/vim +17 -0
  98. data/spec/assets/source_code/yaml.yml +44 -0
  99. data/spec/assets/stripper/children/children +0 -0
  100. data/spec/assets/stripper/children/children.c +0 -0
  101. data/spec/assets/stripper/children/children.js +0 -0
  102. data/spec/assets/stripper/children/children.o +0 -0
  103. data/spec/assets/stripper/children/children.rb +1 -0
  104. data/spec/assets/stripper/test +0 -0
  105. data/spec/assets/stripper/test.c +0 -0
  106. data/spec/assets/stripper/test.js +0 -0
  107. data/spec/assets/stripper/test.o +0 -0
  108. data/spec/assets/stripper/test.rb +1 -0
  109. data/spec/comment_extractor/code_object/comment_spec.rb +15 -0
  110. data/spec/comment_extractor/code_object_spec.rb +18 -0
  111. data/spec/comment_extractor/code_objects_spec.rb +66 -0
  112. data/spec/comment_extractor/configuration_spec.rb +68 -0
  113. data/spec/comment_extractor/encoding_spec.rb +77 -0
  114. data/spec/comment_extractor/extractor/c_spec.rb +9 -0
  115. data/spec/comment_extractor/extractor/cc_spec.rb +9 -0
  116. data/spec/comment_extractor/extractor/class_spec.rb +9 -0
  117. data/spec/comment_extractor/extractor/clojure_spec.rb +9 -0
  118. data/spec/comment_extractor/extractor/coffee_spec.rb +9 -0
  119. data/spec/comment_extractor/extractor/cpp_spec.rb +9 -0
  120. data/spec/comment_extractor/extractor/cs_spec.rb +9 -0
  121. data/spec/comment_extractor/extractor/css_spec.rb +9 -0
  122. data/spec/comment_extractor/extractor/cxx_spec.rb +9 -0
  123. data/spec/comment_extractor/extractor/d_spec.rb +10 -0
  124. data/spec/comment_extractor/extractor/erlang_spec.rb +10 -0
  125. data/spec/comment_extractor/extractor/fortran_spec.rb +9 -0
  126. data/spec/comment_extractor/extractor/go_spec.rb +9 -0
  127. data/spec/comment_extractor/extractor/h_spec.rb +9 -0
  128. data/spec/comment_extractor/extractor/haml_spec.rb +9 -0
  129. data/spec/comment_extractor/extractor/haskell_spec.rb +9 -0
  130. data/spec/comment_extractor/extractor/hpp_spec.rb +9 -0
  131. data/spec/comment_extractor/extractor/html_spec.rb +9 -0
  132. data/spec/comment_extractor/extractor/java_script_spec.rb +10 -0
  133. data/spec/comment_extractor/extractor/java_spec.rb +9 -0
  134. data/spec/comment_extractor/extractor/lisp_spec.rb +9 -0
  135. data/spec/comment_extractor/extractor/lua_spec.rb +9 -0
  136. data/spec/comment_extractor/extractor/m_spec.rb +9 -0
  137. data/spec/comment_extractor/extractor/markdown_spec.rb +8 -0
  138. data/spec/comment_extractor/extractor/mm_spec.rb +9 -0
  139. data/spec/comment_extractor/extractor/perl_spec.rb +9 -0
  140. data/spec/comment_extractor/extractor/php_spec.rb +9 -0
  141. data/spec/comment_extractor/extractor/python_spec.rb +9 -0
  142. data/spec/comment_extractor/extractor/ruby_spec.rb +12 -0
  143. data/spec/comment_extractor/extractor/sass_spec.rb +9 -0
  144. data/spec/comment_extractor/extractor/scala_spec.rb +9 -0
  145. data/spec/comment_extractor/extractor/scss_spec.rb +9 -0
  146. data/spec/comment_extractor/extractor/shell_spec.rb +9 -0
  147. data/spec/comment_extractor/extractor/sqf_spec.rb +9 -0
  148. data/spec/comment_extractor/extractor/sql_spec.rb +9 -0
  149. data/spec/comment_extractor/extractor/sqs_spec.rb +9 -0
  150. data/spec/comment_extractor/extractor/tex_spec.rb +9 -0
  151. data/spec/comment_extractor/extractor/text_spec.rb +7 -0
  152. data/spec/comment_extractor/extractor/yaml_spec.rb +9 -0
  153. data/spec/comment_extractor/extractor_manager_spec.rb +233 -0
  154. data/spec/comment_extractor/extractor_spec.rb +102 -0
  155. data/spec/comment_extractor/file_spec.rb +100 -0
  156. data/spec/comment_extractor/parser_spec.rb +67 -0
  157. data/spec/comment_extractor/smart_string_scanner_spec.rb +24 -0
  158. data/spec/comment_extractor/version_spec.rb +8 -0
  159. data/spec/comment_extractor_spec.rb +15 -0
  160. data/spec/spec_helper.rb +22 -0
  161. data/spec/support/rspec/comment_extractor/extractor_example_group.rb +115 -0
  162. data/spec/support/rspec/comment_extractor/matchers/extract_comment.rb +58 -0
  163. data/spec/support/rspec/comment_extractor/matchers.rb +7 -0
  164. data/spec/support/rspec/comment_extractor.rb +6 -0
  165. metadata +370 -0
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/code_object'
3
+ require 'comment_extractor/code_objects'
4
+
5
+ module CommentExtractor
6
+ describe CodeObjects do
7
+ let(:file_path) { 'path/to/file' }
8
+
9
+ describe 'ClassMethods' do
10
+ describe '.new' do
11
+ subject { described_class.new(file: file_path) }
12
+
13
+ it 'initializes a instance of CodeObjects' do
14
+ expect(subject).to be_an_instance_of CodeObjects
15
+ expect(subject.file).to eql file_path
16
+ end
17
+ end
18
+ end
19
+
20
+ describe 'InstanceMethods' do
21
+ let(:described_instance) { described_class.new(file: file_path) }
22
+ let(:code_object) { CodeObject.new(value: 3) }
23
+ let(:code_object_size) { 1 }
24
+
25
+ shared_context "a extended array's method" do
26
+ context 'given a instance of CodeObject::Comment' do
27
+ it 'adds a information of self to argument' do
28
+ subject
29
+ expect(code_object.metadata[:parent]).to equal described_instance
30
+ end
31
+
32
+ it 'adds a code_object' do
33
+ expect { subject }.to change { described_instance.size }
34
+ .to(code_object_size).from(0)
35
+ expect(subject.all? { |v| v.is_a?(code_object.class) }).to be_truthy
36
+ end
37
+ end
38
+
39
+ context 'not given a instance of CodeObject::Comment' do
40
+ let(:code_object) { nil }
41
+ it { expect { subject }.to raise_error(TypeError) }
42
+ end
43
+ end
44
+
45
+ describe '#<<' do
46
+ subject { described_instance << code_object }
47
+
48
+ it_behaves_like "a extended array's method"
49
+ end
50
+
51
+ describe '#push' do
52
+ subject { described_instance.push code_object, code_object }
53
+ let(:code_object_size) { 2 }
54
+
55
+ it_behaves_like "a extended array's method"
56
+ end
57
+
58
+ describe '#concat' do
59
+ subject { described_instance.concat [code_object], [code_object] }
60
+ let(:code_object_size) { 2 }
61
+
62
+ it_behaves_like "a extended array's method"
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/configuration'
3
+
4
+ module CommentExtractor
5
+ describe Configuration do
6
+ describe '.new' do
7
+ subject { CommentExtractor::Configuration.new(options) }
8
+ let(:options) { { root_path: File.dirname(__FILE__) } }
9
+
10
+ it 'sets attributes to default value' do
11
+ expect(subject.extractors).to eql ExtractorManager.default_extractors
12
+ expect(subject.default_extractor).to eql Extractor::Text
13
+ expect(subject.use_default_extractor).to be_truthy
14
+ end
15
+ end
16
+
17
+ describe '.add_setting' do
18
+ before do
19
+ # Initializes class variables
20
+ @required_attributes = Configuration.class_variable_set(:@@required_attributes, {})
21
+ Configuration.class_variable_set(:@@required_attributes, {})
22
+
23
+ Configuration.send(:add_setting, name, option_of_setting)
24
+ end
25
+
26
+ after do
27
+ # Restores class variables
28
+ Configuration.class_variable_set(:@@required_attributes, @required_attributes)
29
+ end
30
+
31
+ subject { Configuration.new(option_of_initialization) }
32
+ let(:name) { :setting_name }
33
+ let(:option_of_setting) { {} }
34
+ let(:option_of_initialization) { {} }
35
+
36
+ context 'given setting name' do
37
+ it 'defines accessor method' do
38
+ should be_respond_to name
39
+ should be_respond_to "#{name}="
40
+ end
41
+ end
42
+
43
+ context 'given predicate option' do
44
+ let(:option_of_setting) { { predicate: true } }
45
+ let(:method) { :"#{name}?" }
46
+
47
+ it 'defines predicate method(:name?)' do
48
+ expect(subject).to be_respond_to(method)
49
+ expect(subject.send(method)).to be_falsy
50
+ end
51
+ end
52
+
53
+ context 'given required option' do
54
+ let(:option_of_setting) { { required: true } }
55
+
56
+ context 'when initializations configuration without required attribute' do
57
+ let(:message) { "Unable to initialize #{name} without attribute" }
58
+ it { expect { subject }.to raise_error(message) }
59
+ end
60
+
61
+ context 'when initializations configuration with required attribute' do
62
+ let(:option_of_initialization) { { name => true } }
63
+ it { expect { subject }.to_not raise_error }
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,77 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/encoding'
3
+ require 'tempfile'
4
+
5
+ module CommentExtractor
6
+ describe Encoding do
7
+ describe 'ClassMethods' do
8
+ let(:body) { 'hello_world' }
9
+ let(:temp) { Tempfile.new('tempfile') }
10
+
11
+ describe '.encode' do
12
+ subject { described_class.encode(*[body, format].compact) }
13
+
14
+ shared_examples_for 'a text encoder' do
15
+ let(:expected_format_type) do
16
+ respond_to?(:format_expected) ? format_expected : format
17
+ end
18
+ let(:expected_body) do
19
+ respond_to?(:body_expected) ? body_expected : body
20
+ end
21
+
22
+ it 'works' do
23
+ expect(subject).to eql expected_body
24
+ expect(subject.encoding).to eql expected_format_type
25
+ end
26
+ end
27
+
28
+ context 'given only a raw text' do
29
+ let(:format) { nil }
30
+ let(:format_expected) { ::Encoding::UTF_8 }
31
+
32
+ it_behaves_like 'a text encoder'
33
+ end
34
+
35
+ context 'given a text contains bom' do
36
+ let(:body) { "\xef\xbb\xbf" }
37
+ let(:format) { nil }
38
+ let(:format_expected) { ::Encoding::UTF_8 }
39
+
40
+ it_behaves_like 'a text encoder'
41
+ end
42
+
43
+ context "given #{::Encoding::UTF_8} as encoding type" do
44
+ let(:format) { ::Encoding::UTF_8 }
45
+
46
+ it_behaves_like 'a text encoder'
47
+ end
48
+
49
+ context 'given a invalid text' do
50
+ let(:body) { "\u00D7" }
51
+ let(:format) { ::Encoding::US_ASCII }
52
+ let(:expected_error) { ::Encoding::UndefinedConversionError }
53
+
54
+ it { expect { subject }.to raise_error(expected_error) }
55
+ end
56
+ end
57
+
58
+ describe '.read_file' do
59
+ subject { Encoding.read_file(temp.path) }
60
+
61
+ before do
62
+ temp.write(body)
63
+ temp.flush
64
+ end
65
+
66
+ context 'given a file path' do
67
+ it 'returns a encoded content' do
68
+ expect(described_class).to receive(:encode)
69
+ .at_least(:once)
70
+ .with(body) { |v| v }
71
+ expect(subject).to eql body
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/c'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe C do
6
+ it_behaves_like 'extracting comments from', 'c.c'
7
+ it_behaves_like 'detecting filename', 'file.c'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/cc'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Cc do
6
+ it_behaves_like 'extracting comments from', 'cc.cc'
7
+ it_behaves_like 'detecting filename', 'file.cc'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/class'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Class do
6
+ pending 'Please give me a sample file'
7
+ it_behaves_like 'detecting filename', 'file.class'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/clojure'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Clojure do
6
+ it_behaves_like 'extracting comments from', 'clojure.clj'
7
+ it_behaves_like 'detecting filename', 'file.clj'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/coffee'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Coffee do
6
+ it_behaves_like 'extracting comments from', 'coffee.coffee'
7
+ it_behaves_like 'detecting filename', 'file.coffee'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/cpp'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Cpp do
6
+ it_behaves_like 'extracting comments from', 'cpp.cpp'
7
+ it_behaves_like 'detecting filename', 'file.cpp'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/cs'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Cs do
6
+ it_behaves_like 'extracting comments from', 'cs.cs'
7
+ it_behaves_like 'detecting filename', 'file.cs'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/css'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Css do
6
+ it_behaves_like 'extracting comments from', 'css.css'
7
+ it_behaves_like 'detecting filename', 'file.css'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/cxx'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Cxx do
6
+ pending 'Please give me sample file'
7
+ it_behaves_like 'detecting filename', 'file.cxx'
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/d'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe D do
6
+ it_behaves_like 'detecting shebang', '/usr/local/bin/dmd'
7
+ it_behaves_like 'extracting comments from', 'd.d'
8
+ it_behaves_like 'detecting filename', 'file.d'
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/erlang'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Erlang do
6
+ it_behaves_like 'detecting shebang', '/usr/bin/env escript'
7
+ it_behaves_like 'extracting comments from', 'erlang.es'
8
+ it_behaves_like 'detecting filename', 'file.es'
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/fortran'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Fortran do
6
+ it_behaves_like 'extracting comments from', 'fortran.f'
7
+ it_behaves_like 'detecting filename', 'file.f'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/go'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Go do
6
+ it_behaves_like 'extracting comments from', 'golang.go'
7
+ it_behaves_like 'detecting filename', 'file.go'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/h'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe H do
6
+ pending 'Please give me sample file...'
7
+ it_behaves_like 'detecting filename', 'file.h'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/haml'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Haml do
6
+ it_behaves_like 'extracting comments from', 'haml.haml'
7
+ it_behaves_like 'detecting filename', 'file.haml'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/haskell'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Haskell do
6
+ it_behaves_like 'extracting comments from', 'haskell.hs'
7
+ it_behaves_like 'detecting filename', 'file.hs'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/hpp'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Hpp do
6
+ pending 'Please give me sample file'
7
+ it_behaves_like 'detecting filename', 'file.hpp'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/html'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Html do
6
+ it_behaves_like 'extracting comments from', 'html.html'
7
+ it_behaves_like 'detecting filename', 'file.html'
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/java_script'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe JavaScript do
6
+ it_behaves_like 'detecting shebang', '/usr/local/bin/node'
7
+ it_behaves_like 'extracting comments from', 'java_script.js'
8
+ it_behaves_like 'detecting filename', 'file.js'
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/java'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Java do
6
+ it_behaves_like 'extracting comments from', 'java.java'
7
+ it_behaves_like 'detecting filename', 'file.java'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/lisp'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Lisp do
6
+ it_behaves_like 'extracting comments from', 'lisp.el'
7
+ it_behaves_like 'detecting filename', 'file.el'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/lua'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Lua do
6
+ it_behaves_like 'extracting comments from', 'lua.lua'
7
+ it_behaves_like 'detecting filename', 'file.lua'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/m'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe M do
6
+ pending 'Please give me sample file'
7
+ it_behaves_like 'detecting filename', 'file.m'
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/markdown'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Markdown, disabled: true do
6
+ it_behaves_like 'detecting filename', 'file.mkd', 'file.md', 'file.markdown'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/mm'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Mm do
6
+ pending 'Please give me sample file'
7
+ it_behaves_like 'detecting filename', 'file.mm'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/perl'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Perl do
6
+ it_behaves_like 'extracting comments from', 'perl.pl'
7
+ it_behaves_like 'detecting filename', 'file.pl'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/php'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Php do
6
+ it_behaves_like 'extracting comments from', 'php.php'
7
+ it_behaves_like 'detecting filename', 'file.php'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/python'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Python do
6
+ it_behaves_like 'extracting comments from', 'python.py'
7
+ it_behaves_like 'detecting filename', 'file.py'
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/ruby'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Ruby do
6
+ it_behaves_like 'detecting shebang', '/usr/local/bin/ruby'
7
+ it_behaves_like 'extracting comments from', 'ruby.rb'
8
+
9
+ filenames = %w[file.rb Gemfile Rakefile file.gemspec Guardfile config.ru]
10
+ it_behaves_like 'detecting filename', *filenames
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/sass'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Sass do
6
+ it_behaves_like 'extracting comments from', 'sass.sass'
7
+ it_behaves_like 'detecting filename', 'file.sass'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/scala'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Scala do
6
+ it_behaves_like 'extracting comments from', 'scala.scala'
7
+ it_behaves_like 'detecting filename', 'file.scala'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/scss'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Scss do
6
+ it_behaves_like 'extracting comments from', 'scss.scss'
7
+ it_behaves_like 'detecting filename', 'file.scss'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/shell'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Shell do
6
+ it_behaves_like 'extracting comments from', 'shell.sh'
7
+ it_behaves_like 'detecting filename', 'file.sh', 'file.zsh', 'file.bash', 'bashrc', 'zshrc'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/sqf'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Sqf do
6
+ pending 'Please give me sample code'
7
+ it_behaves_like 'detecting filename', 'file.sqf'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/sql'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Sql do
6
+ it_behaves_like 'extracting comments from', 'sql.sql'
7
+ it_behaves_like 'detecting filename', 'file.sql'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/sqs'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Sqs, disabled: true do
6
+ pending 'Please give me sample code'
7
+ it_behaves_like 'detecting filename', 'file.sqs'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/tex'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Tex do
6
+ it_behaves_like 'extracting comments from', 'tex.tex'
7
+ it_behaves_like 'detecting filename', 'file.tex'
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/text'
3
+
4
+ describe CommentExtractor::Extractor::Text do
5
+ it_behaves_like 'extracting comments from', 'text.txt'
6
+ it_behaves_like 'detecting filename', 'file.txt'
7
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ require 'comment_extractor/extractor/yaml'
3
+
4
+ class CommentExtractor::Extractor
5
+ describe Yaml do
6
+ it_behaves_like 'extracting comments from', 'yaml.yml'
7
+ it_behaves_like 'detecting filename', 'file.yml'
8
+ end
9
+ end