Sha256: 26a239d12b0dfabdf25e6c3b8d2332b4b6b17d19b72e22567a729bbd5bf78588

Contents?: true

Size: 795 Bytes

Versions: 1

Compression:

Stored size: 795 Bytes

Contents

module Sourcerer
  class SourceCode < String

    def parameters
      @parameters || self.dismantle.parameters
    end
    alias :args   :parameters
    alias :params :parameters

    def body
      @body || self.dismantle.body
    end

    def dismantle

      self_dup= self.dup

      #TODO: optionable args search for comments
      parameters_var=  self.scan(/\s*Proc\.new\s*{\s*\|(.*)\|/)
      if parameters_var.empty?
        @parameters= ""
      else
        @parameters= parameters_var[0][0]
        self_dup.sub!(parameters_var[0][0],"")
        self_dup.sub!( self_dup.split("\n")[0], self_dup.split("\n")[0].gsub("|","") )
      end

      self_dup.slice! /\s*Proc\.new\s*{[\s\n]*/
      self_dup[self_dup.length-1]=""

      @body= self_dup

      return self

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sourcerer-0.7.0 lib/sourcerer/source_code.rb