libusb 0.6.4-x64-mingw32 → 0.7.0-x64-mingw32
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 +4 -4
 - data/.appveyor.yml +33 -0
 - data/.github/workflows/ci.yml +185 -0
 - data/.gitignore +1 -0
 - data/.travis.yml +12 -7
 - data/Gemfile +4 -1
 - data/History.md +38 -0
 - data/README.md +29 -4
 - data/Rakefile +41 -12
 - data/lib/libusb/bos.rb +85 -29
 - data/lib/libusb/call.rb +132 -16
 - data/lib/libusb/configuration.rb +3 -4
 - data/lib/libusb/constants.rb +4 -0
 - data/lib/libusb/context.rb +176 -35
 - data/lib/libusb/context_reference.rb +38 -0
 - data/lib/libusb/dependencies.rb +2 -2
 - data/lib/libusb/dev_handle.rb +34 -24
 - data/lib/libusb/device.rb +50 -8
 - data/lib/libusb/endpoint.rb +3 -2
 - data/lib/libusb/eventmachine.rb +8 -4
 - data/lib/libusb/gem_helper.rb +9 -6
 - data/lib/libusb/libusb_recipe.rb +2 -3
 - data/lib/libusb/ss_companion.rb +9 -6
 - data/lib/libusb/transfer.rb +10 -6
 - data/lib/libusb/version_gem.rb +1 -1
 - data/lib/libusb-1.0.dll +0 -0
 - data/lib/libusb.rb +106 -18
 - data/libusb.gemspec +1 -5
 - data/test/test_libusb_bos.rb +22 -0
 - data/test/test_libusb_bulk_stream_transfer.rb +23 -12
 - data/test/test_libusb_context.rb +47 -0
 - data/test/test_libusb_descriptors.rb +44 -11
 - data/test/test_libusb_gc.rb +15 -0
 - data/test/test_libusb_hotplug.rb +3 -1
 - data/test/test_libusb_iso_transfer.rb +6 -0
 - data/test/test_libusb_mass_storage.rb +6 -6
 - metadata +7 -62
 - data/appveyor.yml +0 -36
 
    
        data/test/test_libusb_context.rb
    CHANGED
    
    | 
         @@ -38,4 +38,51 @@ class TestLibusbContext < Minitest::Test 
     | 
|
| 
       38 
38 
     | 
    
         
             
                @c.debug = 4
         
     | 
| 
       39 
39 
     | 
    
         
             
                @c.debug = 0
         
     | 
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def test_left_references
         
     | 
| 
      
 43 
     | 
    
         
            +
                @test_devs = @c.devices
         
     | 
| 
      
 44 
     | 
    
         
            +
                assert_raises(LIBUSB::RemainingReferencesError) do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  @c.exit
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
                @c = nil
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              def test_double_exit
         
     | 
| 
      
 51 
     | 
    
         
            +
                @c.exit
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              def test_log_callback
         
     | 
| 
      
 55 
     | 
    
         
            +
                skip "only supported on Linux" unless RUBY_PLATFORM=~/linux/
         
     | 
| 
      
 56 
     | 
    
         
            +
                skip "libusb version older than 1.0.27" if Gem::Version.new(LIBUSB.version) < Gem::Version.new("1.0.27")
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                LIBUSB.set_options OPTION_LOG_CB: [nil], OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_NONE
         
     | 
| 
      
 59 
     | 
    
         
            +
                begin
         
     | 
| 
      
 60 
     | 
    
         
            +
                  called = Hash.new { |h, k| h[k] = [] }
         
     | 
| 
      
 61 
     | 
    
         
            +
                  LIBUSB.set_options OPTION_LOG_CB: proc{|*a| called[:global] << a }, OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_DEBUG
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  c = LIBUSB::Context.new OPTION_LOG_CB: proc{|*a| called[:ctx1] << a }, OPTION_NO_DEVICE_DISCOVERY: nil
         
     | 
| 
      
 64 
     | 
    
         
            +
                  c.devices
         
     | 
| 
      
 65 
     | 
    
         
            +
                  c.set_log_cb(LIBUSB::LOG_CB_CONTEXT){|*a| called[:ctx2] << a }
         
     | 
