autocad 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rubocop/minitest.yml +2 -0
- data/.rubocop/strict.yml +4 -0
- data/.rubocop.yml +33 -0
- data/.solargraph.yml +22 -0
- data/.vscode/launch.json +30 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/Guardfile +66 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +10 -0
- data/Steepfile +35 -0
- data/WASD-D-TDS-C001.dwg +0 -0
- data/WASD-D-TDS-C001.pdf +0 -0
- data/autocad.log +1 -0
- data/autocad_example.rb +26 -0
- data/event_handler.log +24 -0
- data/examples/example_save_pdf.rb +5 -0
- data/exe/autocad +3 -0
- data/exe/dgn2pdf +50 -0
- data/exe/pw_print +43 -0
- data/gemfiles/rubocop.gemfile +6 -0
- data/lib/autocad/app.rb +655 -0
- data/lib/autocad/arc.rb +29 -0
- data/lib/autocad/block.rb +141 -0
- data/lib/autocad/block_reference.rb +198 -0
- data/lib/autocad/drawing.rb +426 -0
- data/lib/autocad/element.rb +454 -0
- data/lib/autocad/enumerator.rb +24 -0
- data/lib/autocad/errors.rb +37 -0
- data/lib/autocad/event_handler.rb +30 -0
- data/lib/autocad/filter.rb +168 -0
- data/lib/autocad/layer.rb +41 -0
- data/lib/autocad/line.rb +55 -0
- data/lib/autocad/message_box.rb +95 -0
- data/lib/autocad/model.rb +89 -0
- data/lib/autocad/mtext.rb +110 -0
- data/lib/autocad/paths.rb +29 -0
- data/lib/autocad/point3d.rb +143 -0
- data/lib/autocad/pviewport.rb +21 -0
- data/lib/autocad/selection_filter.rb +180 -0
- data/lib/autocad/selection_set.rb +61 -0
- data/lib/autocad/selection_set_adapter.rb +146 -0
- data/lib/autocad/text.rb +74 -0
- data/lib/autocad/version.rb +5 -0
- data/lib/autocad.rb +161 -0
- data/olegen.rb +341 -0
- data/rbs_collection.lock.yaml +188 -0
- data/rbs_collection.yaml +19 -0
- data/scanner.obj +0 -0
- data/sig/generated/autocad/app.rbs +251 -0
- data/sig/generated/autocad/arc.rbs +17 -0
- data/sig/generated/autocad/block.rbs +63 -0
- data/sig/generated/autocad/block_reference.rbs +59 -0
- data/sig/generated/autocad/drawing.rbs +158 -0
- data/sig/generated/autocad/element.rbs +166 -0
- data/sig/generated/autocad/enumerator.rbs +15 -0
- data/sig/generated/autocad/errors.rbs +23 -0
- data/sig/generated/autocad/event_handler.rbs +14 -0
- data/sig/generated/autocad/filter.rbs +60 -0
- data/sig/generated/autocad/layer.rbs +19 -0
- data/sig/generated/autocad/line.rbs +25 -0
- data/sig/generated/autocad/message_box.rbs +81 -0
- data/sig/generated/autocad/model.rbs +41 -0
- data/sig/generated/autocad/paths.rbs +19 -0
- data/sig/generated/autocad/point3d.rbs +66 -0
- data/sig/generated/autocad/selection_filter.rbs +50 -0
- data/sig/generated/autocad/selection_set.rbs +37 -0
- data/sig/generated/autocad/selection_set_adapter.rbs +28 -0
- data/sig/generated/autocad/text.rbs +19 -0
- data/sig/generated/autocad/text_node.rbs +37 -0
- data/sig/generated/autocad/version.rbs +5 -0
- data/sig/generated/autocad/viewport.rbs +11 -0
- data/sig/generated/autocad.rbs +68 -0
- data/sig/prototype/lib/autocad/app.rbs +34 -0
- data/sig/prototype/lib/autocad/block.rbs +5 -0
- data/sig/prototype/lib/autocad/block_reference.rbs +5 -0
- data/sig/prototype/lib/autocad/drawing.rbs +13 -0
- data/sig/prototype/lib/autocad/element.rbs +9 -0
- data/sig/prototype/lib/autocad/enumerator.rbs +5 -0
- data/sig/prototype/lib/autocad/event_handler.rbs +7 -0
- data/sig/prototype/lib/autocad/model.rbs +5 -0
- data/sig/prototype/lib/autocad/paths.rbs +5 -0
- data/sig/prototype/lib/autocad.rbs +3 -0
- data/temp/autocad.dwg +0 -0
- data/temp/autocad.log +1 -0
- data/temp/event_handler.log +0 -0
- metadata +147 -0
    
        data/olegen.rb
    ADDED
    
    | @@ -0,0 +1,341 @@ | |
