Sha256: cf7fd2dc01499a7c7528f6b4900a8dab15995ef0f5b2545c25bcd4fbddbfc188

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

require_relative "element"

module Autocad
  class Text < Element
    def read_ole(_ole)
      ole_obj.TextString
    end

    def write_ole(text)
      ole_obj.TextString = text
    end

    def to_regexp
      Regexp.new(read_ole.to_s)
    end

    def =~(reg)
      @original =~ reg
    end

    # de_relativef tocad_id
    #   @ole_obj.Id || @ole_obj.ID64
    # end
    # def text?
    #   true
    # end

    # def text_node?
    #   false
    # end

    def to_s
      original.to_s
    end

    def bounds
      binding.break
      rotation = ole_obj.Rotation
      begin
        app_ole_obj.Matrix3dInverse(rotation)
      rescue
        binding.irb
      end
      transform = app_ole_obj.Transform3dFromMatrix3dandFixedPoint3d(app_ole_obj.Matrix3dInverse(rotation),
        ole_obj.origin)
      ole_obj.transform transform

      0.upto(4) do |i|
        points[i] = ole_obj.Boundary.Low
      end
      points[2] = self.Boundary.High
      points[1].X = points[2].x
      points[3].y = points[2].Y
    end

    def method_missing(meth, *, &)
      if /^[A-Z]/.match?(meth)
        ole_obj.send(meth, *)
      else
        dup = @original.dup
        result = dup.send(meth, *, &)
        update(result)
        result
      end
    end

    # def method_missing(meth,*args,&block)
    #   dup = @original_text.dup
    #     result = dup.send(meth,*args, &block)
    #     _update(dup) unless dup == @original_text
    #   result
    # end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
autocad-0.4.6 lib/autocad/text.rb