| 
      
 66 
     | 
    
         
            +
                  c.devices
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  #pp called
         
     | 
| 
      
 69 
     | 
    
         
            +
                  assert_nil called[:global][0][0]
         
     | 
| 
      
 70 
     | 
    
         
            +
                  assert_equal :LOG_LEVEL_DEBUG, called[:global][0][1], called[:global][0][2]
         
     | 
| 
      
 71 
     | 
    
         
            +
                  assert_match(/libusb_init_context/, called[:global].join)
         
     | 
| 
      
 72 
     | 
    
         
            +
                  assert_match(/no device discovery/, called[:global].join)
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                  assert_operator called[:ctx1].size, :>, called[:ctx2].size
         
     | 
| 
      
 75 
     | 
    
         
            +
                  assert_equal c, called[:ctx1][-1][0]
         
     | 
| 
      
 76 
     | 
    
         
            +
                  assert_equal :LOG_LEVEL_DEBUG, called[:ctx1][-1][1]
         
     | 
| 
      
 77 
     | 
    
         
            +
                  assert_match(/libusb_get_device_list/, called[:ctx1][-1][2])
         
     | 
| 
      
 78 
     | 
    
         
            +
                  assert_match(/no device discovery/, called[:ctx1].join)
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                  assert_equal c, called[:ctx2][-1][0]
         
     | 
| 
      
 81 
     | 
    
         
            +
                  assert_equal :LOG_LEVEL_DEBUG, called[:ctx2][-1][1]
         
     | 
| 
      
 82 
     | 
    
         
            +
                  assert_match(/libusb_get_device_list/, called[:ctx2][-1][2])
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 85 
     | 
    
         
            +
                  LIBUSB.set_options OPTION_LOG_CB: [nil], OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_NONE
         
     | 
| 
      
 86 
     | 
    
         
            +
                end
         
     | 
| 
      
 87 
     | 
    
         
            +
              end
         
     | 
| 
       41 
88 
     | 
    
         
             
            end
         
     | 
| 
         @@ -119,7 +119,7 @@ class TestLibusbDescriptors < Minitest::Test 
     | 
|
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
                usb.devices.each do |dev|
         
     | 
| 
       121 
121 
     | 
    
         
             
                  dev.endpoints.each do |ep|
         
     | 
| 
       122 
     | 
    
         
            -
                    if dev.device_speed 
     | 
| 
      
 122 
     | 
    
         
            +
                    if [:SPEED_SUPER, :SPEED_SUPER_PLUS].include?(dev.device_speed)
         
     | 
| 
       123 
123 
     | 
    
         
             
                      ss = ep.ss_companion
         
     | 
| 
       124 
124 
     | 
    
         
             
                      assert_match(/SsCompanion/, ss.inspect, "SsCompanion#inspect should work")
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
         @@ -172,14 +172,19 @@ class TestLibusbDescriptors < Minitest::Test 
     | 
|
| 
       172 
172 
     | 
    
         
             
              def test_device_filter_hubs
         
     | 
| 
       173 
173 
     | 
    
         
             
                devs1 = []
         
     | 
| 
       174 
174 
     | 
    
         
             
                usb.devices.each do |dev|
         
     | 
| 
       175 
     | 
    
         
            -
                  dev. 
     | 
| 
       176 
     | 
    
         
            -
                     
     | 
| 
       177 
     | 
    
         
            -
                       
     | 
| 
      
 175 
     | 
    
         
            +
                  if dev.bDeviceClass==CLASS_PER_INTERFACE
         
     | 
| 
      
 176 
     | 
    
         
            +
                    dev.settings.each do |if_desc|
         
     | 
| 
      
 177 
     | 
    
         
            +
                      if if_desc.bInterfaceClass==CLASS_HUB
         
     | 
| 
      
 178 
     | 
    
         
            +
                        devs1 << dev
         
     | 
| 
      
 179 
     | 
    
         
            +
                      end
         
     | 
| 
       178 
180 
     | 
    
         
             
                    end
         
     | 
| 
      
 181 
     | 
    
         
            +
                  else
         
     | 
| 
      
 182 
     | 
    
         
            +
                    devs1 << dev if dev.bDeviceClass == CLASS_HUB
         
     | 
