reflexion 0.1.1

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.
Files changed (74) hide show
  1. data/ChangeLog +8 -0
  2. data/README +4 -0
  3. data/Rakefile +70 -0
  4. data/VERSION +1 -0
  5. data/examples/hello/Rakefile +41 -0
  6. data/examples/hello/main.cpp +18 -0
  7. data/examples/ruby/app.rb +13 -0
  8. data/examples/ruby/checker.rb +41 -0
  9. data/examples/ruby/fps.rb +49 -0
  10. data/examples/ruby/hello.rb +38 -0
  11. data/examples/ruby/key.rb +44 -0
  12. data/examples/ruby/shapes.rb +124 -0
  13. data/examples/ruby/text.rb +35 -0
  14. data/ext/reflex/application.cpp +151 -0
  15. data/ext/reflex/extconf.rb +57 -0
  16. data/ext/reflex/key.cpp +128 -0
  17. data/ext/reflex/native.cpp +22 -0
  18. data/ext/reflex/points.cpp +160 -0
  19. data/ext/reflex/reflex.cpp +83 -0
  20. data/ext/reflex/reflex.h +39 -0
  21. data/ext/reflex/window.cpp +357 -0
  22. data/include/reflex/application.h +50 -0
  23. data/include/reflex/defs.h +258 -0
  24. data/include/reflex/helpers.h +32 -0
  25. data/include/reflex/reflex.h +26 -0
  26. data/include/reflex/ruby/application.h +39 -0
  27. data/include/reflex/ruby/key.h +39 -0
  28. data/include/reflex/ruby/points.h +39 -0
  29. data/include/reflex/ruby/reflex.h +21 -0
  30. data/include/reflex/ruby/window.h +39 -0
  31. data/include/reflex/ruby.h +14 -0
  32. data/include/reflex/window.h +79 -0
  33. data/include/reflex.h +13 -0
  34. data/lib/reflex/application.rb +25 -0
  35. data/lib/reflex/autoinit.rb +11 -0
  36. data/lib/reflex/bounds.rb +133 -0
  37. data/lib/reflex/helpers.rb +52 -0
  38. data/lib/reflex/module.rb +30 -0
  39. data/lib/reflex/point.rb +69 -0
  40. data/lib/reflex/reflex.rb +21 -0
  41. data/lib/reflex/window.rb +65 -0
  42. data/lib/reflex.rb +11 -0
  43. data/reflex.gemspec +57 -0
  44. data/src/cocoa/application.mm +90 -0
  45. data/src/cocoa/applicationdata.h +51 -0
  46. data/src/cocoa/cocoaapplication.h +19 -0
  47. data/src/cocoa/cocoaapplication.mm +180 -0
  48. data/src/cocoa/cocoawindow.h +44 -0
  49. data/src/cocoa/cocoawindow.mm +171 -0
  50. data/src/cocoa/defs.h +34 -0
  51. data/src/cocoa/defs.mm +84 -0
  52. data/src/cocoa/openglview.h +17 -0
  53. data/src/cocoa/openglview.mm +186 -0
  54. data/src/cocoa/reflex.mm +68 -0
  55. data/src/cocoa/window.mm +118 -0
  56. data/src/cocoa/windowdata.h +51 -0
  57. data/src/defs.cpp +47 -0
  58. data/src/win32/defs.cpp +150 -0
  59. data/src/win32/opengl.cpp +95 -0
  60. data/src/win32/opengl.h +50 -0
  61. data/src/win32/reflex.cpp +65 -0
  62. data/src/win32/window.cpp +480 -0
  63. data/src/window.cpp +60 -0
  64. data/support.rb +56 -0
  65. data/task/ext.rake +42 -0
  66. data/task/gem.rake +33 -0
  67. data/task/git.rake +22 -0
  68. data/task/lib.rake +54 -0
  69. data/test/helpers.rb +15 -0
  70. data/test/test_bounds.rb +163 -0
  71. data/test/test_point.rb +81 -0
  72. data/test/test_reflex.rb +17 -0
  73. data/test/test_window.rb +39 -0
  74. metadata +173 -0