| 1 | 
            +
            # frozen_string_literal: false
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            #-----------------------------
         | 
| 4 | 
            +
            # olegen.rb
         | 
| 5 | 
            +
            # $Revision$
         | 
| 6 | 
            +
            #-----------------------------
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require "win32ole"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            class WIN32COMGen
         | 
| 11 | 
            +
              def initialize(typelib)
         | 
| 12 | 
            +
                @typelib = typelib
         | 
| 13 | 
            +
                @receiver = ""
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              attr_reader :typelib
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              def ole_classes(typelib)
         | 
| 18 | 
            +
                @ole = WIN32OLE.new(typelib)
         | 
| 19 | 
            +
                [@ole.ole_obj_help]
         | 
| 20 | 
            +
              rescue
         | 
| 21 | 
            +
                WIN32OLE_TYPE.ole_classes(typelib)
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              def generate_args(method)
         | 
| 25 | 
            +
                args = []
         | 
| 26 | 
            +
                size_required_params = if method.size_opt_params >= 0
         | 
| 27 | 
            +
                  method.size_params - method.size_opt_params
         | 
| 28 | 
            +
                else
         | 
| 29 | 
            +
                  method.size_params - 1
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
                size_required_params.times do |i|
         | 
| 32 | 
            +
                  if method.params[i] && method.params[i].optional?
         | 
| 33 | 
            +
                    args.push "arg#{i}=nil"
         | 
| 34 | 
            +
                  else
         | 
| 35 | 
            +
                    args.push "arg#{i}"
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
                if method.size_opt_params >= 0
         | 
| 39 | 
            +
                  method.size_opt_params.times do |i|
         | 
| 40 | 
            +
                    args.push "arg#{i + size_required_params}=nil"
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                else
         | 
| 43 | 
            +
                  args.push "*arg"
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
                args.join(", ")
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              def generate_argtype(typedetails)
         | 
| 49 | 
            +
                ts = ""
         | 
| 50 | 
            +
                typedetails.each do |t|
         | 
| 51 | 
            +
                  case t
         | 
| 52 | 
            +
                  when "CARRAY", "VOID", "UINT", "RESULT", "DECIMAL", "I8", "UI8"
         | 
| 53 | 
            +
                    #	  raise "Sorry type\"" + t + "\" not supported"
         | 
| 54 | 
            +
                    ts << "\"??? NOT SUPPORTED TYPE:`#{t}'\""
         | 
| 55 | 
            +
                  when "USERDEFINED", "Unknown Type 9"
         | 
| 56 | 
            +
                    ts << "VT_DISPATCH"
         | 
| 57 | 
            +
                    break
         | 
| 58 | 
            +
                  when "SAFEARRAY"
         | 
| 59 | 
            +
                    ts << "VT_ARRAY|"
         | 
| 60 | 
            +
                  when "PTR"
         | 
| 61 | 
            +
                    ts << "VT_BYREF|"
         | 
| 62 | 
            +
                  when "INT"
         | 
| 63 | 
            +
                    ts << "VT_I4"
         | 
| 64 | 
            +
                  else
         | 
| 65 | 
            +
                    if String === t
         | 
| 66 | 
            +
                      ts << "VT_" + t
         | 
| 67 | 
            +
                    end
         | 
| 68 | 
            +
                  end
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
                if ts.empty?
         | 
| 71 | 
            +
                  ts = "VT_VARIANT"
         | 
| 72 | 
            +
                elsif ts.end_with?("|")
         | 
| 73 | 
            +
                  ts += "VT_VARIANT"
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
                ts
         | 
| 76 | 
            +
              end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
              def generate_argtypes(method, proptypes)
         | 
| 79 | 
            +
                types = method.params.collect { |param|
         | 
| 80 | 
            +
                  generate_argtype(param.ole_type_detail)
         | 
| 81 | 
            +
                }.join(", ")
         | 
