Sha256: 485daa1173e4c5d400e8bc0b5971035b8a979ace9fa1d385ef9bf4c3ab42104a
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
require 'ruby2ruby' class DRG::Ruby::Condition attr_reader :statement, :nested_conditions, :sexp def initialize(sexp) @sexp = sexp @statement = Ruby2Ruby.new.process(sexp.deep_clone) @nested_conditions = Set.new sexp.drop(1).flatten.include?(:if) && sexp.drop(1).deep_each do |exp| DRG::Decorators::SexpDecorator.new(exp).each_sexp_condition do |node| @nested_conditions << self.class.new(node) end end @nested_conditions = @nested_conditions.to_a end def short_statement if @statement =~ /(unless|if)(.+)$/ ($1 << $2).strip elsif @statement =~ /(.*?)\s+\?\s+/ $1.strip end end def return_value if @statement =~ /\s+\?\s+(.*?)(:|$)/ $1.strip else translate @statement[/(.*?)(unless|if)/, 1].to_s.strip end end def translate(txt) txt.sub! /^return\s*/, 'returns ' txt.sub! /^returns\s*$/, 'returns nil' txt.strip end # # Set related stuff # def eql?(other) hash == other.hash end def hash sexp.object_id end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
drg-0.14.0 | lib/drg/ruby/condition.rb |