Sha256: d12b6a015bd0b60ed195c82ba5f2105d4a003d5c971c486a5527eb39f3500bf3

Contents?: true

Size: 1.5 KB

Versions: 17

Compression:

Stored size: 1.5 KB

Contents

# :stopdoc:
# WHY do I have to do this?!?
class Regexp
  ONCE = 0 unless defined? ONCE # FIX: remove this - it makes no sense

  unless defined? ENC_NONE then
    ENC_NONE = /x/n.options
    ENC_EUC  = /x/e.options
    ENC_SJIS = /x/s.options
    ENC_UTF8 = /x/u.options
  end
end

# I hate ruby 1.9 string changes
class Fixnum
  def ord
    self
  end
end unless "a"[0] == "a"
# :startdoc:

############################################################
# HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK

unless "".respond_to?(:grep) then
  class String
    def grep re
      lines.grep re
    end
  end
end

class String
  ##
  # This is a hack used by the lexer to sneak in line numbers at the
  # identifier level. This should be MUCH smaller than making
  # process_token return [value, lineno] and modifying EVERYTHING that
  # reduces tIDENTIFIER.

  attr_accessor :lineno

  def clean_caller
    self.sub(File.dirname(__FILE__), ".").sub(/:in.*/, "")
  end if $DEBUG
end

require "sexp"

class Sexp
  attr_writer :paren

  def paren
    @paren ||= false
  end

  def value
    raise "multi item sexp" if size > 2
    last
  end

  def to_sym
    raise "no: #{self.inspect}.to_sym is a bug"
    self.value.to_sym
  end

  alias :add :<<

  def add_all x
    self.concat x.sexp_body
  end

  def block_pass?
    any? { |s| Sexp === s && s.sexp_type == :block_pass }
  end

  alias :node_type :sexp_type
  alias :values :sexp_body # TODO: retire
end

# END HACK
############################################################

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
brakeman-4.4.0 bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/rp_extensions.rb
ruby_parser-3.12.0 lib/rp_extensions.rb
brakeman-4.3.1 bundle/ruby/2.5.0/gems/ruby_parser-3.11.0/lib/rp_extensions.rb
brakeman-4.3.0 bundle/ruby/2.5.0/gems/ruby_parser-3.11.0/lib/rp_extensions.rb
brakeman-4.2.1 bundle/ruby/2.5.0/gems/ruby_parser-3.11.0/lib/rp_extensions.rb
brakeman-4.2.0 bundle/ruby/2.3.0/gems/ruby_parser-3.11.0/lib/rp_extensions.rb
ruby_parser-3.11.0 lib/rp_extensions.rb
brakeman-4.1.1 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-4.1.0 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-4.0.1 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-4.0.1.pre1 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-4.0.0 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-3.7.2 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
brakeman-3.7.1 bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib/rp_extensions.rb
ruby_parser-3.10.1 lib/rp_extensions.rb
ruby_parser-3.10.0 lib/rp_extensions.rb
brakeman-3.7.0 bundle/ruby/2.3.0/gems/ruby_parser-3.9.0/lib/rp_extensions.rb