| 82 | 
            +
                if proptypes
         | 
| 83 | 
            +
                  types += ", " if types.size > 0
         | 
| 84 | 
            +
                  types += generate_argtype(proptypes)
         | 
| 85 | 
            +
                end
         | 
| 86 | 
            +
                types
         | 
| 87 | 
            +
              end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
              def generate_method_body(method, disptype, types = nil)
         | 
| 90 | 
            +
                "    ret = #{@receiver}#{disptype}(#{method.dispid}, [" +
         | 
| 91 | 
            +
                  generate_args(method).gsub("=nil", "") +
         | 
| 92 | 
            +
                  "], [" +
         | 
| 93 | 
            +
                  generate_argtypes(method, types) +
         | 
| 94 | 
            +
                  "])\n" +
         | 
| 95 | 
            +
                  "    @lastargs = WIN32OLE::ARGV\n" +
         | 
| 96 | 
            +
                  "    ret"
         | 
| 97 | 
            +
              end
         | 
| 98 | 
            +
             | 
| 99 | 
            +
              def generate_method_help(method, type = nil)
         | 
| 100 | 
            +
                str = "  # "
         | 
| 101 | 
            +
                str += type || method.return_type
         | 
| 102 | 
            +
                str += " #{method.name}"
         | 
| 103 | 
            +
                if method.event?
         | 
| 104 | 
            +
                  str += " EVENT"
         | 
| 105 | 
            +
                  str += " in #{method.event_interface}"
         | 
| 106 | 
            +
                end
         | 
| 107 | 
            +
                if method.helpstring && method.helpstring != ""
         | 
| 108 | 
            +
                  str += "\n  # "
         | 
| 109 | 
            +
                  str += method.helpstring
         | 
| 110 | 
            +
                end
         | 
| 111 | 
            +
                args_help = generate_method_args_help(method)
         | 
| 112 | 
            +
                if args_help
         | 
| 113 | 
            +
                  str += "\n"
         | 
| 114 | 
            +
                  str += args_help
         | 
| 115 | 
            +
                end
         | 
| 116 | 
            +
                str
         | 
| 117 | 
            +
              end
         | 
| 118 | 
            +
             | 
| 119 | 
            +
              def generate_method_args_help(method)
         | 
| 120 | 
            +
                args = []
         | 
| 121 | 
            +
                method.params.each_with_index { |param, i|
         | 
| 122 | 
            +
                  h = "  #   #{param.ole_type} arg#{i} --- #{param.name}"
         | 
| 123 | 
            +
                  inout = []
         | 
| 124 | 
            +
                  inout.push "IN" if param.input?
         | 
| 125 | 
            +
                  inout.push "OUT" if param.output?
         | 
| 126 | 
            +
                  h += " [#{inout.join("/")}]"
         | 
| 127 | 
            +
                  h += " ( = #{param.default})" if param.default
         | 
| 128 | 
            +
                  args.push h
         | 
| 129 | 
            +
                }
         | 
| 130 | 
            +
                if args.size > 0
         | 
| 131 | 
            +
                  args.join("\n")
         | 
| 132 | 
            +
                end
         | 
| 133 | 
            +
              end
         | 
| 134 | 
            +
             | 
| 135 | 
            +
              def generate_method(method, disptype, io = STDOUT, types = nil)
         | 
| 136 | 
            +
                io.puts "\n"
         | 
| 137 | 
            +
                io.puts generate_method_help(method)
         | 
| 138 | 
            +
                if method.invoke_kind == "PROPERTYPUT"
         | 
| 139 | 
            +
                  io.print "  def #{method.name}=("
         | 
| 140 | 
            +
                else
         | 
| 141 | 
            +
                  io.print "  def #{method.name}("
         | 
| 142 | 
            +
                end
         | 
| 143 | 
            +
                io.print generate_args(method)
         | 
| 144 | 
            +
                io.puts ")"
         | 
| 145 | 
            +
                io.puts generate_method_body(method, disptype, types)
         | 
| 146 | 
            +
                io.puts "  end"
         | 
| 147 | 
            +
              end
         | 
| 148 | 
            +
             | 
| 149 | 
            +
              def generate_propputref_methods(klass, io = STDOUT)
         | 
| 150 | 
            +
                klass.ole_methods.select { |method|
         | 
| 151 | 
            +
                  method.invoke_kind == "PROPERTYPUTREF" && method.visible?
         | 
| 152 | 
            +
                }.each do |method|
         | 
