phidgets 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e3fd7bef7f559dc77c93de80a317dd43f97da07f
4
+ data.tar.gz: 8a41b2c09ac0b90067b7f76d20aab7b2afb5bb1c
5
+ SHA512:
6
+ metadata.gz: 4b4500f256c1e668defc86a8f26c4eabb06758516f6bd3041b490ae5d1e6d13b64d7f6d75bde00f4139a0e5786eb1129171e1fa98cb67409d2669cade1dfaf49
7
+ data.tar.gz: 3233b9dcb43665bdb02e0d8323c226de86965dd7a11484e19fa5c9e09162ccbb6bf187afe235025083e0d830d21af91322565d401914adc695d5c8cc0631998f
@@ -1,3 +1,6 @@
1
+ == 0.1.3 2015-11-10
2
+ * Fix undefined symbol error in ruby version 2.2
3
+
1
4
  == 0.1.2 2013-10-22
2
5
  * Rearranged the c code to make it easier for yard to parse and extract documentation
3
6
 
@@ -8,6 +8,10 @@ have_framework('Phidget21') unless RUBY_VERSION < '1.9.0'
8
8
  have_library('phidget21')
9
9
  dir_config("phidgets")
10
10
 
11
+ have_header('ruby/thread.h')
12
+ have_func('rb_thread_blocking_region')
13
+ have_func('rb_thread_call_without_gvl')
14
+
11
15
  $CFLAGS += ' -DPH_CALLBACK' unless RUBY_VERSION < '1.9.0'
12
16
 
13
17
  create_makefile("phidgets")
@@ -1,6 +1,9 @@
1
1
 
2
2
  #include "phidgets.h"
3
3
 
4
+ #if defined(HAVE_RUBY_THREAD_H)
5
+ #include <ruby/thread.h>
6
+ #endif
4
7
 
5
8
  VALUE ph_errors[PHIDGET_ERROR_CODE_COUNT+1];
6
9
 
