# \[Bug #1072\] Ripper#filename

**URL:** <https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967>\
**Category:** Development\
**Created:** [January 29, 2009, 9:15pm UTC](https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967 "2009-01-29T21:15:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [January 29, 2009, 9:15pm UTC](https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967/1 "2009-01-29T21:15:07Z")

</div>

Bug #1072: Ripper#filename  
[http://redmine.ruby-lang.org/issues/show/1072](http://redmine.ruby-lang.org/issues/show/1072)

e$B5/I\<\<Te(B: Kazuhiro NISHIYAMA  
e$B%9%F!\<%?%9e(B: Open, e$BM%@hEYe(B: Normal  
e$B%+%F%4%je(B: ext  
Reproducible Version: trunk, ruby -v: ruby 1.9.1p5000 (2009-01-30 trunk  
21885) [i686-linux]

Ripper::Filter#filenamee$B$,Dj5A$5$l$F$$$k$N$Ke(BRipper#filenamee$B$,Dj5A$5$l$F$$$J$$$?$a!"e(BNoMethodErrore$B$K$J$j$^$9!#e(B

% cat ~/check\_regexp\_n.rb  
#!/usr/bin/ruby

require ‘ripper/filter’

class CheckRegexpN \< Ripper::Filter  
def on\_regexp\_end(token, data)  
if /n/ =~ token  
puts “#{filename}:#{lineno}:#{column}:#{token}”  
end  
end  
end

ARGV.each do |path|  
open(path, “rb”) do |f|  
parser = CheckRegexpN.new(f, path)  
p [parser.filename, parser.lineno, parser.column]  
parser.parse  
p [parser.filename, parser.lineno, parser.column]  
end  
end  
% ruby-trunk -vd ~/check\_regexp\_n.rb lib/minitest/spec.rb  
ruby 1.9.1p5000 (2009-01-30 trunk 21885) [i686-linux]  
Exception `NoMethodError' at .../1.9.1/ripper/filter.rb:27 - undefined method `filename’ for #Ripper::Lexer:0x8170bbc  
…/1.9.1/ripper/filter.rb:27:in `filename': undefined method `filename’  
for #Ripper::Lexer:0x8170bbc (NoMethodError)  
from …/check\_regexp\_n.rb:16:in `block (2 levels) in <main>' from .../check_regexp_n.rb:14:in `open’  
from …/check\_regexp\_n.rb:14:in `block in <main>' from .../check_regexp_n.rb:13:in `each’  
from …/check\_regexp\_n.rb:13:in `’  
%

ripper\_linenoe$B$r$^$M$7$F0J2\<$N$h$&$Ke(Bripper\_filenamee$B$rDj5A$7$F$\_$?$N$G$9$,!“e(B  
if (NIL\_P(parser-\>parsing\_thread)) return Qnil;  
e$B$N9T$,$”$k$He(Bnile$B$7$+JV$C$F$3$J$+$C$?$N$G%3%a%s%H%"%&%H$7$F$$$^$9!#e(B

# Index: parse.y

— parse.y (e$B%j%S%8%g%se(B 21885)  
+++ parse.y (e$B:n6H%3%T!\<e(B)  
@@ -10239,6 +10239,25 @@

/\*

- call-seq:

- 
  - ripper#filename → String

- 
  - 

- 
  - Return current parsing filename.

- \*/  
+static VALUE  
+ripper\_filename(VALUE self)  
+{
- struct parser\_params \*parser;
- 
- Data\_Get\_Struct(self, struct parser\_params, parser);
- if (!ripper\_initialized\_p(parser)) {
- 

```
   rb_raise(rb_eArgError, "method called for uninitialized 

```

object");

- }  
+/\* if (NIL\_P(parser-\>parsing\_thread)) return Qnil; \*/
- return parser-\>parser\_ruby\_sourcefile\_string;  
+}
- 

+/\*

- 
  - call-seq:
  - ripper#lineno → Integer
  - 
  - Return line number of current parsing line.  
@@ -10288,6 +10307,7 @@  
rb\_define\_method(Ripper, “initialize”, ripper\_initialize, -1);  
rb\_define\_method(Ripper, “parse”, ripper\_parse, 0);  
rb\_define\_method(Ripper, “column”, ripper\_column, 0);

- rb\_define\_method(Ripper, “filename”, ripper\_filename, 0);  
rb\_define\_method(Ripper, “lineno”, ripper\_lineno, 0);  
rb\_define\_method(Ripper, “end\_seen?”, rb\_parser\_end\_seen\_p, 0);  
rb\_define\_method(Ripper, “encoding”, rb\_parser\_encoding, 0);

---

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [October 27, 2009, 12:17am UTC](https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967/2 "2009-10-27T00:17:19Z")

</div>

e$B%A%1%C%He(B #1072 e$B$,99?7$5$l$^$7$?!#e(B (by Anonymous)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r25499.  
Kazuhiro, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/1072](http://redmine.ruby-lang.org/issues/show/1072)

---

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [December 14, 2009, 7:58am UTC](https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967/3 "2009-12-14T07:58:51Z")

</div>

e$B%A%1%C%He(B #1072 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

## r25499e$B$,$^$@\<h$j9~$^$l$F$$$J$$$h$&$K8+$($^$9e(B

[http://redmine.ruby-lang.org/issues/show/1072](http://redmine.ruby-lang.org/issues/show/1072)

---

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [January 30, 2010, 1:57pm UTC](https://www.ruby-forum.com/t/bug-1072-ripper-filename/158967/4 "2010-01-30T13:57:29Z")

</div>

e$B%A%1%C%He(B #1072 e$B$,99?7$5$l$^$7$?!#e(B (by Yuki S.)

e$B%9%F!\<%?%9e(B Assignede$B$+$ie(BClosede$B$KJQ99e(B

This issue was solved with changeset r26508.  
Kazuhiro, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/1072](http://redmine.ruby-lang.org/issues/show/1072)