| 153 | 
            +
                  generate_method(method, io)
         | 
| 154 | 
            +
                end
         | 
| 155 | 
            +
              end
         | 
| 156 | 
            +
             | 
| 157 | 
            +
              def generate_properties_with_args(klass, io = STDOUT)
         | 
| 158 | 
            +
                klass.ole_methods.select { |method|
         | 
| 159 | 
            +
                  method.invoke_kind == "PROPERTYGET" &&
         | 
| 160 | 
            +
                    method.visible? &&
         | 
| 161 | 
            +
                    method.size_params > 0
         | 
| 162 | 
            +
                }.each do |method|
         | 
| 163 | 
            +
                  types = method.return_type_detail
         | 
| 164 | 
            +
                  io.puts "\n"
         | 
| 165 | 
            +
                  io.puts generate_method_help(method, types[0])
         | 
| 166 | 
            +
                  io.puts "  def #{method.name}"
         | 
| 167 | 
            +
                  if klass.ole_type == "Class"
         | 
| 168 | 
            +
                    io.print "    OLEProperty.new(@dispatch, #{method.dispid}, ["
         | 
| 169 | 
            +
                  else
         | 
| 170 | 
            +
                    io.print "    OLEProperty.new(self, #{method.dispid}, ["
         | 
| 171 | 
            +
                  end
         | 
| 172 | 
            +
                  io.print generate_argtypes(method, nil)
         | 
| 173 | 
            +
                  io.print "], ["
         | 
| 174 | 
            +
                  io.print generate_argtypes(method, types)
         | 
| 175 | 
            +
                  io.puts "])"
         | 
| 176 | 
            +
                  io.puts "  end"
         | 
| 177 | 
            +
                end
         | 
| 178 | 
            +
              end
         | 
| 179 | 
            +
             | 
| 180 | 
            +
              def generate_propput_methods(klass, io = STDOUT)
         | 
| 181 | 
            +
                klass.ole_methods.select { |method|
         | 
| 182 | 
            +
                  method.invoke_kind == "PROPERTYPUT" && method.visible? &&
         | 
| 183 | 
            +
                    method.size_params == 1
         | 
| 184 | 
            +
                }.each do |method|
         | 
| 185 | 
            +
                  ms = klass.ole_methods.select { |m|
         | 
| 186 | 
            +
                    m.invoke_kind == "PROPERTYGET" &&
         | 
| 187 | 
            +
                      m.dispid == method.dispid
         | 
| 188 | 
            +
                  }
         | 
| 189 | 
            +
                  types = []
         | 
| 190 | 
            +
                  if ms.size == 1
         | 
| 191 | 
            +
                    types = ms[0].return_type_detail
         | 
| 192 | 
            +
                  end
         | 
| 193 | 
            +
                  generate_method(method, "_setproperty", io, types)
         | 
| 194 | 
            +
                end
         | 
| 195 | 
            +
              end
         | 
| 196 | 
            +
             | 
| 197 | 
            +
              def generate_propget_methods(klass, io = STDOUT)
         | 
| 198 | 
            +
                klass.ole_methods.select { |method|
         | 
| 199 | 
            +
                  method.invoke_kind == "PROPERTYGET" && method.visible? &&
         | 
| 200 | 
            +
                    method.size_params == 0
         | 
| 201 | 
            +
                }.each do |method|
         | 
| 202 | 
            +
                  generate_method(method, "_getproperty", io)
         | 
| 203 | 
            +
                end
         | 
| 204 | 
            +
              end
         | 
| 205 | 
            +
             | 
| 206 | 
            +
              def generate_func_methods(klass, io = STDOUT)
         | 
| 207 | 
            +
                klass.ole_methods.select { |method|
         | 
| 208 | 
            +
                  method.invoke_kind == "FUNC" && method.visible?
         | 
| 209 | 
            +
                }.each do |method|
         | 
| 210 | 
            +
                  generate_method(method, "_invoke", io)
         | 
| 211 | 
            +
                end
         | 
| 212 | 
            +
              end
         | 
| 213 | 
            +
             | 
| 214 | 
            +
              def generate_methods(klass, io = STDOUT)
         | 
| 215 | 
            +
                generate_propget_methods(klass, io)
         | 
