Sha256: b393f702f7fec18fdc12c61b9b77ed2c5f9b2aa54e987e68bd07bdf9c7bcf039

Contents?: true

Size: 678 Bytes

Versions: 1

Compression:

Stored size: 678 Bytes

Contents

require 'ruby_parser'
require 'forwardable'

class Ryan
  autoload :Version, 'ryan/version'
  autoload :Const, 'ryan/const'
  autoload :Condition, 'ryan/condition'
  autoload :Func, 'ryan/func'
  autoload :ClassFunc, 'ryan/class_func'
  autoload :InstanceFunc, 'ryan/instance_func'
  autoload :Assignment, 'ryan/assignment'
  autoload :SexpDecorator, 'ryan/sexp_decorator'

  attr_reader :sexp, :const

  extend Forwardable

  def_delegators :const,
    :name, :funcs, :type, :initialization_args, :func_by_name, :class?, :module?

  # @param [Pathname, String] file
  def initialize(file)
    @sexp = RubyParser.new.parse File.read(file)
    @const = Const.new(sexp)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ryan-1.0.0 lib/ryan.rb