data/task/lib.rake ADDED
@@ -0,0 +1,54 @@
1
+ # -*- mode: ruby; coding: utf-8 -*-
2
+
3
+
4
+ require 'rake/loaders/makefile'
5
+
6
+
7
+ namespace :lib do
8
+
9
+ name = NAME
10
+ outname = "lib#{name}.a"
11
+ out = File.join LIBDIR, outname
12
+
13
+ headers = glob("include/**/*.h")
14
+ srcs = glob("src/**/*.cpp")
15
+ srcs += glob("src/**/*.mm") if cocoa?
16
+ srcs = srcs.reject {|s| s =~ %r(/win32/)} unless win32?
17
+ srcs = srcs.reject {|s| s =~ %r(/cocoa/)} unless cocoa?
18
+
19
+ depend = 'depend.mf'
20
+ objs = convertions srcs, {".cpp" => ".o", ".mm" => ".o"}
21
+ tmps = objs.values + [depend]
22
+
23
+ cflags = CFLAGS.dup
24
+ cflags << INCDIRS.map{|s| " -I#{s}"}.join
25
+
26
+ task :build => out
27
+
28
+ task :compile => objs.values
29
+
30
+ task :clean do
31
+ sh %( rm -rf #{tmps.join " "} #{out} )
32
+ end
33
+
34
+ file out => objs.values do
35
+ sh %( #{AR} #{ARFLAGS} #{out} #{objs.values.join " "} )
36
+ end
37
+
38
+ file depend do
39
+ sh %( #{CC} -M #{cflags} #{srcs.join ' '} > #{depend} )
40
+ input = open(depend) {|f| f.read}
41
+ open(depend, 'w') do |output|
42
+ output << input.gsub(/\w+\.o/, SRCDIR + '/\0')
43
+ end
44
+ end
45
+
46
+ import depend if File.exist? depend
47
+
48
+ objs.each do |(src, obj)|
49
+ file obj => [depend, src] do
50
+ sh %( #{CC} -c #{cflags} -o #{obj} #{src} )
51
+ end
52
+ end
53
+
54
+ end# :lib
data/test/helpers.rb ADDED
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test/unit'
3
+
4
+
5
+ %w[rays reflex].product(%w[ext lib]).each do |paths|
6
+ paths = %w[.. ..] + paths
7
+ $: << File.expand_path(File.join File.dirname(__FILE__), *paths)
8
+ end
9
+ require 'reflex'
10
+
11
+
12
+ unless $REFLEX_NOAUTOINIT
13
+ def Rays.fin! (); end
14
+ def Reflex.fin! (); end
15
+ end
@@ -0,0 +1,163 @@
1
+ # -*- coding: utf-8 -*-
2
+ $: << File.dirname(__FILE__)
3
+ require 'helpers'
4
+
5
+
6
+ class TestBounds < Test::Unit::TestCase
7
+
8
+ def bounds (*args)
9
+ Reflex::Bounds.new *args
10
+ end
11
+
12
+ def test_initialize ()
13
+ assert_nothing_raised {bounds()}
14
+ assert_nothing_raised {bounds(1)}
15
+ assert_nothing_raised {bounds(1, 2)}
16
+ assert_nothing_raised {bounds(1, 2, 3, 4)}
17
+ assert_raise(ArgumentError) {bounds(1, 2, 3)}
18
+ assert_raise(ArgumentError) {bounds(1, 2, 3, 4, 5)}
19
+ assert_raise(ArgumentError) {bounds(1, 2, 3, 4, 5, 6)}
20
+ assert_equal bounds(0, 0, 0, 0), bounds()
21
+ assert_equal bounds(0, 0, 1, 1), bounds(1)
22
+ assert_equal bounds(0, 0, 1, 2), bounds(1, 2)
23
+ assert_equal [1, 2, 3, 4], bounds(1, 2, 3, 4).to_a
24
+ end
25
+
26
+ def test_xywh ()
27
+ o = bounds 1, 2, 3, 4
28
+ assert_equal 1, o.x
29
+ assert_equal 2, o.y
30
+ assert_equal 3, o.width
31
+ assert_equal 4, o.height
32
+ assert_equal o.width, o.w
33
+ assert_equal o.height, o.h
34
+ o = bounds
35
+ o.x = 1
36
+ assert_equal [1, 0, 0, 0], o.to_a
37
+ o.y = 2
38
+ assert_equal [1, 2, 0, 0], o.to_a
39
+ o.width = 3
40
+ assert_equal [1, 2, 3, 0], o.to_a
41
+ o.height = 4
42
+ assert_equal [1, 2, 3, 4], o.to_a
43
+ o.w = 5
44
+ assert_equal [1, 2, 5, 4], o.to_a
45
+ o.h = 6
46
+ assert_equal [1, 2, 5, 6], o.to_a
47
+ end
48
+
49
+ def test_ltrb ()
50
+ o = bounds 1, 2, 3, 4
51
+ assert_equal 1, o.left
52
+ assert_equal 2, o.top
53
+ assert_equal 3, o.right
54
+ assert_equal 5, o.bottom
55
+ assert_equal o.left, o.l
56
+ assert_equal o.top, o.t
57
+ assert_equal o.right, o.r
58
+ assert_equal o.bottom, o.b
59
+ o = bounds
60
+ o.left = 1
61
+ assert_equal [1, 0, 0, 0], o.to_a
62
+ o.top = 2
63
+ assert_equal [1, 2, 0, 0], o.to_a
64
+ o.right = 5
65
+ assert_equal [1, 2, 5, 0], o.to_a
66
+ o.bottom = 10
67
+ assert_equal [1, 2, 5, 9], o.to_a
68
+ o.l = 10
69
+ assert_equal [10, 2, 5, 9], o.to_a
70
+ o.t = 11
71
+ assert_equal [10, 11, 5, 9], o.to_a
72
+ o.r = 20
73
+ assert_equal [10, 11, 11, 9], o.to_a
74
+ o.b = 30
75
+ assert_equal [10, 11, 11, 20], o.to_a
76
+ end
77
+
78
+ def test_size ()
79
+ o = bounds 1, 2, 3, 5
80
+ assert_equal 3, o.width
81
+ assert_equal 5, o.height
82
+ end
83
+
84
+ def test_offset_to ()
85
+ o = bounds 1, 2, 3, 4
86
+ assert_equal bounds(5, 6, 3, 4), o.offset_to(5, 6)
87
+ assert_equal bounds(5, 5, 3, 4), o.offset_to(5)
88
+ assert_raise(ArgumentError) {o.offset_to()}
89
+ assert_raise(ArgumentError) {o.offset_to(5, 6, 7)}
90
+ assert_raise(ArgumentError) {o.offset_to(5, 6, 7, 8)}
91
+ x0 = o.dup
92
+ x1 = x0.offset_to(5, 6)
93
+ assert_equal o, x0
94
+ assert_equal bounds(5, 6, 3, 4), x1
95
+ x0.offset_to!(7, 8)
96
+ assert_equal bounds(7, 8, 3, 4), x0
97
+ assert_not_equal o, x0
98
+ end
99
+
100
+ def test_offset_by ()
101
+ o = bounds 1, 2, 3, 4
102
+ assert_equal bounds(6, 8, 3, 4), o.offset_by(5, 6)
103
+ assert_equal bounds(6, 7, 3, 4), o.offset_by(5)
104
+ assert_equal bounds(-4, -3, 3, 4), o.offset_by(-5)
105
+ assert_equal bounds(-4, -4, 3, 4), o.offset_by(-5, -6)
106
+ assert_raise(ArgumentError) {o.offset_by()}
107
+ assert_raise(ArgumentError) {o.offset_by(5, 6, 7)}
108
+ assert_raise(ArgumentError) {o.offset_by(5, 6, 7, 8)}
109
+ x0 = o.dup
110
+ x1 = x0.offset_by(5, 6)
111
+ assert_equal o, x0
112
+ assert_equal bounds(6, 8, 3, 4), x1
113
+ x0.offset_by!(7, 8)
114
+ assert_equal bounds(8, 10, 3, 4), x0
115
+ assert_not_equal o, x0
116
+ end
117
+
118
+ def test_inset_by ()
119
+ o = bounds 1, 2, 11, 12
120
+ assert_equal bounds(3, 5, 7, 6), o.inset_by(2, 3)
121
+ assert_equal bounds(3, 4, 7, 8), o.inset_by(2)
122
+ assert_raise(ArgumentError) {o.inset_by()}
123
+ assert_raise(ArgumentError) {o.inset_by(5, 6, 7)}
124
+ assert_raise(ArgumentError) {o.inset_by(5, 6, 7, 8)}
125
+ x0 = o.dup
126
+ x1 = x0.inset_by(3, 4)
127
+ assert_equal o, x0
128
+ assert_equal bounds(4, 6, 5, 4), x1
129
+ x0.inset_by!(5, 6)
130
+ assert_equal bounds(6, 8, 1, 0), x0
131
+ assert_not_equal o, x0
132
+ assert_equal bounds(8, 10, -3, -4), o.inset_by(7, 8)
133
+ end
134
+
135
+ def test_to_a ()
136
+ assert_equal [1, 2, 3, 4], bounds(1, 2, 3, 4).to_a
137
+ end
138
+
139
+ def test_index ()
140
+ o = bounds 1, 2, 3, 4
141
+ assert_equal Reflex::Point.new(1, 2), o[0]
142
+ assert_equal Reflex::Point.new(3, 5), o[1]
143
+ assert_raise(IndexError) {o[-1]}
144
+ assert_raise(IndexError) {o[2]}
145
+ end
146
+
147
+ def test_compare ()
148
+ o = bounds 1, 2, 3, 4
149
+ assert o == bounds(1, 2, 3, 4)
150
+ assert !(o != bounds(1, 2, 3, 4))
151
+ assert o < bounds(2, 2, 3, 4)
152
+ assert o < bounds(1, 3, 3, 4)
153
+ assert o < bounds(1, 2, 4, 4)
154
+ assert o < bounds(1, 2, 3, 5)
155
+ assert o < bounds(2, 3, 4, 5)
156
+ assert o > bounds(0, 2, 3, 4)
157
+ assert o > bounds(1, 1, 3, 4)
158
+ assert o > bounds(1, 2, 2, 4)
159
+ assert o > bounds(1, 2, 3, 3)
160
+ assert o > bounds(0, 1, 2, 3)
161
+ end
162
+
163
+ end# TestBounds
@@ -0,0 +1,81 @@
1
+ # -*- coding: utf-8 -*-
2
+ $: << File.dirname(__FILE__)
3
+ require 'helpers'
4
+
5
+
6
+ class TestPoint < Test::Unit::TestCase
7
+
8
+ def point (*args)
9
+ Reflex::Point.new *args
10
+ end
11
+
12
+ def test_initialize ()
13
+ assert_nothing_raised {point()}
14
+ assert_nothing_raised {point(1)}
15
+ assert_nothing_raised {point(1, 2)}
16
+ assert_raise(ArgumentError) {point(1, 2, 3)}
17
+ assert_equal point(0, 0), point()
18
+ assert_equal point(1, 1), point(1)
19
+ assert_equal [2, 3], point(2, 3).to_a
20
+ end
21
+
22
+ def test_xy ()
23
+ assert_equal 1, point(1).x
24
+ assert_equal 1, point(1).y
25
+ o = point
26
+ o.x = 1
27
+ assert_equal [1, 0], [o.x, o.y]
28
+ o.y = 2
29
+ assert_equal [1, 2], [o.x, o.y]
30
+ end
31
+
32
+ def test_offset_to ()
33
+ assert_equal point(4, 3), point(1, 2).offset_to(4, 3)
34
+ assert_equal point(3, 3), point(1, 2).offset_to(3)
35
+ assert_raise(ArgumentError) {point(1, 2).offset_to()}
36
+ assert_raise(ArgumentError) {point(1, 2).offset_to(3, 4, 5)}
37
+ x0 = point(1, 2)
38
+ x1 = x0.offset_to(3, 4)
39
+ assert_equal point(1, 2), x0
40
+ assert_equal point(3, 4), x1
41
+ x0.offset_to!(5, 6)
42
+ assert_equal point(5, 6), x0
43
+ end
44
+
45
+ def test_offset_by ()
46
+ assert_equal point(4, 6), point(1, 2).offset_by(3, 4)
47
+ assert_equal point(6, 7), point(1, 2).offset_by(5)
48
+ assert_equal point(-5, -4), point(1, 2).offset_by(-6)
49
+ assert_equal point(-6, -6), point(1, 2).offset_by(-7, -8)
50
+ assert_raise(ArgumentError) {point(1, 2).offset_by()}
51
+ assert_raise(ArgumentError) {point(1, 2).offset_by(3, 4, 5)}
52
+ x0 = point(1, 2)
53
+ x1 = x0.offset_by(3, 4)
54
+ assert_equal point(1, 2), x0
55
+ assert_equal point(4, 6), x1
56
+ x0.offset_by!(5, 6)
57
+ assert_equal point(6, 8), x0
58
+ end
59
+
60
+ def test_to_a ()
61
+ assert_equal [1, 2], point(1, 2).to_a
62
+ end
63
+
64
+ def test_index ()
65
+ assert_equal 1, point(1, 2)[0]
66
+ assert_equal 2, point(1, 2)[1]
67
+ assert_raise(IndexError) {point[2]}
68
+ end
69
+
70
+ def test_compare ()
71
+ assert point(1, 2) == point(1, 2)
72
+ assert !(point(1, 2) != point(1, 2))
73
+ assert point(1, 2) < point(2, 2)
74
+ assert point(1, 2) < point(1, 3)
75
+ assert point(1, 2) < point(2, 3)
76
+ assert point(1, 2) > point(0, 2)
77
+ assert point(1, 2) > point(1, 1)
78
+ assert point(1, 2) > point(0, 1)
79
+ end
80
+
81
+ end# TestPoint
@@ -0,0 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+ $: << File.dirname(__FILE__)
3
+ $RAYS_NOAUTOINIT = true
4
+ $REFLEX_NOAUTOINIT = true
5
+ require 'helpers'
6
+
7
+
8
+ class TestReflex < Test::Unit::TestCase
9
+
10
+ def test_init ()
11
+ assert_raise(Rucy::NativeError) {Reflex.fin!}
12
+ assert Reflex.init!
13
+ assert_raise(Rucy::NativeError) {Reflex.init!}
14
+ assert Reflex.fin!
15
+ end
16
+
17
+ end# TestReflex
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ $: << File.dirname(__FILE__)
3
+ require 'helpers'
4
+
5
+
6
+ class TestWindow < Test::Unit::TestCase
7
+
8
+ def setup ()
9
+ @w = Reflex::Window.new
10
+ end
11
+
12
+ def teardown ()
13
+ @w.close
14
+ end
15
+
16
+ def test_hidden ()
17
+ assert_equal true, @w.hidden
18
+ @w.show
19
+ assert_equal false, @w.hidden
20
+ @w.hide
21
+ assert_equal true, @w.hidden
22
+ end
23
+
24
+ def test_hidden_count ()
25
+ @w.hide
26
+ assert_equal true, @w.hidden
27
+ @w.show
28
+ assert_equal true, @w.hidden
29
+ @w.show
30
+ assert_equal false, @w.hidden
31
+ end
32
+
33
+ def test_title ()
34
+ assert_equal '', @w.title
35
+ @w.title = 'test title'
36
+ assert_equal 'test title', @w.title
37
+ end
38
+
39
+ end# TestWindow
metadata ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reflexion
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.1
6
+ platform: ruby
7
+ authors:
8
+ - snori
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-08-28 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rucy
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rays
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: gemcutter
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id004
59
+ description: This library helps you to develop interactive graphical user interface.
60
+ email: snori@xord.org
61
+ executables: []
62
+
63
+ extensions:
64
+ - Rakefile
65
+ extra_rdoc_files:
66
+ - README
67
+ files:
68
+ - ChangeLog
69
+ - README
70
+ - Rakefile
71
+ - support.rb
72
+ - reflex.gemspec
73
+ - VERSION
74
+ - task/ext.rake
75
+ - task/gem.rake
76
+ - task/git.rake
77
+ - task/lib.rake
78
+ - ext/reflex/extconf.rb
79
+ - ext/reflex/reflex.h
80
+ - ext/reflex/application.cpp
81
+ - ext/reflex/key.cpp
82
+ - ext/reflex/native.cpp
83
+ - ext/reflex/points.cpp
84
+ - ext/reflex/reflex.cpp
85
+ - ext/reflex/window.cpp
86
+ - include/reflex/application.h
87
+ - include/reflex/defs.h
88
+ - include/reflex/helpers.h
89
+ - include/reflex/reflex.h
90
+ - include/reflex/ruby/application.h
91
+ - include/reflex/ruby/key.h
92
+ - include/reflex/ruby/points.h
93
+ - include/reflex/ruby/reflex.h
94
+ - include/reflex/ruby/window.h
95
+ - include/reflex/ruby.h
96
+ - include/reflex/window.h
97
+ - include/reflex.h
98
+ - lib/reflex/application.rb
99
+ - lib/reflex/autoinit.rb
100
+ - lib/reflex/bounds.rb
101
+ - lib/reflex/helpers.rb
102
+ - lib/reflex/module.rb
103
+ - lib/reflex/point.rb
104
+ - lib/reflex/reflex.rb
105
+ - lib/reflex/window.rb
106
+ - lib/reflex.rb
107
+ - src/cocoa/applicationdata.h
108
+ - src/cocoa/cocoaapplication.h
109
+ - src/cocoa/cocoawindow.h
110
+ - src/cocoa/defs.h
111
+ - src/cocoa/openglview.h
112
+ - src/cocoa/windowdata.h
113
+ - src/win32/opengl.h
114
+ - src/defs.cpp
115
+ - src/win32/defs.cpp
116
+ - src/win32/opengl.cpp
117
+ - src/win32/reflex.cpp
118
+ - src/win32/window.cpp
119
+ - src/window.cpp
120
+ - src/cocoa/application.mm
121
+ - src/cocoa/cocoaapplication.mm
122
+ - src/cocoa/cocoawindow.mm
123
+ - src/cocoa/defs.mm
124
+ - src/cocoa/openglview.mm
125
+ - src/cocoa/reflex.mm
126
+ - src/cocoa/window.mm
127
+ - examples/hello/Rakefile
128
+ - examples/hello/main.cpp
129
+ - examples/ruby/app.rb
130
+ - examples/ruby/checker.rb
131
+ - examples/ruby/fps.rb
132
+ - examples/ruby/hello.rb
133
+ - examples/ruby/key.rb
134
+ - examples/ruby/shapes.rb
135
+ - examples/ruby/text.rb
136
+ - test/helpers.rb
137
+ - test/test_bounds.rb
138
+ - test/test_point.rb
139
+ - test/test_reflex.rb
140
+ - test/test_window.rb
141
+ homepage: http://github.com/xord/reflex
142
+ licenses: []
143
+
144
+ post_install_message:
145
+ rdoc_options: []
146
+
147
+ require_paths:
148
+ - lib
149
+ - ext
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: 1.9.0
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: "0"
162
+ requirements: []
163
+
164
+ rubyforge_project:
165
+ rubygems_version: 1.8.1
166
+ signing_key:
167
+ specification_version: 3
168
+ summary: A Graphical User Interface Tool Kit.
169
+ test_files:
170
+ - test/test_bounds.rb
171
+ - test/test_point.rb
172
+ - test/test_reflex.rb
173
+ - test/test_window.rb