| 216 | 
            +
                generate_propput_methods(klass, io)
         | 
| 217 | 
            +
                generate_properties_with_args(klass, io)
         | 
| 218 | 
            +
                generate_func_methods(klass, io)
         | 
| 219 | 
            +
                #   generate_propputref_methods(klass, io)
         | 
| 220 | 
            +
              end
         | 
| 221 | 
            +
             | 
| 222 | 
            +
              def generate_constants(klass, io = STDOUT)
         | 
| 223 | 
            +
                klass.variables.select { |v|
         | 
| 224 | 
            +
                  v.visible? && v.variable_kind == "CONSTANT"
         | 
| 225 | 
            +
                }.each do |v|
         | 
| 226 | 
            +
                  io.print "  "
         | 
| 227 | 
            +
                  io.print v.name.sub(/^./) { $&.upcase }
         | 
| 228 | 
            +
                  io.print " = "
         | 
| 229 | 
            +
                  io.puts v.value
         | 
| 230 | 
            +
                end
         | 
| 231 | 
            +
              end
         | 
| 232 | 
            +
             | 
| 233 | 
            +
              def class_name(klass)
         | 
| 234 | 
            +
                klass_name = klass.name
         | 
| 235 | 
            +
                if klass.ole_type == "Class" &&
         | 
| 236 | 
            +
                    klass.guid &&
         | 
| 237 | 
            +
                    klass.progid
         | 
| 238 | 
            +
                  klass_name = klass.progid.tr(".", "_")
         | 
| 239 | 
            +
                end
         | 
| 240 | 
            +
                if /^[A-Z]/ !~ klass_name || Module.constants.include?(klass_name)
         | 
| 241 | 
            +
                  klass_name = "OLE" + klass_name
         | 
| 242 | 
            +
                end
         | 
| 243 | 
            +
                klass_name
         | 
| 244 | 
            +
              end
         | 
| 245 | 
            +
             | 
| 246 | 
            +
              def define_initialize(klass)
         | 
| 247 | 
            +
                <<STR
         | 
| 248 | 
            +
             | 
| 249 | 
            +
              def initialize(obj = nil)
         | 
| 250 | 
            +
                @clsid = "#{klass.guid}"
         | 
| 251 | 
            +
                @progid = "#{klass.progid}"
         | 
| 252 | 
            +
                if obj.nil?
         | 
| 253 | 
            +
                  @dispatch = WIN32OLE.new @progid
         | 
| 254 | 
            +
                else
         | 
| 255 | 
            +
                  @dispatch = obj
         | 
| 256 | 
            +
                end
         | 
| 257 | 
            +
              end
         | 
| 258 | 
            +
            STR
         | 
| 259 | 
            +
              end
         | 
| 260 | 
            +
             | 
| 261 | 
            +
              def define_include
         | 
| 262 | 
            +
                "  include WIN32OLE::VARIANT"
         | 
| 263 | 
            +
              end
         | 
| 264 | 
            +
             | 
| 265 | 
            +
              def define_instance_variables
         | 
| 266 | 
            +
                "  attr_reader :lastargs"
         | 
| 267 | 
            +
              end
         | 
| 268 | 
            +
             | 
| 269 | 
            +
              def define_method_missing
         | 
| 270 | 
            +
                <<STR
         | 
| 271 | 
            +
             | 
| 272 | 
            +
              def method_missing(cmd, *arg)
         | 
| 273 | 
            +
                @dispatch.method_missing(cmd, *arg)
         | 
| 274 | 
            +
              end
         | 
| 275 | 
            +
            STR
         | 
| 276 | 
            +
              end
         | 
| 277 | 
            +
             | 
| 278 | 
            +
              def define_class(klass, io = STDOUT)
         | 
| 279 | 
            +
                io.puts "class #{class_name(klass)} # #{klass.name}"
         | 
| 280 | 
            +
                io.puts define_include
         | 
| 281 | 
            +
                io.puts define_instance_variables
         | 
| 282 | 
            +
                io.puts "  attr_reader :dispatch"
         | 
| 283 | 
            +
                io.puts "  attr_reader :clsid"
         | 
| 284 | 
            +
                io.puts "  attr_reader :progid"
         | 
| 285 | 
            +
                io.puts define_initialize(klass)
         | 
| 286 | 
            +
                io.puts define_method_missing
         | 
| 287 | 
            +
              end
         | 