@@ -14,7 +17,6 @@ VALUE ph_log(VALUE self, VALUE level, VALUE msg_id, VALUE message);
14
17
  void Init_phidgets() {
15
18
  VALUE ph_module = rb_define_module("Phidgets");
16
19
  VALUE ph_error;
17
- VALUE ph_common;
18
20
 
19
21
  rb_define_const(ph_module, "NOTATTACHED", INT2FIX(PHIDGET_NOTATTACHED));
20
22
  rb_define_const(ph_module, "ATTACHED", INT2FIX(PHIDGET_ATTACHED));
@@ -249,19 +251,23 @@ VALUE ph_log(VALUE self, VALUE level, VALUE msg_id, VALUE message) {
249
251
  #ifdef PH_CALLBACK
250
252
  void ph_callback_thread(ph_callback_data_t *callback_data) {
251
253
  while(! callback_data->exit) {
254
+ #if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL)
255
+ rb_thread_call_without_gvl(wait_for_callback, (void *)callback_data, cancel_wait_for_callback, (void *)callback_data);
256
+ #else
252
257
  rb_thread_blocking_region(wait_for_callback, (void *)callback_data, cancel_wait_for_callback, (void *)callback_data);
258
+ #endif
253
259
  if(TYPE(callback_data->callback) != T_NIL) rb_funcall(callback_data->callback, rb_intern("call"), 1, callback_data->phidget);
254
260
  callback_data->called = false;
255
261
  };
256
262
  }
257
263
 
258
- VALUE wait_for_callback(void *arg) {
264
+ ph_callback_return_t wait_for_callback(void *arg) {
259
265
  ph_callback_data_t *callback_data = (ph_callback_data_t *)arg;
260
266
  while(! callback_data->exit) {
261
267
  usleep(PH_CALLBACK_POLLING_INTERVAL);
262
- if(callback_data->called) return Qnil;
268
+ if(callback_data->called) return (ph_callback_return_t)Qnil;
263
269
  };
264
- return Qnil;
270
+ return (ph_callback_return_t)Qnil;
265
271
  }
266
272
 
267
273
  void cancel_wait_for_callback(void *arg) {
@@ -24,7 +24,12 @@ typedef struct ph_callback_data {
24
24
  } ph_callback_data_t;
25
25
 
26
26
  void ph_callback_thread(ph_callback_data_t *callback_data);
27
- VALUE wait_for_callback(void *arg);
27
+ #if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL)
28
+ typedef void * ph_callback_return_t;
29
+ #else
30
+ typedef VALUE ph_callback_return_t;
31
+ #endif
32
+ ph_callback_return_t wait_for_callback(void *arg);
28
33
  void cancel_wait_for_callback(void *arg);
29
34
  #endif
30
35
 
@@ -28,5 +28,5 @@ require File.dirname(__FILE__) + '/phidgets/text_led.rb'
28
28
  require File.dirname(__FILE__) + '/phidgets/weight_sensor.rb'
29
29
 
30
30
  module Phidgets
31
- VERSION = '0.1.2'
31
+ VERSION = '0.1.3'
32
32
  end
@@ -1,8 +1,12 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
4
+
5
+ require 'phidgets'
2
6
 
3
7
  Gem::Specification.new do |s|
4
8
  s.name = "phidgets"
5
- s.version = "0.1.2"
9
+ s.version = Phidgets::VERSION
6
10
  s.authors = ["Craig DeHaan"]
7
11
  s.email = ["cdehaan2@cfl.rr.com"]
8
12
  s.homepage = "https://github.com/csdehaan/phidgets"
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phidgets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Craig DeHaan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-22 00:00:00.000000000 Z
11
+ date: 2015-11-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rdoc
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.10'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.10'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake-compiler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: This gem provides a ruby interface to the phidgets library.
@@ -55,139 +50,138 @@ extra_rdoc_files:
55
50
  - History.txt
56
51
  - README.rdoc
57
52
  files:
53
+ - ".yardopts"
54
+ - GNU_GPL.txt
55
+ - History.txt
56
+ - README.rdoc
57
+ - Rakefile
58
58
  - bin/phidget
59
- - ext/phidgets/phidgets_servo.c
60
- - ext/phidgets/phidgets_accelerometer.c
61
- - ext/phidgets/phidgets_spatial.c
59
+ - ext/phidgets/extconf.rb
62
60
  - ext/phidgets/phidgets.c
63
- - ext/phidgets/phidgets_text_lcd.c
64
- - ext/phidgets/phidgets_stepper.c
65
- - ext/phidgets/phidgets_motor_control.c
66
- - ext/phidgets/phidgets_temp_sensor.c
67
- - ext/phidgets/phidgets_rfid.c
61
+ - ext/phidgets/phidgets.h
62
+ - ext/phidgets/phidgets_accelerometer.c
63
+ - ext/phidgets/phidgets_advanced_servo.c
68
64
  - ext/phidgets/phidgets_analog.c
69
- - ext/phidgets/phidgets_frequency_counter.c
70
- - ext/phidgets/phidgets_phsensor.c
71
65
  - ext/phidgets/phidgets_bridge.c
72
- - ext/phidgets/phidgets_text_led.c
73
- - ext/phidgets/phidgets_led.c
74
- - ext/phidgets/phidgets_advanced_servo.c
75
- - ext/phidgets/phidgets_manager.c
76
- - ext/phidgets/phidgets_weight_sensor.c
66
+ - ext/phidgets/phidgets_common.c
77
67
  - ext/phidgets/phidgets_dictionary.c
78
- - ext/phidgets/phidgets_interface_kit.c
79
- - ext/phidgets/phidgets_gps.c
80
68
  - ext/phidgets/phidgets_encoder.c
81
- - ext/phidgets/phidgets_common.c
69
+ - ext/phidgets/phidgets_frequency_counter.c
70
+ - ext/phidgets/phidgets_gps.c
71
+ - ext/phidgets/phidgets_interface_kit.c
82
72
  - ext/phidgets/phidgets_ir.c
83
- - ext/phidgets/phidgets.h
73
+ - ext/phidgets/phidgets_led.c
74
+ - ext/phidgets/phidgets_manager.c
75
+ - ext/phidgets/phidgets_motor_control.c
76
+ - ext/phidgets/phidgets_phsensor.c
77
+ - ext/phidgets/phidgets_rfid.c
78
+ - ext/phidgets/phidgets_servo.c
79
+ - ext/phidgets/phidgets_spatial.c
80
+ - ext/phidgets/phidgets_stepper.c
81
+ - ext/phidgets/phidgets_temp_sensor.c
82
+ - ext/phidgets/phidgets_text_lcd.c
83
+ - ext/phidgets/phidgets_text_led.c
84
+ - ext/phidgets/phidgets_weight_sensor.c
84
85
  - lib/phidgets.rb
85
- - lib/phidgets/servo.rb
86
- - lib/phidgets/interfacekit.rb
86
+ - lib/phidgets/accelerometer.rb
87
87
  - lib/phidgets/advanced_servo.rb
88
- - lib/phidgets/frequency_counter.rb
89
- - lib/phidgets/spatial.rb
90
- - lib/phidgets/temperature_sensor.rb
88
+ - lib/phidgets/analog.rb
89
+ - lib/phidgets/bridge.rb
91
90
  - lib/phidgets/common.rb
91
+ - lib/phidgets/dictionary.rb
92
92
  - lib/phidgets/encoder.rb
93
- - lib/phidgets/motor_control.rb
93
+ - lib/phidgets/frequency_counter.rb
94
+ - lib/phidgets/gps.rb
95
+ - lib/phidgets/interfacekit.rb
94
96
  - lib/phidgets/ir.rb
95
- - lib/phidgets/rfid.rb
96
- - lib/phidgets/analog.rb
97
- - lib/phidgets/dictionary.rb
98
- - lib/phidgets/text_lcd.rb
99
- - lib/phidgets/manager.rb
100
- - lib/phidgets/stepper.rb
101
- - lib/phidgets/accelerometer.rb
102
97
  - lib/phidgets/led.rb
103
- - lib/phidgets/bridge.rb
104
- - lib/phidgets/gps.rb
105
- - lib/phidgets/weight_sensor.rb
98
+ - lib/phidgets/manager.rb
99
+ - lib/phidgets/motor_control.rb
106
100
  - lib/phidgets/ph_sensor.rb
101
+ - lib/phidgets/rfid.rb
102
+ - lib/phidgets/servo.rb
103
+ - lib/phidgets/spatial.rb
104
+ - lib/phidgets/stepper.rb
105
+ - lib/phidgets/temperature_sensor.rb
106
+ - lib/phidgets/text_lcd.rb
107
107
  - lib/phidgets/text_led.rb
108
- - test/test_encoder.rb
109
- - test/test_weight_sensor.rb
108
+ - lib/phidgets/weight_sensor.rb
109
+ - phidgets.gemspec
110
+ - test/test_accelerometer.rb
111
+ - test/test_advanced_servo.rb
112
+ - test/test_analog.rb
113
+ - test/test_bridge.rb
114
+ - test/test_common.rb
110
115
  - test/test_dictionary.rb
111
- - test/test_text_lcd.rb
112
- - test/test_spatial.rb
113
- - test/test_rfid.rb
116
+ - test/test_encoder.rb
117
+ - test/test_frequency_counter.rb
118
+ - test/test_gps.rb
119
+ - test/test_helper.rb
114
120
  - test/test_interfacekit.rb
115
- - test/test_text_led.rb
121
+ - test/test_ir.rb
122
+ - test/test_led.rb
116
123
  - test/test_manager.rb
117
- - test/test_servo.rb
118
- - test/test_helper.rb
119
- - test/test_common.rb
120
124
  - test/test_motor_control.rb
121
- - test/test_advanced_servo.rb
122
- - test/test_bridge.rb
123
- - test/test_accelerometer.rb
125
+ - test/test_phidgets.rb
124
126
  - test/test_phsensor.rb
127
+ - test/test_rfid.rb
128
+ - test/test_servo.rb
129
+ - test/test_spatial.rb
125
130
  - test/test_stepper.rb
126
- - test/test_frequency_counter.rb
127
- - test/test_phidgets.rb
128
131
  - test/test_temp_sensor.rb
129
- - test/test_ir.rb
130
- - test/test_analog.rb
131
- - test/test_led.rb
132
- - test/test_gps.rb
133
- - Rakefile
134
- - GNU_GPL.txt
135
- - History.txt
136
- - README.rdoc
137
- - phidgets.gemspec
138
- - .yardopts
139
- - ext/phidgets/extconf.rb
132
+ - test/test_text_lcd.rb
133
+ - test/test_text_led.rb
134
+ - test/test_weight_sensor.rb
140
135
  homepage: https://github.com/csdehaan/phidgets
141
136
  licenses: []
137
+ metadata: {}
142
138
  post_install_message: For more information on phidgets, see http://www.phidgets.com/
143
139
  rdoc_options:
144
- - --main
140
+ - "--main"
145
141
  - README.rdoc
146
142
  require_paths:
147
143
  - lib
148
144
  - ext/phidgets
149
145
  required_ruby_version: !ruby/object:Gem::Requirement
150
- none: false
151
146
  requirements:
152
- - - ! '>='
147
+ - - ">="
153
148
  - !ruby/object:Gem::Version
154
149
  version: '0'
155
150
  required_rubygems_version: !ruby/object:Gem::Requirement
156
- none: false
157
151
  requirements:
158
- - - ! '>='
152
+ - - ">="
159
153
  - !ruby/object:Gem::Version
160
154
  version: '0'
161
155
  requirements: []
162
156
  rubyforge_project:
163
- rubygems_version: 1.8.24
157
+ rubygems_version: 2.4.8
164
158
  signing_key:
165
159
  specification_version: 3
166
160
  summary: Phidgets are a set of "plug and play" building blocks for low cost USB sensing
167
161
  and control from your PC. This gem provides a ruby interface to the phidgets library.
168
162
  test_files:
169
- - test/test_encoder.rb
163
+ - test/test_common.rb
164
+ - test/test_text_led.rb
165
+ - test/test_ir.rb
166
+ - test/test_helper.rb
167
+ - test/test_frequency_counter.rb
168
+ - test/test_phidgets.rb
169
+ - test/test_bridge.rb
170
170
  - test/test_weight_sensor.rb
171
- - test/test_dictionary.rb
172
- - test/test_text_lcd.rb
173
- - test/test_spatial.rb
174
- - test/test_rfid.rb
175
171
  - test/test_interfacekit.rb
176
- - test/test_text_led.rb
172
+ - test/test_stepper.rb
173
+ - test/test_accelerometer.rb
177
174
  - test/test_manager.rb
175
+ - test/test_text_lcd.rb
178
176
  - test/test_servo.rb
179
- - test/test_helper.rb
180
- - test/test_common.rb
181
- - test/test_motor_control.rb
182
177
  - test/test_advanced_servo.rb
183
- - test/test_bridge.rb
184
- - test/test_accelerometer.rb
178
+ - test/test_dictionary.rb
179
+ - test/test_gps.rb
180
+ - test/test_encoder.rb
185
181
  - test/test_phsensor.rb
186
- - test/test_stepper.rb
187
- - test/test_frequency_counter.rb
188
- - test/test_phidgets.rb
189
- - test/test_temp_sensor.rb
190
- - test/test_ir.rb
191
- - test/test_analog.rb
192
182
  - test/test_led.rb
193
- - test/test_gps.rb
183
+ - test/test_analog.rb
184
+ - test/test_temp_sensor.rb
185
+ - test/test_spatial.rb
186
+ - test/test_motor_control.rb
187
+ - test/test_rfid.rb