phidgets 0.1.2 → 0.1.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.
@@ -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