| 288 | 
            +
             | 
| 289 | 
            +
              def define_module(klass, io = STDOUT)
         | 
| 290 | 
            +
                io.puts "module #{class_name(klass)}"
         | 
| 291 | 
            +
                io.puts define_include
         | 
| 292 | 
            +
                io.puts define_instance_variables
         | 
| 293 | 
            +
              end
         | 
| 294 | 
            +
             | 
| 295 | 
            +
              def generate_class(klass, io = STDOUT)
         | 
| 296 | 
            +
                io.puts "\n# #{klass.helpstring}"
         | 
| 297 | 
            +
                if klass.ole_type == "Class" &&
         | 
| 298 | 
            +
                    klass.guid &&
         | 
| 299 | 
            +
                    klass.progid
         | 
| 300 | 
            +
                  @receiver = "@dispatch."
         | 
| 301 | 
            +
                  define_class(klass, io)
         | 
| 302 | 
            +
                else
         | 
| 303 | 
            +
                  @receiver = ""
         | 
| 304 | 
            +
                  define_module(klass, io)
         | 
| 305 | 
            +
                end
         | 
| 306 | 
            +
                generate_constants(klass, io)
         | 
| 307 | 
            +
                generate_methods(klass, io)
         | 
| 308 | 
            +
                io.puts "end"
         | 
| 309 | 
            +
              end
         | 
| 310 | 
            +
             | 
| 311 | 
            +
              def generate(io = STDOUT)
         | 
| 312 | 
            +
                io.puts "require 'win32ole'"
         | 
| 313 | 
            +
                io.puts "require 'win32ole/property'"
         | 
| 314 | 
            +
             | 
| 315 | 
            +
                ole_classes(typelib).select { |klass|
         | 
| 316 | 
            +
                  klass.visible? &&
         | 
| 317 | 
            +
                    (klass.ole_type == "Class" ||
         | 
| 318 | 
            +
                     klass.ole_type == "Interface" ||
         | 
| 319 | 
            +
                     klass.ole_type == "Dispatch" ||
         | 
| 320 | 
            +
                     klass.ole_type == "Enum")
         | 
| 321 | 
            +
                }.each do |klass|
         | 
| 322 | 
            +
                  generate_class(klass, io)
         | 
| 323 | 
            +
                end
         | 
| 324 | 
            +
                begin
         | 
| 325 | 
            +
                  @ole.quit if @ole
         | 
| 326 | 
            +
                rescue
         | 
| 327 | 
            +
                end
         | 
| 328 | 
            +
              end
         | 
| 329 | 
            +
            end
         | 
| 330 | 
            +
             | 
| 331 | 
            +
            require "win32ole"
         | 
| 332 | 
            +
            if __FILE__ == $0
         | 
| 333 | 
            +
              if ARGV.size == 0
         | 
| 334 | 
            +
                warn "usage: #{$0} Type Library [...]"
         | 
| 335 | 
            +
                exit 1
         | 
| 336 | 
            +
              end
         | 
| 337 | 
            +
              ARGV.each do |typelib|
         | 
| 338 | 
            +
                comgen = WIN32COMGen.new(typelib)
         | 
| 339 | 
            +
                comgen.generate
         | 
| 340 | 
            +
              end
         | 
| 341 | 
            +
            end
         | 
| @@ -0,0 +1,188 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            path: ".gem_rbs_collection"
         | 
| 3 | 
            +
            gems:
         | 
| 4 | 
            +
            - name: ast
         | 
| 5 | 
            +
              version: '2.4'
         | 
| 6 | 
            +
              source:
         | 
| 7 | 
            +
                type: git
         | 
| 8 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 9 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 10 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 11 | 
            +
                repo_dir: gems
         | 
| 12 | 
            +
            - name: digest
         | 
| 13 | 
            +
              version: '0'
         | 
| 14 | 
            +
              source:
         | 
| 15 | 
            +
                type: stdlib
         | 
| 16 | 
            +
            - name: erb
         | 
| 17 | 
            +
              version: '0'
         | 
| 18 | 
            +
              source:
         | 
| 19 | 
            +
                type: stdlib
         | 
| 20 | 
            +
            - name: ffi
         | 
| 21 | 
            +
              version: 1.17.0
         | 
| 22 | 
            +
              source:
         | 
| 23 | 
            +
                type: rubygems
         | 