| 
       179 
183 
     | 
    
         
             
                  end
         
     | 
| 
       180 
184 
     | 
    
         
             
                end
         
     | 
| 
       181 
185 
     | 
    
         | 
| 
       182 
186 
     | 
    
         
             
                devs2 = usb.devices( bClass: CLASS_HUB )
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
       183 
188 
     | 
    
         
             
                assert_equal devs1.sort, devs2.sort, "devices and devices with filter should deliver the same device"
         
     | 
| 
       184 
189 
     | 
    
         
             
              end
         
     | 
| 
       185 
190 
     | 
    
         | 
| 
         @@ -189,11 +194,11 @@ class TestLibusbDescriptors < Minitest::Test 
     | 
|
| 
       189 
194 
     | 
    
         
             
                  if ep
         
     | 
| 
       190 
195 
     | 
    
         
             
                    assert_operator dev.max_packet_size(ep), :>, 0, "#{dev.inspect} should have a usable packet size"
         
     | 
| 
       191 
196 
     | 
    
         
             
                    assert_operator dev.max_packet_size(ep.bEndpointAddress), :>, 0, "#{dev.inspect} should have a usable packet size"
         
     | 
| 
       192 
     | 
    
         
            -
                    assert_operator dev.max_iso_packet_size(ep),  
     | 
| 
       193 
     | 
    
         
            -
                    assert_operator dev.max_iso_packet_size(ep.bEndpointAddress),  
     | 
| 
      
 197 
     | 
    
         
            +
                    assert_operator dev.max_iso_packet_size(ep), :>=, 0, "#{dev.inspect} should have a usable iso packet size"
         
     | 
| 
      
 198 
     | 
    
         
            +
                    assert_operator dev.max_iso_packet_size(ep.bEndpointAddress), :>=, 0, "#{dev.inspect} should have a usable iso packet size"
         
     | 
| 
       194 
199 
     | 
    
         
             
                    assert_operator dev.bus_number, :>=, 0, "#{dev.inspect} should have a bus_number"
         
     | 
| 
       195 
200 
     | 
    
         
             
                    assert_operator dev.device_address, :>=, 0, "#{dev.inspect} should have a device_address"
         
     | 
| 
       196 
     | 
    
         
            -
                    assert_operator([:SPEED_UNKNOWN, :SPEED_LOW, :SPEED_FULL, :SPEED_HIGH, :SPEED_SUPER], :include?, dev.device_speed, "#{dev.inspect} should have a device_speed")
         
     | 
| 
      
 201 
     | 
    
         
            +
                    assert_operator([:SPEED_UNKNOWN, :SPEED_LOW, :SPEED_FULL, :SPEED_HIGH, :SPEED_SUPER, :SPEED_SUPER_PLUS], :include?, dev.device_speed, "#{dev.inspect} should have a device_speed")
         
     | 
| 
       197 
202 
     | 
    
         
             
                    path = dev.port_numbers
         
     | 
| 
       198 
203 
     | 
    
         
             
                    assert_kind_of Array, path, "#{dev.inspect} should have port_numbers"
         
     | 
| 
       199 
204 
     | 
    
         
             
                    path = dev.port_path
         
     | 
| 
         @@ -201,12 +206,40 @@ class TestLibusbDescriptors < Minitest::Test 
     | 
|
| 
       201 
206 
     | 
    
         
             
                    path.each do |port|
         
     | 
| 
       202 
207 
     | 
    
         
             
                      assert_operator port, :>, 0, "#{dev.inspect} should have proper port_path entries"
         
     | 
| 
       203 
208 
     | 
    
         
             
                    end
         
     | 
