lxi_rb 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99383b1cdd2261dbfded47620d15cd516d51556e21ccef91511cc0ca147648dd
4
- data.tar.gz: 2b8c3cfd54a3742c23a0f131a9a736a27e10ca3842576f7813ba75e1d968e073
3
+ metadata.gz: 7283b02860c4482c2eb260bb784a6f86d18852bc5df24dfdd2b0e0ec2b878393
4
+ data.tar.gz: 29ba50fe2386ad91be3f5f7a891a354b0234fa0ec988db2c242e28215c921444
5
5
  SHA512:
6
- metadata.gz: 0077ab297a5436e9e3444e24bf575351069ad7ca29c9b06b84f32b24c8d1a613358f4a2c9686974133d3fdfe846d58d5003edc94bfbccd2ed577acbc87a36ada
7
- data.tar.gz: dfc8b8ac3a3511057699192bd3ebb8123006fca60a134887bc6b0806df3ccb3badbc18d24d155add053be764e31dfaacd919d193bc55a35c440378cdaedd80c4
6
+ metadata.gz: e89829c886e7df3271eb647d3a70566eb3da5d56786c848a68feebafac5d8993cc46ad017c9d9c372e2dcda7a6f6e71eac2f202cef3aed53b1421668e76eaaf1
7
+ data.tar.gz: 2962ef69f5523a261794211eba4443cbe8ce503d38f3e9da69e62021380a4543c6cc7aeee09ced35cb8d1d8279205a2a9f065cedccc248640121cd2a8872b7c5
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.1.3
1
+ ruby 3.2.2
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@
4
4
  All notable changes to this project will be documented in this file.
5
5
 
6
6
  - - -
7
+ ## [v0.10.0](https://github.com/robcarruthers/lxi_rb/compare/v0.9.0..v0.10.0) - 2023-05-24
8
+ #### Refactoring
9
+ - **(libchecker)** Add linux lib names and library paths - ([f19c674](https://github.com/robcarruthers/lxi_rb/commit/f19c67461fc76c8fcfd20ab95b86978af6e109ba)) - [@robcarruthers](https://github.com/robcarruthers)
10
+ - **(netfinder)** Refine NetFinder search. Upgrade to ruby 3.2.2 +yjit - ([b26ef17](https://github.com/robcarruthers/lxi_rb/commit/b26ef179b6ba392bbfab9e1a33c239a933229cd6)) - [@robcarruthers](https://github.com/robcarruthers)
11
+
12
+ - - -
13
+
7
14
  ## [v0.9.0](https://github.com/robcarruthers/lxi_rb/compare/v0.8.1..v0.9.0) - 2023-05-22
8
15
  #### Features
9
16
  - **(net_finder)** Add NetFinder class - ([079cef5](https://github.com/robcarruthers/lxi_rb/commit/079cef504cb37bb238b50b8fc06edf9b441ffe95)) - [@robcarruthers](https://github.com/robcarruthers)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lxi_rb (0.8.1)
4
+ lxi_rb (0.9.0)
5
5
  ffi (~> 1.15)
6
6
 
7
7
  GEM
@@ -51,6 +51,7 @@ GEM
51
51
 
52
52
  PLATFORMS
53
53
  arm64-darwin-22
54
+ x86_64-linux
54
55
 
55
56
  DEPENDENCIES
56
57
  awesome_print (~> 1.8)
data/lib/lxi/constants.rb CHANGED
@@ -4,23 +4,7 @@ module Lxi
4
4
  LXI_OK = 0
5
5
  LXI_ERROR = -1
6
6
 
7
- LIBLXI_PATHS = %w[
8
- liblxi
9
- liblxi.so.1
10
- /home/linuxbrew/.linuxbrew/lib/liblxi.so.1
11
- /usr/local/lib/liblxi.dylib
12
- /usr/local/lib/liblxi.so
13
- /usr/lib/liblxi.dylib
14
- /usr/lib/liblxi.so
15
- ].freeze
7
+ LIBLXI_PATHS = %w[liblxi liblxi.so.1].freeze
16
8
 
17
- MDNS_PATHS = %w[
18
- mdns
19
- avahi-client
20
- libavahi-client
21
- avahi-client.so.1
22
- /home/linuxbrew/.linuxbrew/lib/avahi-client.so.1
23
- /usr/local/lib/libavahi-client.so
24
- /usr/lib/libavahi-client.so
25
- ].freeze
9
+ MDNS_LIBS = %w[mdns avahi-client].freeze
26
10
  end
data/lib/lxi/functions.rb CHANGED
@@ -5,7 +5,7 @@ module Lxi
5
5
  module FFIFunctions
6
6
  extend FFI::Library
7
7
 
8
- ffi_lib %w[liblxi liblxi.so.1 /home/linuxbrew/.linuxbrew/lib/liblxi.so.1]
8
+ ffi_lib LIBLXI_PATHS
9
9
  ffi_lib_flags :now, :global
10
10
 
11
11
  # Define liblxi structs
@@ -9,11 +9,28 @@ module Lxi
9
9
  Lxi.init_session
10
10
  end
11
11
 
12
- def search(timeout: 1000, type: :vxi11)
13
- if type == :mdns
14
- raise Error, 'mDNS library not found' unless check_mdns_lib?
12
+ def search(type = :vxi11, timeout: 1000)
13
+ if type == :vxi11
14
+ search_vxi11(timeout)
15
+ elsif type == :mdns
16
+ search_mdns(timeout)
17
+ else
18
+ raise Error, 'Invalid search type'
15
19
  end
20
+ end
21
+
22
+ private
23
+
24
+ def search_vxi11(timeout)
25
+ net_search(timeout, :vxi11)
26
+ end
16
27
 
28
+ def search_mdns(timeout)
29
+ raise Error, 'mDNS library not found' unless mdns_lib_found?
30
+ net_search(timeout, :mdns)
31
+ end
32
+
33
+ def net_search(timeout, type)
17
34
  @devices = []
18
35
  info = FFIFunctions::LxiInfo.new
19
36
  info[:broadcast] = broadcast_callback
@@ -27,17 +44,15 @@ module Lxi
27
44
  @devices
28
45
  end
29
46
 
30
- private
31
-
32
- def check_mdns_lib?
33
- Lxi::LibChecker.installed?(Lxi::MDNS_PATHS)
47
+ def mdns_lib_found?
48
+ Lxi::LibChecker.installed?(Lxi::MDNS_LIBS)
34
49
  end
35
50
 
36
51
  def broadcast_callback
37
- # FFI::Function.new(:void, %i[pointer pointer]) do |service, interface|
38
- # puts("Broadcast: #{service.read_string} on #{interface.read_string}\n\n")
39
- # @devices << { service: service.read_string, interface: interface.read_string }
40
- # end
52
+ FFI::Function.new(:void, %i[pointer pointer]) do |service, interface|
53
+ # puts("Broadcast: #{service.read_string} on #{interface.read_string}\n\n")
54
+ # @devices << { service: service.read_string, interface: interface.read_string }
55
+ end
41
56
  end
42
57
 
43
58
  def device_callback
data/lib/lxi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lxi
4
- VERSION = '0.9.0'
4
+ VERSION = '0.10.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lxi_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Carruthers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-22 00:00:00.000000000 Z
11
+ date: 2023-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.3.26
78
+ rubygems_version: 3.4.10
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: Ruby wrapper for the liblxi library.