| 24 | 
            +
            - name: fileutils
         | 
| 25 | 
            +
              version: '0'
         | 
| 26 | 
            +
              source:
         | 
| 27 | 
            +
                type: stdlib
         | 
| 28 | 
            +
            - name: io-console
         | 
| 29 | 
            +
              version: '0'
         | 
| 30 | 
            +
              source:
         | 
| 31 | 
            +
                type: stdlib
         | 
| 32 | 
            +
            - name: json
         | 
| 33 | 
            +
              version: '0'
         | 
| 34 | 
            +
              source:
         | 
| 35 | 
            +
                type: stdlib
         | 
| 36 | 
            +
            - name: listen
         | 
| 37 | 
            +
              version: '3.9'
         | 
| 38 | 
            +
              source:
         | 
| 39 | 
            +
                type: git
         | 
| 40 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 41 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 42 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 43 | 
            +
                repo_dir: gems
         | 
| 44 | 
            +
            - name: logger
         | 
| 45 | 
            +
              version: '0'
         | 
| 46 | 
            +
              source:
         | 
| 47 | 
            +
                type: stdlib
         | 
| 48 | 
            +
            - name: minitest
         | 
| 49 | 
            +
              version: '0'
         | 
| 50 | 
            +
              source:
         | 
| 51 | 
            +
                type: stdlib
         | 
| 52 | 
            +
            - name: monitor
         | 
| 53 | 
            +
              version: '0'
         | 
| 54 | 
            +
              source:
         | 
| 55 | 
            +
                type: stdlib
         | 
| 56 | 
            +
            - name: openssl
         | 
| 57 | 
            +
              version: '0'
         | 
| 58 | 
            +
              source:
         | 
| 59 | 
            +
                type: stdlib
         | 
| 60 | 
            +
            - name: optparse
         | 
| 61 | 
            +
              version: '0'
         | 
| 62 | 
            +
              source:
         | 
| 63 | 
            +
                type: stdlib
         | 
| 64 | 
            +
            - name: parallel
         | 
| 65 | 
            +
              version: '1.20'
         | 
| 66 | 
            +
              source:
         | 
| 67 | 
            +
                type: git
         | 
| 68 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 69 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 70 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 71 | 
            +
                repo_dir: gems
         | 
| 72 | 
            +
            - name: parser
         | 
| 73 | 
            +
              version: '3.2'
         | 
| 74 | 
            +
              source:
         | 
| 75 | 
            +
                type: git
         | 
| 76 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 77 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 78 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 79 | 
            +
                repo_dir: gems
         | 
| 80 | 
            +
            - name: pathname
         | 
| 81 | 
            +
              version: '0'
         | 
| 82 | 
            +
              source:
         | 
| 83 | 
            +
                type: stdlib
         | 
| 84 | 
            +
            - name: prism
         | 
| 85 | 
            +
              version: 1.2.0
         | 
| 86 | 
            +
              source:
         | 
| 87 | 
            +
                type: rubygems
         | 
| 88 | 
            +
            - name: rainbow
         | 
| 89 | 
            +
              version: '3.0'
         | 
| 90 | 
            +
              source:
         | 
| 91 | 
            +
                type: git
         | 
| 92 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 93 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 94 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 95 | 
            +
                repo_dir: gems
         | 
| 96 | 
            +
            - name: rake
         | 
| 97 | 
            +
              version: '13.0'
         | 
| 98 | 
            +
              source:
         | 
| 99 | 
            +
                type: git
         | 
| 100 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 101 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 102 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 103 | 
            +
                repo_dir: gems
         | 
| 104 | 
            +
            - name: rbs
         | 
| 105 | 
            +
              version: 3.7.0
         | 
| 106 | 
            +
              source:
         | 
| 107 | 
            +
                type: rubygems
         | 
| 108 | 
            +
            - name: rbs-inline
         | 
| 109 | 
            +
              version: 0.10.0
         | 
| 110 | 
            +
              source:
         | 
| 111 | 
            +
                type: rubygems
         | 
| 112 | 
            +
            - name: rdoc
         | 
| 113 | 
            +
              version: '0'
         | 
| 114 | 
            +
              source:
         | 
| 115 | 
            +
                type: stdlib
         | 
| 116 | 
            +
            - name: regexp_parser
         | 
| 117 | 
            +
              version: '2.8'
         | 
