fiddle 1.0.0.beta2 → 1.0.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
- SHA1:
3
- metadata.gz: 1c95f026d86d58a824f9925f5a57d8cebbf00e0a
4
- data.tar.gz: ec3332b0ef7aadc1e47bf5d563e61232410395f6
2
+ SHA256:
3
+ metadata.gz: 538e522b63f6cd2ec6ee72c138757966cc6e0aab44b381bb01bc464a740aa3a7
4
+ data.tar.gz: 3fc2e992e471105c4cadd9ee58234c047e7f8899d38ef8476b05a1640ef40284
5
5
  SHA512:
6
- metadata.gz: 7173bf1fa4282f82118ce7dbe0064b170dc0c21ba6d99fbb7e52e356a6ad9710ba2c47e2225e56a2b9052358a8a7763228f302fc3ffbff97555fc2eca9fe6115
7
- data.tar.gz: a271e17bc2a5626e05fff933991829d377333325269a3d4daec33fc70bb524d1d2c1ab36bf749b0e27e17aec5949313ec51aab7dc9c16215fed753d988415f58
6
+ metadata.gz: a1b2011849c78991b1129999a0469318a60414d3bd5db196cc82a21c86443a6f68cdbce1a3baef1043539e8395641c2ceac121fdf3e712bbc51ad9c2d4dcd12b
7
+ data.tar.gz: 4a8fc35a372b73f62496760f38f6f0291fe6cbd649c634299b289bf006e46ab585024c7721ef02136f9d2ad45aa1136b6072ab6d7adcbd1bb2081d606cc870fb
@@ -1,5 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
+ - 2.3.5
5
+ - 2.4.2
4
6
  - ruby-head
5
7
  before_install: gem install bundler
data/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # Fiddle
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/fiddle`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ [![Build Status](https://travis-ci.org/ruby/fiddle.svg?branch=master)](https://travis-ci.org/ruby/fiddle)
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ A libffi wrapper for Ruby.
6
+
7
+ Fiddle is an extension to translate a foreign function interface (FFI) with ruby.
8
+
9
+ It wraps [libffi](http://sourceware.org/libffi/), a popular C library which provides a portable interface that allows code written in one language to call code written in another language.
6
10
 
7
11
  ## Installation
8
12
 
@@ -22,7 +26,21 @@ Or install it yourself as:
22
26
 
23
27
  ## Usage
24
28
 
25
- TODO: Write usage instructions here
29
+ Here we will use Fiddle::Function to wrap [floor(3) from libm](http://linux.die.net/man/3/floor)
30
+
31
+ ```
32
+ require 'fiddle'
33
+
34
+ libm = Fiddle.dlopen('/lib/libm.so.6')
35
+
36
+ floor = Fiddle::Function.new(
37
+ libm['floor'],
38
+ [Fiddle::TYPE_DOUBLE],
39
+ Fiddle::TYPE_DOUBLE
40
+ )
41
+
42
+ puts floor.call(3.14159) #=> 3.0
43
+ ```
26
44
 
27
45
  ## Development
28
46
 
@@ -1,4 +1,4 @@
1
- ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz \
1
+ http://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz \
2
2
  md5:83b89587607e3eb65c70d361f13bab43 \
3
3
  sha512:980ca30a8d76f963fca722432b1fe5af77d7a4e4d2eac5144fbc5374d4c596609a293440573f4294207e1bdd9fda80ad1e1cafb2ffb543df5a275bc3bd546483 \
4
4
  #
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "fiddle"
4
- spec.version = '1.0.0.beta2'
4
+ spec.version = '1.0.0'
5
5
  spec.authors = ["Aaron Patterson", "SHIBATA Hiroshi"]
6
6
  spec.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
7
7
 
@@ -15,6 +15,8 @@ Gem::Specification.new do |spec|
15
15
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
16
16
  spec.require_paths = ["lib"]
17
17
 
18
+ spec.required_ruby_version = ">= 2.3.0"
19
+
18
20
  spec.add_development_dependency "bundler"
19
21
  spec.add_development_dependency "rake"
20
22
  spec.add_development_dependency "rake-compiler"
@@ -21,6 +21,7 @@ module Fiddle
21
21
  # Parses a C struct's members
22
22
  #
23
23
  # Example:
24
+ # require 'fiddle/import'
24
25
  #
25
26
  # include Fiddle::CParser
26
27
  # #=> Object
@@ -66,6 +67,7 @@ module Fiddle
66
67
  # be looked up.
67
68
  #
68
69
  # Example:
70
+ # require 'fiddle/import'
69
71
  #
70
72
  # include Fiddle::CParser
71
73
  # #=> Object
@@ -102,6 +104,7 @@ module Fiddle
102
104
  # value will be the C type to be looked up.
103
105
  #
104
106
  # Example:
107
+ # require 'fiddle/import'
105
108
  #
106
109
  # include Fiddle::CParser
107
110
  # #=> Object
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fiddle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-09-12 00:00:00.000000000 Z
12
+ date: 2017-12-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -107,15 +107,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 2.3.0
111
111
  required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ">"
113
+ - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 1.3.1
115
+ version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.6.13
118
+ rubygems_version: 2.7.3
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: A libffi wrapper for Ruby.