fiddle 1.0.0.beta1 → 1.0.3

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.
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ # frozen_string_literal: true
2
2
  module Fiddle
3
3
  # Adds Windows type aliases to the including class for use with
4
4
  # Fiddle::Importer.
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ # frozen_string_literal: true
2
2
  require 'fiddle'
3
3
 
4
4
  module Fiddle
@@ -13,10 +13,13 @@ module Fiddle
13
13
  [val].pack("i!").unpack("I!")[0]
14
14
  when TYPE_LONG
15
15
  [val].pack("l!").unpack("L!")[0]
16
- when TYPE_LONG_LONG
17
- [val].pack("q").unpack("Q")[0]
18
16
  else
19
- val
17
+ if defined?(TYPE_LONG_LONG) and
18
+ ty.abs == TYPE_LONG_LONG
19
+ [val].pack("q").unpack("Q")[0]
20
+ else
21
+ val
22
+ end
20
23
  end
21
24
  end
22
25
 
@@ -30,10 +33,13 @@ module Fiddle
30
33
  [val].pack("I!").unpack("i!")[0]
31
34
  when TYPE_LONG
32
35
  [val].pack("L!").unpack("l!")[0]
33
- when TYPE_LONG_LONG
34
- [val].pack("Q").unpack("q")[0]
35
36
  else
36
- val
37
+ if defined?(TYPE_LONG_LONG) and
38
+ ty.abs == TYPE_LONG_LONG
39
+ [val].pack("Q").unpack("q")[0]
40
+ else
41
+ val
42
+ end
37
43
  end
38
44
  end
39
45
 
@@ -75,10 +81,13 @@ module Fiddle
75
81
  case SIZEOF_VOIDP
76
82
  when SIZEOF_LONG
77
83
  return [arg].pack("p").unpack("l!")[0]
78
- when SIZEOF_LONG_LONG
79
- return [arg].pack("p").unpack("q")[0]
80
84
  else
81
- raise(RuntimeError, "sizeof(void*)?")
85
+ if defined?(SIZEOF_LONG_LONG) and
86
+ SIZEOF_VOIDP == SIZEOF_LONG_LONG
87
+ return [arg].pack("p").unpack("q")[0]
88
+ else
89
+ raise(RuntimeError, "sizeof(void*)?")
90
+ end
82
91
  end
83
92
  end
84
93
  when Float, Integer
@@ -0,0 +1,3 @@
1
+ module Fiddle
2
+ VERSION = "1.0.3"
3
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fiddle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta1
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
8
8
  - SHIBATA Hiroshi
9
9
  autorequire:
10
- bindir: exe
10
+ bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-05 00:00:00.000000000 Z
12
+ date: 2020-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -39,20 +39,6 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: minitest
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '4.0'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '4.0'
56
42
  - !ruby/object:Gem::Dependency
57
43
  name: rake-compiler
58
44
  requirement: !ruby/object:Gem::Requirement
@@ -72,21 +58,20 @@ email:
72
58
  - aaron@tenderlovemaking.com
73
59
  - hsbt@ruby-lang.org
74
60
  executables: []
75
- extensions: []
61
+ extensions:
62
+ - ext/fiddle/extconf.rb
76
63
  extra_rdoc_files: []
77
64
  files:
78
- - ".gitignore"
79
- - ".travis.yml"
80
- - Gemfile
81
65
  - LICENSE.txt
82
66
  - README.md
83
67
  - Rakefile
84
- - bin/console
85
- - bin/setup
68
+ - bin/downloader.rb
69
+ - bin/extlibs.rb
86
70
  - ext/fiddle/closure.c
87
71
  - ext/fiddle/closure.h
88
72
  - ext/fiddle/conversions.c
89
73
  - ext/fiddle/conversions.h
74
+ - ext/fiddle/depend
90
75
  - ext/fiddle/extconf.rb
91
76
  - ext/fiddle/extlibs
92
77
  - ext/fiddle/fiddle.c
@@ -94,6 +79,7 @@ files:
94
79
  - ext/fiddle/function.c
95
80
  - ext/fiddle/function.h
96
81
  - ext/fiddle/handle.c
82
+ - ext/fiddle/pinned.c
97
83
  - ext/fiddle/pointer.c
98
84
  - ext/fiddle/win32/fficonfig.h
99
85
  - ext/fiddle/win32/libffi-3.2.1-mswin.patch
@@ -109,10 +95,13 @@ files:
109
95
  - lib/fiddle/struct.rb
110
96
  - lib/fiddle/types.rb
111
97
  - lib/fiddle/value.rb
98
+ - lib/fiddle/version.rb
112
99
  homepage: https://github.com/ruby/fiddle
113
100
  licenses:
114
- - MIT
115
- metadata: {}
101
+ - Ruby
102
+ - BSD-2-Clause
103
+ metadata:
104
+ msys2_mingw_dependencies: libffi
116
105
  post_install_message:
117
106
  rdoc_options: []
118
107
  require_paths:
@@ -121,15 +110,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
121
110
  requirements:
122
111
  - - ">="
123
112
  - !ruby/object:Gem::Version
124
- version: '0'
113
+ version: 2.3.0
125
114
  required_rubygems_version: !ruby/object:Gem::Requirement
126
115
  requirements:
127
- - - ">"
116
+ - - ">="
128
117
  - !ruby/object:Gem::Version
129
- version: 1.3.1
118
+ version: '0'
130
119
  requirements: []
131
- rubyforge_project:
132
- rubygems_version: 2.6.11
120
+ rubygems_version: 3.2.0.rc.2
133
121
  signing_key:
134
122
  specification_version: 4
135
123
  summary: A libffi wrapper for Ruby.
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.dll
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.0
5
- before_install: gem install bundler -v 1.14.6
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in fiddle.gemspec
4
- gemspec
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "fiddle"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here