dxruby_sdl 0.0.15 → 0.0.16
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.
- 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
|