summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorkazu <kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-26 23:11:59 +0000
committerkazu <kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-26 23:11:59 +0000
commitab77f00b04999a857382462d40dfaef3262cbe84 (patch)
tree841540c43d1fad56a46403b49e670fc825a5bb03 /parse.y
parent33c5abbefae97178001f1ba8c95205b99209a313 (diff)
* parse.y (ripper_filename): add Ripper#filename. [ruby-dev:37856] * test/ripper/test_filter.rb: add more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y19
1 files changed, 19 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index c611f9b538..b8d9b595ee 100644
--- a/parse.y
+++ b/parse.y
@@ -10388,6 +10388,24 @@ ripper_column(VALUE self)
/*
* call-seq:
+ * ripper#filename -> String
+ *
+ * Return current parsing filename.
+ */
+static VALUE
+ripper_filename(VALUE self)
+{
+ struct parser_params *parser;
+
+ TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
+ if (!ripper_initialized_p(parser)) {
+ rb_raise(rb_eArgError, "method called for uninitialized object");
+ }
+ return parser->parser_ruby_sourcefile_string;
+}
+
+/*
+ * call-seq:
* ripper#lineno -> Integer
*
* Return line number of current parsing line.
@@ -10437,6 +10455,7 @@ Init_ripper(void)
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);