| 118 | 
            +
              source:
         | 
| 119 | 
            +
                type: git
         | 
| 120 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 121 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 122 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 123 | 
            +
                repo_dir: gems
         | 
| 124 | 
            +
            - name: repl_type_completor
         | 
| 125 | 
            +
              version: 0.1.9
         | 
| 126 | 
            +
              source:
         | 
| 127 | 
            +
                type: rubygems
         | 
| 128 | 
            +
            - name: ripper
         | 
| 129 | 
            +
              version: '0'
         | 
| 130 | 
            +
              source:
         | 
| 131 | 
            +
                type: stdlib
         | 
| 132 | 
            +
            - name: rubocop
         | 
| 133 | 
            +
              version: '1.57'
         | 
| 134 | 
            +
              source:
         | 
| 135 | 
            +
                type: git
         | 
| 136 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 137 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 138 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 139 | 
            +
                repo_dir: gems
         | 
| 140 | 
            +
            - name: rubocop-ast
         | 
| 141 | 
            +
              version: '1.30'
         | 
| 142 | 
            +
              source:
         | 
| 143 | 
            +
                type: git
         | 
| 144 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 145 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 146 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 147 | 
            +
                repo_dir: gems
         | 
| 148 | 
            +
            - name: singleton
         | 
| 149 | 
            +
              version: '0'
         | 
| 150 | 
            +
              source:
         | 
| 151 | 
            +
                type: stdlib
         | 
| 152 | 
            +
            - name: socket
         | 
| 153 | 
            +
              version: '0'
         | 
| 154 | 
            +
              source:
         | 
| 155 | 
            +
                type: stdlib
         | 
| 156 | 
            +
            - name: tempfile
         | 
| 157 | 
            +
              version: '0'
         | 
| 158 | 
            +
              source:
         | 
| 159 | 
            +
                type: stdlib
         | 
| 160 | 
            +
            - name: thor
         | 
| 161 | 
            +
              version: '1.2'
         | 
| 162 | 
            +
              source:
         | 
| 163 | 
            +
                type: git
         | 
| 164 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 165 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 166 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 167 | 
            +
                repo_dir: gems
         | 
| 168 | 
            +
            - name: tsort
         | 
| 169 | 
            +
              version: '0'
         | 
| 170 | 
            +
              source:
         | 
| 171 | 
            +
                type: stdlib
         | 
| 172 | 
            +
            - name: uri
         | 
| 173 | 
            +
              version: '0'
         | 
| 174 | 
            +
              source:
         | 
| 175 | 
            +
                type: stdlib
         | 
| 176 | 
            +
            - name: webrick
         | 
| 177 | 
            +
              version: 1.9.1
         | 
| 178 | 
            +
              source:
         | 
| 179 | 
            +
                type: rubygems
         | 
| 180 | 
            +
            - name: yard
         | 
| 181 | 
            +
              version: '0.9'
         | 
| 182 | 
            +
              source:
         | 
| 183 | 
            +
                type: git
         | 
| 184 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 185 | 
            +
                revision: 71fb7ae83789ae150bdee1cd8a7cd3035b5d79e2
         | 
| 186 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 187 | 
            +
                repo_dir: gems
         | 
| 188 | 
            +
            gemfile_lock_path: Gemfile.lock
         | 
    
        data/rbs_collection.yaml
    ADDED
    
    | @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # Download sources
         | 
| 2 | 
            +
            sources:
         | 
| 3 | 
            +
              - type: git
         | 
| 4 | 
            +
                name: ruby/gem_rbs_collection
         | 
| 5 | 
            +
                remote: https://github.com/ruby/gem_rbs_collection.git
         | 
| 6 | 
            +
                revision: main
         | 
| 7 | 
            +
                repo_dir: gems
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # You can specify local directories as sources also.
         | 
| 10 | 
            +
            # - type: local
         | 
| 11 | 
            +
            #   path: path/to/your/local/repository
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            # A directory to install the downloaded RBSs
         | 
| 14 | 
            +
            path: .gem_rbs_collection
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            # gems:
         | 
| 17 | 
            +
            #   # If you want to avoid installing rbs files for gems, you can specify them here.
         | 
| 18 | 
            +
            #   - name: GEM_NAME
         | 
| 19 | 
            +
            #     ignore: true
         | 
    
        data/scanner.obj
    ADDED
    
    | Binary file |