sane-ffi 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,9 @@ class Sane
2
2
  module API
3
3
  extend FFI::Library
4
4
 
5
- ffi_lib "sane"
5
+ lib_paths = Array(ENV["SANE_LIB"] || Dir["/{opt,usr}/{,local/}lib{,64}/libsane.{1.dylib,so.1*}"])
6
+ fallback_names = %w(libsane.1.dylib libsane.so.1 sane1.dll)
7
+ ffi_lib(lib_paths + fallback_names)
6
8
 
7
9
  enum :status, [:good, 0, :unsupported, :cancelled, :device_busy, :inval, :eof, :jammed, :no_docs, :cover_open, :io_error, :no_mem, :access_denied]
8
10
  enum :value_type, [:bool, 0, :int, :fixed, :string, :button, :group]
@@ -93,11 +93,11 @@ class Sane
93
93
  option_count.times.map do |i|
94
94
  begin
95
95
  self[i]
96
- rescue Error => e
97
- if e.status == :inval
96
+ rescue Error => exception
97
+ if exception.status == :inval
98
98
  nil # we can't read values of some options (i.e. buttons), ignore them
99
99
  else
100
- raise e
100
+ raise exception
101
101
  end
102
102
  end
103
103
  end
@@ -107,11 +107,6 @@ class Sane
107
107
  Hash[*option_names.zip(option_values).flatten]
108
108
  end
109
109
 
110
- def option_lookup(option_name)
111
- return option_name if (0..option_count).include?(option_name)
112
- option_descriptors.index { |option| option[:name] == option_name.to_s } or raise(ArgumentError, "Option not found: #{option_name}")
113
- end
114
-
115
110
  def describe(option)
116
111
  option_descriptors[option_lookup(option)]
117
112
  end
@@ -122,6 +117,11 @@ class Sane
122
117
 
123
118
  private
124
119
 
120
+ def option_lookup(option_name)
121
+ return option_name if (0..option_count).include?(option_name)
122
+ option_descriptors.index { |option| option[:name] == option_name.to_s } or raise(ArgumentError, "Option not found: #{option_name}")
123
+ end
124
+
125
125
  def ensure_closed!
126
126
  raise("Device is already open") if open?
127
127
  end
@@ -1,3 +1,3 @@
1
1
  class Sane
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sane-ffi
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - "Jakub Ku\xC5\xBAma"