bitclust-dev 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
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.