Sha256: d6a7175eb352e27fe21a74e8c7d95632393594b620cbf1f2bbccc0884533bf03

Contents?: true

Size: 1.27 KB

Versions: 34

Compression:

Stored size: 1.27 KB

Contents

module Cuboid
module UI
module OutputInterface

# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
module Personalization

    def included( base )
        base.extend ClassMethods
    end

    module ClassMethods
        def personalize_output!
            @personalize_output = true
        end

        def personalize_output?
            @personalize_output
        end
    end

    private

    def personalize_output( message )
        return message if !self.class.respond_to?( :personalize_output? )

        self.class.personalize_output? ?
            "#{self.class.name.split('::').last}: #{message}" : message
    end

    def output_root
        @output_root ||=
            File.expand_path( File.dirname( __FILE__ ) + '/../../../../' ) + '/'
    end

    def caller_location
        file = nil
        line = nil
        caller_method = nil
        Kernel.caller.each do |c|
            file, line, method = *c.scan( /(.*):(\d+):in `(?:.*\s)?(.*)'/ ).flatten
            next if file == output_provider_file

            caller_method = method
            break
        end

        file.gsub!( output_root, '' )

        context = nil
        if caller_method
            context = "[#{file}##{caller_method}:#{line}]"
        end

        context
    end

end

end
end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
cuboid-0.2.13 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.12 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.11 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.10 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.9 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.8 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.7 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.6 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.5 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.4.2 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.4.1 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.4 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.3 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.2 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2.1 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.2 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.1.9.1 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.1.9 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.1.8 lib/cuboid/ui/output_interface/personalization.rb
cuboid-0.1.7 lib/cuboid/ui/output_interface/personalization.rb