dxruby_sdl 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/dxruby_sdl.gemspec +1 -1
- data/lib/dxruby_sdl/color.rb +24 -4
- data/lib/dxruby_sdl/font.rb +32 -0
- data/lib/dxruby_sdl/image.rb +15 -10
- data/lib/dxruby_sdl/render_target.rb +50 -8
- data/lib/dxruby_sdl/sound.rb +16 -5
- data/lib/dxruby_sdl/sprite.rb +6 -2
- data/lib/dxruby_sdl/version.rb +1 -1
- data/spec/lib/dxruby_sdl/color_spec.rb +57 -11
- data/spec/lib/dxruby_sdl/image_spec.rb +35 -0
- data/spec/lib/dxruby_sdl/sound_spec.rb +27 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b492f2b06c03cae99fd83c1f0a97d6d39013c2d3
|
4
|
+
data.tar.gz: 2d1b0b218869b7f4f7d3f97d34111c3989b89e1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9ef344818ea84dae3b66ac4cb8bd378769543bd90b3ae3fef6274737b9fbd49d76932e7bb7ac27f799f6378618e9e591215e6f9561684d717560f8e843a1ede
|
7
|
+
data.tar.gz: 47844fd4b4e7f397d3114f4cb20c488894f50197611e7120141c0977afe2c20d04347444f40dd2c14f63894f43d8c4fb80bc88dc9970509c3bffe20b53990cb2
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.5
|
data/.travis.yml
CHANGED
data/dxruby_sdl.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ['kouji.takao@gmail.com']
|
11
11
|
spec.description = %q{`dxruby-sdl` is a ruby library for 2D graphics and game. It has same DXRuby API. It use SDL/Ruby.}
|
12
12
|
spec.summary = %q{2D graphics and game library}
|
13
|
-
spec.homepage = 'https://github.com/
|
13
|
+
spec.homepage = 'https://github.com/smalruby/dxruby-sdl'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
data/lib/dxruby_sdl/color.rb
CHANGED
@@ -6,17 +6,37 @@ module DXRubySDL
|
|
6
6
|
|
7
7
|
def to_sdl_color(color)
|
8
8
|
if color.length == 4
|
9
|
-
return color[
|
9
|
+
return color[1..3]
|
10
10
|
else
|
11
|
-
|
11
|
+
color
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
def to_sdl_alpha(color)
|
16
16
|
if color.length == 4
|
17
|
-
|
17
|
+
color[0]
|
18
18
|
else
|
19
|
-
|
19
|
+
0xFF
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_sdl_rgba(color)
|
24
|
+
[*to_sdl_color(color), to_sdl_alpha(color)]
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_dxruby_argb(color)
|
28
|
+
if color.length == 4
|
29
|
+
[color[3], *color[0..2]]
|
30
|
+
else
|
31
|
+
[0xFF, *color]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def normalize_dxruby(color)
|
36
|
+
if color.length == 4
|
37
|
+
color
|
38
|
+
else
|
39
|
+
[0xFF] + color
|
20
40
|
end
|
21
41
|
end
|
22
42
|
end
|
data/lib/dxruby_sdl/font.rb
CHANGED
@@ -43,6 +43,38 @@ module DXRubySDL
|
|
43
43
|
if /darwin/ =~ RUBY_PLATFORM
|
44
44
|
font_info =
|
45
45
|
[
|
46
|
+
%w[
|
47
|
+
梅Pゴシック
|
48
|
+
/Library/Fonts/ume-pgo4.ttf
|
49
|
+
ume-pgo4
|
50
|
+
MS\ Pゴシック
|
51
|
+
MS\ Pゴシック
|
52
|
+
MS\ PGothic
|
53
|
+
],
|
54
|
+
%w[
|
55
|
+
梅ゴシック
|
56
|
+
/Library/Fonts/ume-tgo4.ttf
|
57
|
+
ume-tgo4
|
58
|
+
MS\ ゴシック
|
59
|
+
MS\ ゴシック
|
60
|
+
MS\ Gothic
|
61
|
+
],
|
62
|
+
%w[
|
63
|
+
梅P明朝
|
64
|
+
/Library/Fonts/ume-pmo3.ttf
|
65
|
+
ume-pmo3
|
66
|
+
MS\ P明朝
|
67
|
+
MS\ P明朝
|
68
|
+
MS\ PMincho
|
69
|
+
],
|
70
|
+
%w[
|
71
|
+
梅明朝
|
72
|
+
/Library/Fonts/ume-tmo3.ttf
|
73
|
+
ume-tmo3
|
74
|
+
MS\ 明朝
|
75
|
+
MS\ 明朝
|
76
|
+
MS\ Mincho
|
77
|
+
],
|
46
78
|
%w[
|
47
79
|
MS\ Pゴシック
|
48
80
|
/Library/Fonts/Microsoft/MS\ PGothic.ttf
|
data/lib/dxruby_sdl/image.rb
CHANGED
@@ -30,7 +30,7 @@ module DXRubySDL
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def initialize(width, height, color = [0, 0, 0, 0])
|
33
|
-
@color = color
|
33
|
+
@color = to_sdl_rgba(color)
|
34
34
|
|
35
35
|
if width == 0 && height == 0
|
36
36
|
return
|
@@ -39,12 +39,18 @@ module DXRubySDL
|
|
39
39
|
@_surface =
|
40
40
|
SDL::Surface.new(SDL::SWSURFACE, width, height, Window.send(:screen))
|
41
41
|
@_surface.fill_rect(0, 0, width, height, @color)
|
42
|
+
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
def [](x, y)
|
45
|
+
pixel = lock { @_surface.get_pixel(x, y) }
|
46
|
+
Color.to_dxruby_argb(@_surface.format.get_rgba(pixel))
|
47
|
+
end
|
48
|
+
|
49
|
+
def []=(x, y, color)
|
50
|
+
sdl_rgba = Color.to_sdl_rgba(color)
|
51
|
+
lock {
|
52
|
+
@_surface[x, y] = sdl_rgba
|
53
|
+
}
|
48
54
|
end
|
49
55
|
|
50
56
|
def width
|
@@ -56,12 +62,11 @@ module DXRubySDL
|
|
56
62
|
end
|
57
63
|
|
58
64
|
def set_color_key(color)
|
59
|
-
@_surface.set_color_key(SDL::SRCCOLORKEY | SDL::RLEACCEL, color)
|
65
|
+
@_surface.set_color_key(SDL::SRCCOLORKEY | SDL::RLEACCEL, to_sdl_color(color))
|
60
66
|
end
|
61
67
|
|
62
68
|
def compare(x, y, color)
|
63
|
-
|
64
|
-
return @_surface.format.get_rgb(pixel) == color
|
69
|
+
self[x, y] == Color.normalize_dxruby(color)
|
65
70
|
end
|
66
71
|
|
67
72
|
def slice(x, y, width, height)
|
@@ -127,7 +132,7 @@ module DXRubySDL
|
|
127
132
|
if string.empty?
|
128
133
|
return
|
129
134
|
end
|
130
|
-
r, g, b = *color
|
135
|
+
r, g, b = *to_sdl_color(color)
|
131
136
|
h = font._ttf.height + 1
|
132
137
|
string.lines.each.with_index do |line, i|
|
133
138
|
line.chomp!
|
@@ -6,20 +6,62 @@ module DXRubySDL
|
|
6
6
|
class RenderTarget
|
7
7
|
extend Forwardable
|
8
8
|
|
9
|
-
attr_reader :_surface
|
10
|
-
|
11
9
|
def initialize(width, height, color)
|
12
|
-
@
|
13
|
-
@
|
10
|
+
@_image = Image.new(width, height, color)
|
11
|
+
@disposed = false
|
12
|
+
end
|
13
|
+
|
14
|
+
def dispose
|
15
|
+
@disposed = true
|
16
|
+
@_image = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def disposed?
|
20
|
+
@disposed
|
21
|
+
end
|
22
|
+
|
23
|
+
def draw(*args)
|
24
|
+
check_disposed
|
25
|
+
@_image.draw(*args)
|
26
|
+
end
|
27
|
+
|
28
|
+
def draw_ex(x, y, image, hash = {})
|
29
|
+
check_disposed
|
30
|
+
if hash[:z] && hash[:z] != 0
|
31
|
+
raise NotImplementedError, 'Window.draw_ex(x, y, image, z: != 0)'
|
32
|
+
end
|
33
|
+
option = {
|
34
|
+
angle: 0,
|
35
|
+
scale_x: 1,
|
36
|
+
scale_y: 1,
|
37
|
+
center_x: 0,
|
38
|
+
center_y: 0,
|
39
|
+
}.merge(hash)
|
40
|
+
SDL::Surface.transform_blit(image._surface, @_image._surface,
|
41
|
+
option[:angle],
|
42
|
+
option[:scale_x], option[:scale_y],
|
43
|
+
option[:center_x], option[:center_y],
|
44
|
+
x + option[:center_x], y + option[:center_y],
|
45
|
+
0)
|
14
46
|
end
|
15
47
|
|
16
|
-
def_delegators :@image, :draw
|
17
|
-
|
18
48
|
def draw_font(x, y, string, font, option = {})
|
49
|
+
check_disposed
|
19
50
|
color = option[:color] || [255, 255, 255]
|
20
|
-
@
|
51
|
+
@_image.draw_font(x, y, string, font, color)
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_image
|
55
|
+
check_disposed
|
56
|
+
@_image
|
21
57
|
end
|
22
58
|
|
23
|
-
|
59
|
+
private
|
60
|
+
|
61
|
+
def check_disposed
|
62
|
+
if disposed?
|
63
|
+
raise
|
64
|
+
end
|
65
|
+
end
|
24
66
|
end
|
25
67
|
end
|
data/lib/dxruby_sdl/sound.rb
CHANGED
@@ -32,8 +32,9 @@ module DXRubySDL
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
def_delegators :@sound, :play, :set_volume, :stop
|
35
|
+
def_delegators :@sound, :play, :loop_count=, :set_volume, :stop
|
36
36
|
|
37
|
+
alias_method :loopCount=, :loop_count=
|
37
38
|
alias_method :setVolume, :set_volume
|
38
39
|
|
39
40
|
private
|
@@ -43,17 +44,22 @@ module DXRubySDL
|
|
43
44
|
|
44
45
|
def initialize(filename)
|
45
46
|
@music = SDL::Mixer::Music.load(filename)
|
47
|
+
@_loop_count = -1
|
46
48
|
end
|
47
49
|
|
48
50
|
def play
|
49
|
-
SDL::Mixer.play_music(@music,
|
51
|
+
SDL::Mixer.play_music(@music, @_loop_count)
|
52
|
+
end
|
53
|
+
|
54
|
+
def loop_count=(n)
|
55
|
+
@_loop_count = n
|
50
56
|
end
|
51
57
|
|
52
58
|
def set_volume(volume, time = 0)
|
53
59
|
if time > 0
|
54
60
|
raise NotImplementedError, 'Sound#set_volume(volume, time != 0)'
|
55
61
|
end
|
56
|
-
|
62
|
+
SDL::Mixer.set_volume_music(dxruby_volume_to_sdl_volume(volume))
|
57
63
|
end
|
58
64
|
|
59
65
|
def stop
|
@@ -69,10 +75,11 @@ module DXRubySDL
|
|
69
75
|
def initialize(filename)
|
70
76
|
@wave = SDL::Mixer::Wave.load(filename)
|
71
77
|
@last_played_channel = nil
|
78
|
+
@_loop_count = 0
|
72
79
|
end
|
73
80
|
|
74
81
|
def play
|
75
|
-
@last_played_channel = SDL::Mixer.play_channel(-1, @wave,
|
82
|
+
@last_played_channel = SDL::Mixer.play_channel(-1, @wave, @_loop_count)
|
76
83
|
rescue SDL::Error => e
|
77
84
|
if /No free channels available/ =~ e.message
|
78
85
|
SDL::Mixer.halt(@last_played_channel == 0 ? 1 : 0)
|
@@ -80,6 +87,10 @@ module DXRubySDL
|
|
80
87
|
end
|
81
88
|
end
|
82
89
|
|
90
|
+
def loop_count=(n)
|
91
|
+
@_loop_count = n
|
92
|
+
end
|
93
|
+
|
83
94
|
def set_volume(volume, time = 0)
|
84
95
|
if time > 0
|
85
96
|
raise NotImplementedError, 'Sound#set_volume(volume, time != 0)'
|
@@ -88,7 +99,7 @@ module DXRubySDL
|
|
88
99
|
end
|
89
100
|
|
90
101
|
def stop
|
91
|
-
SDL::Mixer.halt(@last_played_channel)
|
102
|
+
SDL::Mixer.halt(@last_played_channel) if @last_played_channel
|
92
103
|
end
|
93
104
|
end
|
94
105
|
private_constant :Wave
|
data/lib/dxruby_sdl/sprite.rb
CHANGED
@@ -118,7 +118,7 @@ module DXRubySDL
|
|
118
118
|
if !@visible || vanished?
|
119
119
|
return
|
120
120
|
end
|
121
|
-
[:
|
121
|
+
[:blend, :shader].each do |method|
|
122
122
|
if send(method)
|
123
123
|
raise NotImplementedError, "Sprite#draw with #{method}"
|
124
124
|
end
|
@@ -139,7 +139,11 @@ module DXRubySDL
|
|
139
139
|
if center_y
|
140
140
|
options[:center_y] = center_y
|
141
141
|
end
|
142
|
-
|
142
|
+
if target
|
143
|
+
target.draw_ex(x, y, image, options)
|
144
|
+
else
|
145
|
+
Window.draw_ex(x, y, image, options)
|
146
|
+
end
|
143
147
|
end
|
144
148
|
|
145
149
|
def ===(other)
|
data/lib/dxruby_sdl/version.rb
CHANGED
@@ -7,15 +7,15 @@ describe DXRubySDL::Color, 'カラーを変換するモジュール' do
|
|
7
7
|
|
8
8
|
expected = [0, 125, 255]
|
9
9
|
context "引数が3つの要素の配列(#{expected.inspect})の場合" do
|
10
|
-
let(:color) {
|
10
|
+
let(:color) { expected }
|
11
11
|
|
12
|
-
it {
|
12
|
+
it { is_expected.to eq(expected) }
|
13
13
|
end
|
14
14
|
|
15
|
-
context "引数が4
|
16
|
-
let(:color) {
|
15
|
+
context "引数が4つの要素の配列で後ろから3つが(#{expected.inspect})の場合" do
|
16
|
+
let(:color) { [0] + expected }
|
17
17
|
|
18
|
-
it {
|
18
|
+
it { is_expected.to eq(expected) }
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -25,17 +25,63 @@ describe DXRubySDL::Color, 'カラーを変換するモジュール' do
|
|
25
25
|
context '引数が3つの要素の配列の場合' do
|
26
26
|
let(:color) { [0, 125, 255] }
|
27
27
|
|
28
|
-
it
|
29
|
-
should eq(nil)
|
30
|
-
end
|
28
|
+
it { is_expected.to eq(0xFF) }
|
31
29
|
end
|
32
30
|
|
33
31
|
[0, 125, 255].each do |expected|
|
34
|
-
context "引数が4
|
35
|
-
let(:color) { [0, 125, 255
|
32
|
+
context "引数が4つの要素の配列で最初の値が#{expected}の場合" do
|
33
|
+
let(:color) { [expected, 0, 125, 255] }
|
36
34
|
|
37
|
-
it {
|
35
|
+
it { is_expected.to eq(expected) }
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
39
|
+
|
40
|
+
describe '#to_sdl_rgba', 'DXRubyのカラー + アルファ値の情報をSDLのカラー + アルファ値の情報に変換する' do
|
41
|
+
subject { described_class.to_sdl_rgba(color) }
|
42
|
+
|
43
|
+
context "引数が3つの要素の配列([0, 125, 255])の場合" do
|
44
|
+
let(:color) { [0, 125, 255] }
|
45
|
+
|
46
|
+
it { is_expected.to eq(color + [255]) }
|
47
|
+
end
|
48
|
+
|
49
|
+
context "引数が4つの要素の配列で後ろから3つが([0, 125, 255])の場合" do
|
50
|
+
let(:color) { [60, 0, 125, 255] }
|
51
|
+
|
52
|
+
it { is_expected.to eq([0, 125 ,255, 60]) }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe '#to_dxruby_argb', 'SDL\'s RGBA to DXRuby\'s ARGB' do
|
57
|
+
subject { described_class.to_dxruby_argb(color) }
|
58
|
+
|
59
|
+
context "RGB" do
|
60
|
+
let(:color) { [0, 125, 255] }
|
61
|
+
|
62
|
+
it { is_expected.to eq([0xFF] + color) }
|
63
|
+
end
|
64
|
+
|
65
|
+
context "RGBA" do
|
66
|
+
let(:color) { [60, 0, 125, 255] }
|
67
|
+
|
68
|
+
it { is_expected.to eq([255, 60, 0, 125]) }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '#normalize_dxruby' do
|
73
|
+
subject { described_class.normalize_dxruby(color) }
|
74
|
+
|
75
|
+
context "RGB" do
|
76
|
+
let(:color) { [0, 125, 255] }
|
77
|
+
|
78
|
+
it { is_expected.to eq([0xFF] + color) }
|
79
|
+
end
|
80
|
+
|
81
|
+
context "ARGB" do
|
82
|
+
let(:color) { [255, 60, 0, 125] }
|
83
|
+
|
84
|
+
it { is_expected.to eq(color) }
|
85
|
+
end
|
86
|
+
end
|
41
87
|
end
|
@@ -3,6 +3,7 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
describe DXRubySDL::Image, '画像を表すクラス' do
|
5
5
|
let(:image) { DXRubySDL::Image.new(640, 480) }
|
6
|
+
let(:logo_image) { DXRubySDL::Image.load(fixture_path("logo.png")) }
|
6
7
|
|
7
8
|
describe '.new' do
|
8
9
|
context '幅と高さを指定した場合' do
|
@@ -92,6 +93,40 @@ describe DXRubySDL::Image, '画像を表すクラス' do
|
|
92
93
|
end
|
93
94
|
end
|
94
95
|
|
96
|
+
describe '#[]' do
|
97
|
+
it "pixel is ARGB format" do
|
98
|
+
expect(logo_image[0, 0]).to eq([254, 255, 255, 255])
|
99
|
+
expect(logo_image[75, 144]).to eq([0, 255, 255, 255])
|
100
|
+
expect(logo_image[206, 191]).to eq([254, 229, 98, 108])
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '#[]=' do
|
105
|
+
it "RGB" do
|
106
|
+
logo_image[0, 0] = [229, 98, 108]
|
107
|
+
expect(logo_image[0, 0]).to eq([255, 229, 98, 108])
|
108
|
+
end
|
109
|
+
|
110
|
+
it "ARGB" do
|
111
|
+
logo_image[0, 0] = [150, 229, 98, 108]
|
112
|
+
expect(logo_image[0, 0]).to eq([150, 229, 98, 108])
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe '#compare' do
|
117
|
+
it "RGB" do
|
118
|
+
expect(logo_image.compare(0, 0, [255, 255, 255])).to eq(false)
|
119
|
+
expect(logo_image.compare(75, 144, [255, 255, 255])).to eq(false)
|
120
|
+
expect(logo_image.compare(206, 191, [229, 98, 108])).to eq(false)
|
121
|
+
end
|
122
|
+
|
123
|
+
it "ARGB" do
|
124
|
+
expect(logo_image.compare(0, 0, [254, 255, 255, 255])).to eq(true)
|
125
|
+
expect(logo_image.compare(75, 144, [0, 255, 255, 255])).to eq(true)
|
126
|
+
expect(logo_image.compare(206, 191, [254, 229, 98, 108])).to eq(true)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
95
130
|
describe '#slice' do
|
96
131
|
let(:image) { DXRubySDL::Image.load(fixture_path('logo.png')) }
|
97
132
|
|
@@ -81,7 +81,34 @@ describe DXRubySDL::Sound, '音を表すクラス' do
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
+
describe '#loop_count=' do
|
85
|
+
context 'WAVE file', wave: true do
|
86
|
+
it 'SDL::Waveのループ回数を変更する' do
|
87
|
+
wave =
|
88
|
+
sound.instance_variable_get('@sound').instance_variable_get('@wave')
|
89
|
+
expect(SDL::Mixer).to receive(:play_channel).with(-1, wave, 1)
|
90
|
+
sound.loop_count = 1
|
91
|
+
sound.play
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'MIDI file', midi: true do
|
96
|
+
it 'SDL::Musicのループ回数を変更する' do
|
97
|
+
music =
|
98
|
+
sound.instance_variable_get('@sound').instance_variable_get('@music')
|
99
|
+
expect(SDL::Mixer).to receive(:play_music).with(music, 1)
|
100
|
+
sound.loop_count = 1
|
101
|
+
sound.play
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
84
106
|
describe '#stop' do
|
107
|
+
it '再生していないサウンドを停止でエラーが発生しない' do
|
108
|
+
sound = DXRubySDL::Sound.new(fixture_path('sound.wav'))
|
109
|
+
expect { sound.stop }.to_not raise_error
|
110
|
+
end
|
111
|
+
|
85
112
|
context 'WAVE file', wave: true do
|
86
113
|
let(:path) { fixture_path('sound.wav') }
|
87
114
|
let(:sound) { DXRubySDL::Sound.new(path) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dxruby_sdl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouji Takao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -244,7 +244,7 @@ files:
|
|
244
244
|
- spec/lib/dxruby_spec.rb
|
245
245
|
- spec/spec_helper.rb
|
246
246
|
- spec/support/fixture_helper.rb
|
247
|
-
homepage: https://github.com/
|
247
|
+
homepage: https://github.com/smalruby/dxruby-sdl
|
248
248
|
licenses:
|
249
249
|
- MIT
|
250
250
|
metadata: {}
|
@@ -264,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
264
|
version: '0'
|
265
265
|
requirements: []
|
266
266
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.5.2
|
267
|
+
rubygems_version: 2.5.2.1
|
268
268
|
signing_key:
|
269
269
|
specification_version: 4
|
270
270
|
summary: 2D graphics and game library
|