gir_ffi-cairo 0.0.7 → 0.0.8
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/README.md +7 -0
- data/lib/gir_ffi-cairo/context.rb +43 -0
- data/lib/gir_ffi-cairo/pdf_surface.rb +24 -0
- data/lib/gir_ffi-cairo/surface.rb +8 -0
- data/lib/gir_ffi-cairo.rb +1 -0
- data/test/gir_ffi-cairo/pdf_surface_test.rb +29 -0
- data/test/integration/context_test.rb +16 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00183732aec5e031aff995ac9a16d26d54f939c9
|
4
|
+
data.tar.gz: bc440bc00c60b0c0fbbb3d387d9160f631cfe169
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37e81a173cb9d13bb10ff43a0e8f7a2c68c27ffeca829e8f04dd2f3d3d7e970f3c4e82b9374773d166a498344d93dde2bc0322af3b976e04201449e4669315ed
|
7
|
+
data.tar.gz: f7493603b64a1455903385fb7ab85c84cf510f938eac630c0fefc49c8d06141945cfa8897c22809e49ee6def419b188c4c374233080e3e7aab544c0034374b3c
|
data/README.md
CHANGED
@@ -21,6 +21,13 @@ file bugs for any functionality that is not yet implemented.
|
|
21
21
|
|
22
22
|
gem install gir_ffi-cairo
|
23
23
|
|
24
|
+
## Contributors
|
25
|
+
|
26
|
+
The following people have contributed to GirFFI-Cairo:
|
27
|
+
|
28
|
+
* Natsuki Yagi
|
29
|
+
* Matijs van Zuijlen
|
30
|
+
|
24
31
|
## License
|
25
32
|
|
26
33
|
Copyright © 2012–2016, [Matijs van Zuijlen](http://www.matijs.net/)
|
@@ -7,6 +7,22 @@ module Cairo
|
|
7
7
|
self.wrap ptr
|
8
8
|
end
|
9
9
|
|
10
|
+
def move_to(x, y)
|
11
|
+
Lib.cairo_move_to self, x, y
|
12
|
+
end
|
13
|
+
|
14
|
+
def line_to(x, y)
|
15
|
+
Lib.cairo_line_to self, x, y
|
16
|
+
end
|
17
|
+
|
18
|
+
def close_path
|
19
|
+
Lib.cairo_close_path self
|
20
|
+
end
|
21
|
+
|
22
|
+
def rectangle(x, y, width, height)
|
23
|
+
Lib.cairo_rectangle self, x, y, width, height
|
24
|
+
end
|
25
|
+
|
10
26
|
def arc xc, yc, radius, angle1, angle2
|
11
27
|
Lib.cairo_arc self, xc, yc, radius, angle1, angle2
|
12
28
|
end
|
@@ -15,6 +31,10 @@ module Cairo
|
|
15
31
|
Lib.cairo_fill self
|
16
32
|
end
|
17
33
|
|
34
|
+
def stroke
|
35
|
+
Lib.cairo_stroke self
|
36
|
+
end
|
37
|
+
|
18
38
|
def get_target
|
19
39
|
ptr = Lib.cairo_get_target self
|
20
40
|
Surface.wrap ptr
|
@@ -23,16 +43,39 @@ module Cairo
|
|
23
43
|
def set_source_rgba red, green, blue, alpha
|
24
44
|
Lib.cairo_set_source_rgba self, red, green, blue, alpha
|
25
45
|
end
|
46
|
+
|
47
|
+
def save
|
48
|
+
Lib.cairo_save self
|
49
|
+
end
|
50
|
+
|
51
|
+
def restore
|
52
|
+
Lib.cairo_restore self
|
53
|
+
end
|
54
|
+
|
55
|
+
def show_page
|
56
|
+
Lib.cairo_show_page self
|
57
|
+
end
|
26
58
|
end
|
27
59
|
|
28
60
|
module Lib
|
29
61
|
attach_function :cairo_create, [:pointer], :pointer
|
30
62
|
attach_function :cairo_get_target, [:pointer], :pointer
|
31
63
|
|
64
|
+
attach_function :cairo_move_to, [:pointer, :double, :double], :void
|
65
|
+
attach_function :cairo_line_to, [:pointer, :double, :double], :void
|
32
66
|
attach_function :cairo_arc,
|
33
67
|
[:pointer, :double, :double, :double, :double, :double], :void
|
68
|
+
attach_function :cairo_close_path, [:pointer], :void
|
69
|
+
attach_function :cairo_rectangle, [:pointer, :double, :double, :double, :double], :void
|
70
|
+
|
34
71
|
attach_function :cairo_fill, [:pointer], :void
|
72
|
+
attach_function :cairo_stroke, [:pointer], :void
|
73
|
+
|
35
74
|
attach_function :cairo_set_source_rgba,
|
36
75
|
[:pointer, :double, :double, :double, :double], :void
|
76
|
+
|
77
|
+
attach_function :cairo_save, [:pointer], :void
|
78
|
+
attach_function :cairo_restore, [:pointer], :void
|
79
|
+
attach_function :cairo_show_page, [:pointer], :void
|
37
80
|
end
|
38
81
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Cairo
|
2
|
+
class PDFSurface < Surface
|
3
|
+
def self.create filename, width, height
|
4
|
+
ptr = Lib.cairo_pdf_surface_create filename, width, height
|
5
|
+
surface = self.wrap ptr
|
6
|
+
|
7
|
+
if block_given?
|
8
|
+
yield surface
|
9
|
+
surface.finish
|
10
|
+
end
|
11
|
+
|
12
|
+
surface
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_size(width, height)
|
16
|
+
Lib.cairo_pdf_surface_set_size(self, width, height)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Lib
|
21
|
+
attach_function :cairo_pdf_surface_create, [:string, :double, :double], :pointer
|
22
|
+
attach_function :cairo_pdf_surface_set_size, [:pointer, :double, :double], :void
|
23
|
+
end
|
24
|
+
end
|
@@ -3,9 +3,17 @@ module Cairo
|
|
3
3
|
|
4
4
|
class Surface
|
5
5
|
# TODO: Add overrides
|
6
|
+
def flush
|
7
|
+
Lib.cairo_surface_flush(self)
|
8
|
+
end
|
9
|
+
def finish
|
10
|
+
Lib.cairo_surface_finish(self)
|
11
|
+
end
|
6
12
|
end
|
7
13
|
|
8
14
|
module Lib
|
9
15
|
# TODO: Attach functions
|
16
|
+
attach_function :cairo_surface_flush, [:pointer], :void
|
17
|
+
attach_function :cairo_surface_finish, [:pointer], :void
|
10
18
|
end
|
11
19
|
end
|
data/lib/gir_ffi-cairo.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe Cairo::PDFSurface do
|
4
|
+
it "is a subclass of Cairo::Surface" do
|
5
|
+
Cairo::PDFSurface.superclass.must_equal Cairo::Surface
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".create" do
|
9
|
+
before { @path = 'test.pdf' }
|
10
|
+
after { File.delete(@path) if File.exist? @path }
|
11
|
+
|
12
|
+
it "creates a new Cairo::PDFSurface" do
|
13
|
+
obj = Cairo::PDFSurface.create(@path, 300, 200)
|
14
|
+
obj.must_be_instance_of Cairo::PDFSurface
|
15
|
+
end
|
16
|
+
|
17
|
+
it "creates a new Cairo::PDFSurface with block" do
|
18
|
+
called = nil
|
19
|
+
Cairo::PDFSurface.create(@path, 300, 200) {|surface|
|
20
|
+
surface.must_be_instance_of Cairo::PDFSurface
|
21
|
+
called = true
|
22
|
+
}
|
23
|
+
refute_nil called
|
24
|
+
assert File.exist?(@path)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -16,4 +16,20 @@ describe Cairo::Context do
|
|
16
16
|
ctx.fill
|
17
17
|
pass
|
18
18
|
end
|
19
|
+
|
20
|
+
describe 'PDF' do
|
21
|
+
before { @path = 'integration-test.pdf' }
|
22
|
+
after { File.delete(@path) if File.exist? @path }
|
23
|
+
|
24
|
+
it "can create pdf" do
|
25
|
+
Cairo::PDFSurface.create(@path, 400, 300) {|surface|
|
26
|
+
ctx = Cairo::Context.create(surface)
|
27
|
+
ctx.arc(300, 200, 100, 0, 2 * Math::PI)
|
28
|
+
ctx.set_source_rgba(1, 1, 0, 0.5)
|
29
|
+
ctx.fill
|
30
|
+
ctx.show_page
|
31
|
+
}
|
32
|
+
pass
|
33
|
+
end
|
34
|
+
end
|
19
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gir_ffi-cairo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gir_ffi
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.11.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.11.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,9 +66,11 @@ files:
|
|
66
66
|
- lib/gir_ffi-cairo/context.rb
|
67
67
|
- lib/gir_ffi-cairo/format.rb
|
68
68
|
- lib/gir_ffi-cairo/image_surface.rb
|
69
|
+
- lib/gir_ffi-cairo/pdf_surface.rb
|
69
70
|
- lib/gir_ffi-cairo/surface.rb
|
70
71
|
- test/gir_ffi-cairo/context_test.rb
|
71
72
|
- test/gir_ffi-cairo/image_surface_test.rb
|
73
|
+
- test/gir_ffi-cairo/pdf_surface_test.rb
|
72
74
|
- test/integration/context_test.rb
|
73
75
|
- test/test_helper.rb
|
74
76
|
homepage: http://www.github.com/mvz/gir_ffi-cairo
|
@@ -97,6 +99,7 @@ specification_version: 4
|
|
97
99
|
summary: GirFFI-based bindings for Cairo
|
98
100
|
test_files:
|
99
101
|
- test/test_helper.rb
|
100
|
-
- test/gir_ffi-cairo/context_test.rb
|
101
|
-
- test/gir_ffi-cairo/image_surface_test.rb
|
102
102
|
- test/integration/context_test.rb
|
103
|
+
- test/gir_ffi-cairo/pdf_surface_test.rb
|
104
|
+
- test/gir_ffi-cairo/image_surface_test.rb
|
105
|
+
- test/gir_ffi-cairo/context_test.rb
|