summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:53:47 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:53:47 +0000
commit1e8b18dfa25d94c1d24d6d5be5172bb0cee2a987 (patch)
tree8fcdf9e51d8ec9c859fe8a81b334d9cf71a95095 /parse.y
parent8c1c1500234d67b20dcc0a0a102978521ee67b1d (diff)
merges r25499 from trunk into ruby_1_9_1.
-- * 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/branches/ruby_1_9_1@26508 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 0d66fcfac3..62c23ad87e 100644
--- a/parse.y
+++ b/parse.y
@@ -10415,6 +10415,24 @@ ripper_column(VALUE self)
/*
* 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");
+ }
+ return parser->parser_ruby_sourcefile_string;
+}
+
+/*
+ * call-seq:
* ripper#lineno -> Integer
*
* Return line number of current parsing line.
@@ -10464,6 +10482,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);