• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mongoid / origin / 363
92%

Build:
DEFAULT BRANCH: master
Ran 30 Jan 2015 05:05AM UTC
Jobs 9
Files 30
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
363

Pull #106

travis-ci

Shamaoke
Add __FILE__, __LINE__ to class-, module_eval calls

Sometimes when exploring or debugging code it's necessary to know where
some method was defined. For this purpose `Method#source_location` is
used. It reports a filename and a line in the file with a method
definition. However, when using `Module#class_eval` and
`Module#module_eval` to dynamically define methods,
the output of `Method#source_location` is uninformative.

For this reason it's better to add `__FILE__` and `__LINE__` constants
as the second and third arguments to the aforementioned methods. This
allows `Method#source_location` to properly locate methods which was
defined dynamically.

Here's some examples:

    require 'origin'

    class Band
      extend Origin::Forwardable

      select_with :queryable

      def self.queryable
        Object.new.extend Origin::Queryable
      end
    end

    Band.method(:where).source_location
      # without __FILE__, __LINE__
      #=> ["(eval)", 1]

      # with __FILE__, __LINE__
      #=> ["<...>/lib/origin/forwardable.rb", 53]

    require 'origin'

    module Finders
      extend Origin::Forwardable

      select_with :queryable

      def queryable
        Object.new.extend Origin::Queryable
      end
    end

    class Band
      extend Finders
    end

    Band.method(:where).source_location
      # without __FILE__, __LINE__
      #=> ["(eval)", 1]

      # with __FILE__, __LINE__
      #=> ["<...>/lib/origin/forwardable.rb", 47]
Pull Request #106:

2 of 2 new or added lines in 1 file covered. (100.0%)

790 of 802 relevant lines covered (98.5%)

526.39 hits per line

Jobs
ID Job ID Ran Files Coverage
1 363.1 (1.9.3, CI="travis") 30 Jan 2015 05:05AM UTC 0
98.84
Travis Job 363.1
2 363.2 (2.0.0, CI="travis") 30 Jan 2015 05:05AM UTC 0
98.84
Travis Job 363.2
3 363.3 (2.1.0, CI="travis") 30 Jan 2015 05:07AM UTC 0
98.84
Travis Job 363.3
4 363.4 (ruby-head, CI="travis") 30 Jan 2015 05:06AM UTC 0
98.84
Travis Job 363.4
5 363.5 (rbx-19mode, CI="travis") 30 Jan 2015 05:09AM UTC 0
100.0
Travis Job 363.5
6 363.6 (jruby, CI="travis") 30 Jan 2015 05:07AM UTC 0
97.79
Travis Job 363.6
7 363.7 (jruby, CI="travis") 30 Jan 2015 05:06AM UTC 0
97.79
Travis Job 363.7
8 363.8 (jruby-head, CI="travis") 30 Jan 2015 05:08AM UTC 0
0.0
Travis Job 363.8
9 363.9 (jruby-head, CI="travis") 30 Jan 2015 05:08AM UTC 0
0.0
Travis Job 363.9
Source Files on build 363
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #363
  • Pull Request #106
  • Next Build on master (#364)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc