bitclust-dev 0.5.4 → 0.5.5

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 (2) hide show
  1. data/tools/bc-checkparams.rb +40 -14
  2. metadata +35 -29
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'optparse'
4
4
  require 'pathname'
5
+ require 'set'
5
6
 
6
7
  bindir = Pathname.new(__FILE__).realpath.dirname
7
8
  $LOAD_PATH.unshift((bindir + '../lib').realpath)
@@ -60,14 +61,16 @@ module BitClust
60
61
  end
61
62
 
62
63
  def method_entry_chunk
64
+ method_signatures = []
63
65
  @f.while_match(/\A---/) do |line|
64
- method_signature line
66
+ method_signatures << method_signature(line)
65
67
  end
66
68
  props = {}
67
69
  @f.while_match(/\A:/) do |line|
68
70
  k, v = line.sub(/\A:/, '').split(':', 2)
69
71
  props[k.strip] = v.strip
70
72
  end
73
+ params = Set.new
71
74
  while @f.next?
72
75
  case @f.peek
73
76
  when /\A===+/
@@ -93,7 +96,9 @@ module BitClust
93
96
  when /@see/
94
97
  see
95
98
  when /\A@[a-z]/
96
- method_info
99
+ method_info.each do |param|
100
+ params << param
101
+ end
97
102
  else
98
103
  if @f.peek.strip.empty?
99
104
  @f.gets
@@ -102,6 +107,7 @@ module BitClust
102
107
  end
103
108
  end
104
109
  end
110
+ check_parameters(method_signatures, params)
105
111
  end
106
112
 
107
113
  def headline(line)
@@ -200,27 +206,20 @@ module BitClust
200
206
  @f.ungets(header)
201
207
  case cmd
202
208
  when '@param', '@arg'
203
- name = header.slice!(/\A\s*\w+/n) || '?'
204
- params << name
209
+ name = header.slice!(/\A\s*\w+/) || '?'
210
+ params << name.strip
205
211
  when '@raise'
206
212
  # nop
207
213
  when '@return'
208
214
  # nop
215
+ when '@todo'
216
+ # nop
209
217
  else
210
218
  $stderr.puts "[UNKNOWN_META_INFO] #{cmd}"
211
219
  end
212
220
  dd_without_p
213
221
  end
214
- # check parameters
215
- params.map(&:strip).each{|param|
216
- unless @sig.params.split(',').map(&:strip).any?{|v|
217
- param == v.tr('*', '').gsub(/\s*=\s*.+/, '')
218
- }
219
- $stderr.puts "#{@f.lineno}: #{@sig.friendly_string}"
220
- $stderr.puts params.inspect
221
- $stderr.puts @sig.params.inspect
222
- end
223
- }
222
+ params
224
223
  rescue
225
224
  $stderr.puts "#{@f.lineno}: #{@sig.friendly_string}"
226
225
  $stderr.puts params.inspect
@@ -240,6 +239,33 @@ module BitClust
240
239
  def method_signature(sig_line)
241
240
  @sig = MethodSignature.parse(sig_line)
242
241
  end
242
+
243
+ private
244
+
245
+ def check_parameters(method_signatures, params)
246
+ params_in_signature = extract_params(method_signatures)
247
+ unless params_in_signature == params
248
+ puts "#{@f.lineno}:"
249
+ method_signatures.each do |signature|
250
+ puts signature.friendly_string
251
+ puts "signature: #{signature.params}"
252
+ end
253
+ puts "@params: #{params.to_a.join(", ")}"
254
+ puts "-" * 72
255
+ end
256
+ end
257
+
258
+ def extract_params(method_signatures)
259
+ method_signatures.map do |signature|
260
+ next unless signature.params
261
+ signature.params.split(",").map do |param|
262
+ param = param.tr("*&", "")
263
+ param = param.gsub(/\=.*/, "")
264
+ param = param.gsub(/.*:/, "")
265
+ param.strip
266
+ end
267
+ end.compact.flatten.to_set
268
+ end
243
269
  end
244
270
  end
245
271
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitclust-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: tools
11
11
  cert_chain: []
12
- date: 2012-09-15 00:00:00.000000000 Z
12
+ date: 2013-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bitclust-core
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.5.4
21
+ version: 0.5.5
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.5.4
29
+ version: 0.5.5
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: test-unit
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -53,43 +53,43 @@ description: ! 'Rurema is a Japanese ruby documentation project, and
53
53
  email:
54
54
  - ''
55
55
  executables:
56
- - bc-tohtmlpackage.rb
56
+ - bc-tochm.rb
57
57
  - bc-methods.rb
58
- - bc-classes.rb
59
- - statrefm.rb
60
58
  - bc-checkparams.rb
61
- - bc-rdoc.rb
62
- - gencatalog.rb
63
- - check-signature.rb
64
- - bc-tochm.rb
65
- - bc-preproc.rb
66
59
  - bc-ancestors.rb
67
- - forall-ruby.rb
68
- - stattodo.rb
69
60
  - bc-list.rb
70
- - update-database.rb
71
- - bc-convert.rb
61
+ - stattodo.rb
62
+ - statrefm.rb
63
+ - bc-classes.rb
72
64
  - bc-tohtml.rb
65
+ - forall-ruby.rb
66
+ - gencatalog.rb
67
+ - bc-convert.rb
68
+ - bc-rdoc.rb
69
+ - bc-preproc.rb
70
+ - update-database.rb
71
+ - bc-tohtmlpackage.rb
72
+ - check-signature.rb
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - tools/bc-tohtmlpackage.rb
76
+ - tools/bc-tochm.rb
77
77
  - tools/bc-methods.rb
78
- - tools/bc-classes.rb
79
- - tools/statrefm.rb
80
78
  - tools/bc-checkparams.rb
81
- - tools/bc-rdoc.rb
82
- - tools/gencatalog.rb
83
- - tools/check-signature.rb
84
- - tools/bc-tochm.rb
85
- - tools/bc-preproc.rb
86
79
  - tools/bc-ancestors.rb
87
- - tools/forall-ruby.rb
88
- - tools/stattodo.rb
89
80
  - tools/bc-list.rb
90
- - tools/update-database.rb
91
- - tools/bc-convert.rb
81
+ - tools/stattodo.rb
82
+ - tools/statrefm.rb
83
+ - tools/bc-classes.rb
92
84
  - tools/bc-tohtml.rb
85
+ - tools/forall-ruby.rb
86
+ - tools/gencatalog.rb
87
+ - tools/bc-convert.rb
88
+ - tools/bc-rdoc.rb
89
+ - tools/bc-preproc.rb
90
+ - tools/update-database.rb
91
+ - tools/bc-tohtmlpackage.rb
92
+ - tools/check-signature.rb
93
93
  - lib/bitclust.rb
94
94
  homepage: http://doc.ruby-lang.org/ja/
95
95
  licenses: []
@@ -103,15 +103,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
103
  - - ! '>='
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
+ segments:
107
+ - 0
108
+ hash: -439247444481969180
106
109
  required_rubygems_version: !ruby/object:Gem::Requirement
107
110
  none: false
108
111
  requirements:
109
112
  - - ! '>='
110
113
  - !ruby/object:Gem::Version
111
114
  version: '0'
115
+ segments:
116
+ - 0
117
+ hash: -439247444481969180
112
118
  requirements: []
113
119
  rubyforge_project: ''
114
- rubygems_version: 1.8.24
120
+ rubygems_version: 1.8.25
115
121
  signing_key:
116
122
  specification_version: 3
117
123
  summary: BitClust is a rurema document processor.