| 
       204 
     | 
    
         
            -
                     
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
                      assert_equal path[- 
     | 
| 
      
 209 
     | 
    
         
            +
                    if path.empty?
         
     | 
| 
      
 210 
     | 
    
         
            +
                      assert_nil dev.port_number
         
     | 
| 
      
 211 
     | 
    
         
            +
                    else
         
     | 
| 
      
 212 
     | 
    
         
            +
                      assert_equal path[-1], dev.port_number, "#{dev.inspect} should have a port number out of the port_path"
         
     | 
| 
      
 213 
     | 
    
         
            +
                      if parent=dev.parent
         
     | 
| 
      
 214 
     | 
    
         
            +
                        assert_kind_of Device, parent, "#{dev.inspect} should have a parent"
         
     | 
| 
      
 215 
     | 
    
         
            +
                        assert_equal path[-2], parent.port_number, "#{dev.inspect} should have a parent port number out of the port_path" if parent.port_number
         
     | 
| 
      
 216 
     | 
    
         
            +
                      end
         
     | 
| 
       208 
217 
     | 
    
         
             
                    end
         
     | 
| 
       209 
218 
     | 
    
         
             
                  end
         
     | 
| 
       210 
219 
     | 
    
         
             
                end
         
     | 
| 
       211 
220 
     | 
    
         
             
              end
         
     | 
| 
      
 221 
     | 
    
         
            +
             
     | 
| 
      
 222 
     | 
    
         
            +
              def test_wrap_sys_device
         
     | 
| 
      
 223 
     | 
    
         
            +
                skip unless RUBY_PLATFORM =~ /linux/
         
     | 
| 
      
 224 
     | 
    
         
            +
                d = usb.devices[0]
         
     | 
| 
      
 225 
     | 
    
         
            +
                File.open(format("/dev/bus/usb/%03d/%03d", d.bus_number, d.device_address), "w+") do |io|
         
     | 
| 
      
 226 
     | 
    
         
            +
                  devh = usb.wrap_sys_device(io)
         
     | 
| 
      
 227 
     | 
    
         
            +
                  devh.kernel_driver_active?(0)
         
     | 
| 
      
 228 
     | 
    
         
            +
                  devh.close
         
     | 
| 
      
 229 
     | 
    
         
            +
             
     | 
| 
      
 230 
     | 
    
         
            +
                  usb.wrap_sys_device(io) do |devh|
         
     | 
| 
      
 231 
     | 
    
         
            +
                    devh.kernel_driver_active?(0)
         
     | 
| 
      
 232 
     | 
    
         
            +
                  end
         
     | 
| 
      
 233 
     | 
    
         
            +
                end
         
     | 
| 
      
 234 
     | 
    
         
            +
              end
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
              def test_wrap_sys_device_failure
         
     | 
| 
      
 237 
     | 
    
         
            +
                skip unless RUBY_PLATFORM =~ /linux/
         
     | 
| 
      
 238 
     | 
    
         
            +
                d = usb.devices[0]
         
     | 
| 
      
 239 
     | 
    
         
            +
                assert_raises(LIBUSB::ERROR_OTHER) do
         
     | 
| 
      
 240 
     | 
    
         
            +
                  File.open(format("/dev/bus/usb/%03d/%03d", d.bus_number, d.device_address), "r") do |io|
         
     | 
| 
      
 241 
     | 
    
         
            +
                    usb.wrap_sys_device(io).kernel_driver_active?(0)
         
     | 
| 
      
 242 
     | 
    
         
            +
                  end
         
     | 
| 
      
 243 
     | 
    
         
            +
                end
         
     | 
| 
      
 244 
     | 
    
         
            +
              end
         
     | 
| 
       212 
245 
     | 
    
         
             
            end
         
     | 
    
        data/test/test_libusb_gc.rb
    CHANGED
    
    | 
         @@ -34,4 +34,19 @@ class TestLibusbGc < Minitest::Test 
     | 
|
| 
       34 
34 
     | 
    
         
             
                GC.start
         
     | 
| 
       35 
35 
     | 
    
         
             
                assert_equal ps, ep.wMaxPacketSize, "GC should not free EndpointDescriptor"
         
     | 
| 
       36 
36 
     | 
    
         
             
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              def test_log_cb
         
     | 
| 
      
 39 
     | 
    
         
            +
                LIBUSB.set_options OPTION_LOG_CB: proc{}, OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_DEBUG
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                c = LIBUSB::Context.new OPTION_LOG_CB: proc{}, OPTION_NO_DEVICE_DISCOVERY: nil
         
     | 
| 
      
 42 
     | 
    
         
            +
                GC.start
         
     | 
| 
      
 43 
     | 
    
         
            +
                c.devices
         
     | 
| 
      
 44 
     | 
    
         
            +
                c.set_log_cb(LIBUSB::LOG_CB_CONTEXT){}
         
     | 
| 
      
 45 
     | 
    
         
            +
                c.devices
         
     | 
| 
      
 46 
     | 
    
         
            +
                GC.start
         
     | 
| 
      
 47 
     | 
    
         
            +
                c.devices
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              ensure
         
     | 
| 
      
 50 
     | 
    
         
            +
                LIBUSB.set_options OPTION_LOG_CB: [nil], OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_NONE
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
       37 
52 
     | 
    
         
             
            end
         
     | 
    
        data/test/test_libusb_hotplug.rb
    CHANGED
    
    
| 
         @@ -47,4 +47,10 @@ class TestLibusbIsoTransfer < Minitest::Test 
     | 
|
| 
       47 
47 
     | 
    
         
             
                  tr.submit!
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
       49 
49 
     | 
    
         
             
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              def test_max_alt_packet_size
         
     | 
| 
      
 52 
     | 
    
         
            +
                d = Context.new.devices[0]
         
     | 
| 
      
 53 
     | 
    
         
            +
                size = d.max_alt_packet_size d.interfaces[0], d.settings[0], d.endpoints[0]
         
     | 
| 
      
 54 
     | 
    
         
            +
                assert_operator 0, :<=, size
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
       50 
56 
     | 
    
         
             
            end
         
     | 
| 
         @@ -61,7 +61,7 @@ class TestLibusbMassStorage < Minitest::Test 
     | 
|
| 
       61 
61 
     | 
    
         
             
                dev.close if dev
         
     | 
| 
       62 
62 
     | 
    
         
             
              end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
              def do_transfer(method, args)
         
     | 
| 
      
 64 
     | 
    
         
            +
              def do_transfer(method, **args)
         
     | 
| 
       65 
65 
     | 
    
         
             
                if @asynchron
         
     | 
| 
       66 
66 
     | 
    
         
             
                  stop = false
         
     | 
| 
       67 
67 
     | 
    
         
             
                  transfer = dev.send(method, args) do |tr|
         
     | 
| 
         @@ -78,14 +78,14 @@ class TestLibusbMassStorage < Minitest::Test 
     | 
|
| 
       78 
78 
     | 
    
         
             
                  end
         
     | 
| 
       79 
79 
     | 
    
         
             
                  transfer.result
         
     | 
| 
       80 
80 
     | 
    
         
             
                else
         
     | 
| 
       81 
     | 
    
         
            -
                  dev.send(method, args)
         
     | 
| 
      
 81 
     | 
    
         
            +
                  dev.send(method, **args)
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
       84 
     | 
    
         
            -
              def control_transfer(args)
         
     | 
| 
       85 
     | 
    
         
            -
                do_transfer(:control_transfer, args)
         
     | 
| 
      
 84 
     | 
    
         
            +
              def control_transfer(**args)
         
     | 
| 
      
 85 
     | 
    
         
            +
                do_transfer(:control_transfer, **args)
         
     | 
| 
       86 
86 
     | 
    
         
             
              end
         
     | 
| 
       87 
     | 
    
         
            -
              def bulk_transfer(args)
         
     | 
| 
       88 
     | 
    
         
            -
                do_transfer(:bulk_transfer, args)
         
     | 
| 
      
 87 
     | 
    
         
            +
              def bulk_transfer(**args)
         
     | 
| 
      
 88 
     | 
    
         
            +
                do_transfer(:bulk_transfer, **args)
         
     | 
| 
       89 
89 
     | 
    
         
             
              end
         
     | 
| 
       90 
90 
     | 
    
         | 
| 
       91 
91 
     | 
    
         
             
              def send_mass_storage_command(cdb, data_length, direction=ENDPOINT_IN)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: libusb
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.7.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x64-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Lars Kanis
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-04-18 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: ffi
         
     | 
| 
         @@ -24,62 +24,6 @@ dependencies: 
     | 
|
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
26 
     | 
    
         
             
                    version: '1.0'
         
     | 
| 
       27 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name: rake-compiler
         
     | 
| 
       29 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
     | 
    
         
            -
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       32 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '1.0'
         
     | 
| 
       34 
     | 
    
         
            -
              type: :development
         
     | 
| 
       35 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
     | 
    
         
            -
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       39 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: '1.0'
         
     | 
| 
       41 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name: rake-compiler-dock
         
     | 
| 
       43 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
     | 
    
         
            -
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       46 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: '0.2'
         
     | 
| 
       48 
     | 
    
         
            -
              type: :development
         
     | 
| 
       49 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       50 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
     | 
    
         
            -
                requirements:
         
     | 
| 
       52 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       53 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
     | 
    
         
            -
                    version: '0.2'
         
     | 
| 
       55 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
     | 
    
         
            -
              name: bundler
         
     | 
| 
       57 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
     | 
    
         
            -
                requirements:
         
     | 
| 
       59 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       60 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: '1.0'
         
     | 
| 
       62 
     | 
    
         
            -
              type: :development
         
     | 
| 
       63 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       64 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
     | 
    
         
            -
                requirements:
         
     | 
| 
       66 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       67 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: '1.0'
         
     | 
| 
       69 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
     | 
    
         
            -
              name: yard
         
     | 
| 
       71 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
     | 
    
         
            -
                requirements:
         
     | 
| 
       73 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       74 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
     | 
    
         
            -
                    version: '0.6'
         
     | 
| 
       76 
     | 
    
         
            -
              type: :development
         
     | 
| 
       77 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       78 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
     | 
    
         
            -
                requirements:
         
     | 
| 
       80 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       81 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
     | 
    
         
            -
                    version: '0.6'
         
     | 
| 
       83 
27 
     | 
    
         
             
            description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
         
     | 
| 
       84 
28 
     | 
    
         
             
              USB devices
         
     | 
| 
       85 
29 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -88,6 +32,8 @@ executables: [] 
     | 
|
| 
       88 
32 
     | 
    
         
             
            extensions: []
         
     | 
| 
       89 
33 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       90 
34 
     | 
    
         
             
            files:
         
     | 
| 
      
 35 
     | 
    
         
            +
            - ".appveyor.yml"
         
     | 
| 
      
 36 
     | 
    
         
            +
            - ".github/workflows/ci.yml"
         
     | 
| 
       91 
37 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       92 
38 
     | 
    
         
             
            - ".travis.yml"
         
     | 
| 
       93 
39 
     | 
    
         
             
            - ".yardopts"
         
     | 
| 
         @@ -96,7 +42,6 @@ files: 
     | 
|
| 
       96 
42 
     | 
    
         
             
            - History.md
         
     | 
| 
       97 
43 
     | 
    
         
             
            - README.md
         
     | 
| 
       98 
44 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       99 
     | 
    
         
            -
            - appveyor.yml
         
     | 
| 
       100 
45 
     | 
    
         
             
            - lib/libusb-1.0.dll
         
     | 
| 
       101 
46 
     | 
    
         
             
            - lib/libusb.rb
         
     | 
| 
       102 
47 
     | 
    
         
             
            - lib/libusb/bos.rb
         
     | 
| 
         @@ -105,6 +50,7 @@ files: 
     | 
|
| 
       105 
50 
     | 
    
         
             
            - lib/libusb/configuration.rb
         
     | 
| 
       106 
51 
     | 
    
         
             
            - lib/libusb/constants.rb
         
     | 
| 
       107 
52 
     | 
    
         
             
            - lib/libusb/context.rb
         
     | 
| 
      
 53 
     | 
    
         
            +
            - lib/libusb/context_reference.rb
         
     | 
| 
       108 
54 
     | 
    
         
             
            - lib/libusb/dependencies.rb
         
     | 
| 
       109 
55 
     | 
    
         
             
            - lib/libusb/dev_handle.rb
         
     | 
| 
       110 
56 
     | 
    
         
             
            - lib/libusb/device.rb
         
     | 
| 
         @@ -152,15 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       152 
98 
     | 
    
         
             
              requirements:
         
     | 
| 
       153 
99 
     | 
    
         
             
              - - ">="
         
     | 
| 
       154 
100 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       155 
     | 
    
         
            -
                  version:  
     | 
| 
      
 101 
     | 
    
         
            +
                  version: 2.5.0
         
     | 
| 
       156 
102 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       157 
103 
     | 
    
         
             
              requirements:
         
     | 
| 
       158 
104 
     | 
    
         
             
              - - ">="
         
     | 
| 
       159 
105 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       160 
106 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       161 
107 
     | 
    
         
             
            requirements: []
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
            rubygems_version: 2.7.3
         
     | 
| 
      
 108 
     | 
    
         
            +
            rubygems_version: 3.3.26
         
     | 
| 
       164 
109 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       165 
110 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       166 
111 
     | 
    
         
             
            summary: Access USB devices from Ruby via libusb-1.0
         
     | 
    
        data/appveyor.yml
    DELETED
    
    | 
         @@ -1,36 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            init:
         
     | 
| 
       2 
     | 
    
         
            -
              - SET PATH=C:/Ruby%ruby_version%/bin;%PATH%
         
     | 
| 
       3 
     | 
    
         
            -
              - SET RAKEOPT=-rdevkit
         
     | 
| 
       4 
     | 
    
         
            -
            install:
         
     | 
| 
       5 
     | 
    
         
            -
              - ps: |
         
     | 
| 
       6 
     | 
    
         
            -
                  if ($env:ruby_version -like "*head*") {
         
     | 
| 
       7 
     | 
    
         
            -
                    $(new-object net.webclient).DownloadFile("https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-$env:ruby_version.exe", "$pwd/ruby-setup.exe")
         
     | 
| 
       8 
     | 
    
         
            -
                    cmd /c ruby-setup.exe /verysilent /dir=C:/Ruby$env:ruby_version
         
     | 
| 
       9 
     | 
    
         
            -
                  }
         
     | 
| 
       10 
     | 
    
         
            -
              - ruby --version
         
     | 
| 
       11 
     | 
    
         
            -
              - gem --version
         
     | 
| 
       12 
     | 
    
         
            -
              - ps: |
         
     | 
| 
       13 
     | 
    
         
            -
                    if ($env:BROKEN_SSL -eq "true") {
         
     | 
| 
       14 
     | 
    
         
            -
                      $(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt', "$env:TMP/ca-bundle.crt")
         
     | 
| 
       15 
     | 
    
         
            -
                      $env:SSL_CERT_FILE = "$env:TMP/ca-bundle.crt"
         
     | 
| 
       16 
     | 
    
         
            -
                      Write-Host "Using SSL CA list $env:SSL_CERT_FILE" -foreground Green
         
     | 
| 
       17 
     | 
    
         
            -
                    }
         
     | 
| 
       18 
     | 
    
         
            -
              - gem install bundler --conservative
         
     | 
| 
       19 
     | 
    
         
            -
              - bundle config force_ruby_platform true
         
     | 
| 
       20 
     | 
    
         
            -
              - bundle install
         
     | 
| 
       21 
     | 
    
         
            -
            build_script:
         
     | 
| 
       22 
     | 
    
         
            -
              - bundle exec rake compile
         
     | 
| 
       23 
     | 
    
         
            -
            test_script:
         
     | 
| 
       24 
     | 
    
         
            -
              - bundle exec rake travis
         
     | 
| 
       25 
     | 
    
         
            -
            environment:
         
     | 
| 
       26 
     | 
    
         
            -
              matrix:
         
     | 
| 
       27 
     | 
    
         
            -
                - ruby_version: "head-x64"
         
     | 
| 
       28 
     | 
    
         
            -
                - ruby_version: "200"
         
     | 
| 
       29 
     | 
    
         
            -
                  BROKEN_SSL: true
         
     | 
| 
       30 
     | 
    
         
            -
                - ruby_version: "21-x64"
         
     | 
| 
       31 
     | 
    
         
            -
                  BROKEN_SSL: true
         
     | 
| 
       32 
     | 
    
         
            -
                - ruby_version: "22"
         
     | 
| 
       33 
     | 
    
         
            -
                  BROKEN_SSL: true
         
     | 
| 
       34 
     | 
    
         
            -
                - ruby_version: "23-x64"
         
     | 
| 
       35 
     | 
    
         
            -
                  BROKEN_SSL: true
         
     | 
| 
       36 
     | 
    
         
            -
                - ruby_version: "24"
         
     |