curl_ffi 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
+ *.tmproj
5
+
@@ -934,7 +934,9 @@ module CurlFFI
934
934
  elsif option >= OPTION_FUNCTIONPOINT
935
935
  self.easy_setopt_pointer(handle, option, value)
936
936
  elsif option >= OPTION_OBJECTPOINT
937
- if value.respond_to?(:to_str)
937
+ if value.is_a?(Proc)
938
+ self.easy_setopt_pointer(handle, option, value)
939
+ elsif value.respond_to?(:to_str)
938
940
  self.easy_setopt_string(handle, option, value.to_str)
939
941
  else
940
942
  self.easy_setopt_pointer(handle, option, value)
@@ -3,33 +3,39 @@ require "curl_ffi"
3
3
  module CurlFFI
4
4
  class Easy
5
5
 
6
- attr_reader :pointer
6
+ attr_reader :pointer, :options
7
7
 
8
8
  def initialize
9
9
  @pointer = FFI::AutoPointer.new(CurlFFI.easy_init, CurlFFI.method(:easy_cleanup))
10
+ @options = {}
11
+ end
12
+
13
+ def reset_options
14
+ @options = {}
10
15
  end
11
16
 
12
17
  def reset
13
18
  CurlFFI.easy_reset(@pointer)
19
+ @options = {}
14
20
  end
15
21
 
16
22
  def initialize_copy(other)
17
23
  @pointer = FFI::AutoPointer.new(CurlFFI.easy_duphandle(other.pointer), CurlFFI.method(:easy_cleanup))
18
24
  end
19
25
 
20
- def escape(string)
21
- str_pointer = CurlFFI.easy_escape(@pointer, string, string.length)
22
- result = str_pointer.null? ? nil : str_pointer.read_string
26
+ def escape(_string)
27
+ str_pointer = CurlFFI.easy_escape(@pointer, _string, _string.length)
28
+ @escaped = str_pointer.null? ? nil : str_pointer.read_string.dup
23
29
  CurlFFI.free(str_pointer)
24
- result
30
+ return(@escaped)
25
31
  end
26
32
 
27
33
  def unescape(string)
28
34
  int_pointer = FFI::MemoryPointer.new(:int)
29
35
  str_pointer = CurlFFI.easy_unescape(@pointer, string, string.length, int_pointer)
30
- result = str_pointer.read_string(int_pointer.read_int)
36
+ @unescaped = str_pointer.read_string(int_pointer.read_int).dup
31
37
  CurlFFI.free(str_pointer)
32
- result
38
+ @unescaped
33
39
  end
34
40
 
35
41
  def error_string(error_code)
@@ -37,19 +43,16 @@ module CurlFFI
37
43
  end
38
44
 
39
45
  def perform
40
- check_code(CurlFFI.easy_perform(@pointer))
46
+ check_code(@_code = CurlFFI.easy_perform(@pointer))
41
47
  end
42
48
 
43
49
  def setopt(option, value)
44
- check_code(CurlFFI.easy_setopt(@pointer, option, value))
45
- end
50
+ @_option = option
51
+ @_value = value
46
52
 
47
- def setopt_handler(option, value)
48
- check_code(CurlFFI.easy_setopt_handler(@pointer, option, value))
49
- end
53
+ check_code(@_code = CurlFFI.easy_setopt(@pointer, @_option, @_value))
50
54
 
51
- def setopt_str_handler(option, value)
52
- check_code(CurlFFI.easy_setopt_handler_string(@pointer, option, value))
55
+ @options[@_option] = @_value
53
56
  end
54
57
 
55
58
  def getinfo(info)
@@ -68,11 +71,9 @@ module CurlFFI
68
71
 
69
72
  protected
70
73
  def check_code(result)
71
-
72
74
  if result != :OK
73
75
  raise "Error - #{result}" unless result.nil?
74
76
  end
75
- return result
76
77
  end
77
78
 
78
79
  def getinfo_double(info)
@@ -1,3 +1,3 @@
1
1
  module CurlFFI
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 6
9
- version: 0.0.6
8
+ - 8
9
+ version: 0.0.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Arthur Schreiber
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-08 00:00:00 -08:00
18
+ date: 2010-11-12 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency