smalruby 0.0.27-x86-mingw32 → 0.0.28-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of smalruby might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa8c09967a7b2bbc4f20c9ed175e4cf0de7815c8
4
- data.tar.gz: 44f19f82f887bd606f622ce377e826d8cf7c0735
3
+ metadata.gz: fbd593e1b2c6ceef1851955dd57c59590556bbfd
4
+ data.tar.gz: 86a88450d558dd10e9b80593f37d32def3488e25
5
5
  SHA512:
6
- metadata.gz: 5c5ee978cdf45f04acd54f58d8d1fde907d858a34c5ea1f63f87db1c1aa8a2ab37dc4770505463c1655e136cacdfd42428edc9de2c312dbbb34b6f8ca7023885
7
- data.tar.gz: 940819b7d174f5dfccebc7a48ed2b37b30d63e87a58ef518cb791ff758959b281cb15c4bed74d6098da56569bc189afba2af9499d80b65729d83c650cc5cfa68
6
+ metadata.gz: 77d75eaef5470b25ae4ee674b86e6c1776717bac511b1712a5d25bb961288fe6d8d453a3ca5a67e02c5590699020798210ca23c4a95fe7847692cb9a712725bc
7
+ data.tar.gz: 656430127324a91ea3f777fb695df73e3d36875ae1c4c223ef62764b3c775b720edfe764b7853cddb54d96997bdbb60c790b6872812d42b4a13d5bbc62a73bf8
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'smalruby/hardware'
3
+
4
+ module Smalruby
5
+ module Hardware
6
+ # 何もしないハードウェアを表現するクラス
7
+ class NullHardware
8
+ def initialize(*_)
9
+ end
10
+
11
+ def method_missing(name)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -8,6 +8,8 @@ module Smalruby
8
8
  module Hardware
9
9
  extend ActiveSupport::Autoload
10
10
 
11
+ autoload :NullHardware
12
+
11
13
  autoload :Pin
12
14
  autoload :Led
13
15
  autoload :RgbLedAnode
@@ -27,7 +29,6 @@ module Smalruby
27
29
  # WindowsだとCOM1など
28
30
  def init(options = {})
29
31
  return if @initialized_hardware
30
- fail 'already started.' if @started
31
32
 
32
33
  defaults = {
33
34
  device: nil,
@@ -42,10 +43,18 @@ module Smalruby
42
43
  txrx = Dino::TxRx.new
43
44
  txrx.io = opt[:device] if opt[:device]
44
45
  end
45
- world.board = Dino::Board.new(txrx)
46
- world.board.heart_rate = opt[:heart_rate]
46
+ begin
47
+ world.board = Dino::Board.new(txrx)
48
+ world.board.heart_rate = opt[:heart_rate]
49
+
50
+ @initialized_hardware = true
51
+ rescue Exception
52
+ Util.print_exception($!)
47
53
 
48
- @initialized_hardware = true
54
+ canvas = Canvas.new(height: 32)
55
+ canvas.draw_font(string: 'ハードウェアの準備に失敗しました',
56
+ color: 'red')
57
+ end
49
58
  end
50
59
 
51
60
  # ハードウェアを停止させる
@@ -66,6 +75,7 @@ module Smalruby
66
75
  # @param [String|Numeric] pin ピン番号
67
76
  # @return [Object] ハードウェアのインスタンス
68
77
  def create_hardware(klass, pin)
78
+ klass = NullHardware unless @initialized_hardware
69
79
  key = [klass, pin]
70
80
  @hardware_cache.synchronize do
71
81
  @hardware_cache[key] ||= klass.new(pin: pin)
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module Smalruby
4
- VERSION = '0.0.27'
4
+ VERSION = '0.0.28'
5
5
  end
data/lib/smalruby.rb CHANGED
@@ -46,8 +46,12 @@ module Smalruby
46
46
  end
47
47
 
48
48
  def await
49
- @draw_mutex.synchronize do
50
- @draw_cv.wait(@draw_mutex)
49
+ if Thread.current == Thread.main
50
+ sleep(1.0 / 15)
51
+ else
52
+ @draw_mutex.synchronize do
53
+ @draw_cv.wait(@draw_mutex)
54
+ end
51
55
  end
52
56
  end
53
57
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smalruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-13 00:00:00.000000000 Z
11
+ date: 2014-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -259,6 +259,7 @@ files:
259
259
  - lib/smalruby/hardware/button.rb
260
260
  - lib/smalruby/hardware/dino/fix_gets.rb
261
261
  - lib/smalruby/hardware/led.rb
262
+ - lib/smalruby/hardware/null_hardware.rb
262
263
  - lib/smalruby/hardware/pin.rb
263
264
  - lib/smalruby/hardware/rgb_led_anode.rb
264
265
  - lib/smalruby/hardware/rgb_led_cathode.rb