fn_document 0.9.2

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 (48) hide show
  1. data/.document +5 -0
  2. data/Gemfile +13 -0
  3. data/Gemfile.lock +20 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +19 -0
  6. data/Rakefile +53 -0
  7. data/VERSION +1 -0
  8. data/fn_document.gemspec +95 -0
  9. data/lib/fn/block.rb +27 -0
  10. data/lib/fn/document.rb +204 -0
  11. data/lib/fn/migrate.xslt +224 -0
  12. data/lib/fn/node/base.rb +69 -0
  13. data/lib/fn/node/context.rb +70 -0
  14. data/lib/fn/node/root.rb +14 -0
  15. data/lib/fn/pdf/node/begin_document.rb +22 -0
  16. data/lib/fn/pdf/node/begin_page_ext.rb +24 -0
  17. data/lib/fn/pdf/node/create_textflow.rb +137 -0
  18. data/lib/fn/pdf/node/end_page_ext.rb +22 -0
  19. data/lib/fn/pdf/node/fit_image.rb +28 -0
  20. data/lib/fn/pdf/node/fit_pdi_page.rb +26 -0
  21. data/lib/fn/pdf/node/fit_textflow.rb +27 -0
  22. data/lib/fn/pdf/node/invert.rb +36 -0
  23. data/lib/fn/pdf/node/load_image.rb +21 -0
  24. data/lib/fn/pdf/node/open_pdi.rb +22 -0
  25. data/lib/fn/pdf/node/open_pdi_page.rb +31 -0
  26. data/lib/fn/pdf/node/resume_page.rb +21 -0
  27. data/lib/fn/pdf/node/set_parameter.rb +22 -0
  28. data/lib/fn/pdf/node/watermark.rb +24 -0
  29. data/lib/fn/pdf/struct.rb +40 -0
  30. data/lib/fn/pdf/writer.rb +205 -0
  31. data/lib/fn/resource.rb +53 -0
  32. data/lib/fn/swf/node/break.rb +19 -0
  33. data/lib/fn/swf/node/flash.rb +24 -0
  34. data/lib/fn/swf/node/font.rb +24 -0
  35. data/lib/fn/swf/node/frame.rb +19 -0
  36. data/lib/fn/swf/node/hot_spot.rb +43 -0
  37. data/lib/fn/swf/node/image.rb +19 -0
  38. data/lib/fn/swf/node/page.rb +30 -0
  39. data/lib/fn/swf/node/photo_block.rb +53 -0
  40. data/lib/fn/swf/node/text.rb +51 -0
  41. data/lib/fn/swf/struct.rb +43 -0
  42. data/lib/fn/swf/writer.rb +89 -0
  43. data/lib/fn/util.rb +27 -0
  44. data/lib/fn/validation.rng +172 -0
  45. data/lib/fn_document.rb +3 -0
  46. data/test/helper.rb +18 -0
  47. data/test/test_fn_document.rb +7 -0
  48. metadata +150 -0
data/lib/fn/util.rb ADDED
@@ -0,0 +1,27 @@
1
+ require 'rubygems'
2
+ gem "libxml-ruby", "=1.1.3"
3
+ gem "libxslt-ruby", "=0.9.2"
4
+ require 'libxml'
5
+ require 'libxslt'
6
+ include LibXML
7
+ include LibXSLT
8
+
9
+ module FN
10
+ class XMLTypeError < TypeError; end
11
+
12
+ module Util
13
+
14
+ def raise_unless_xml_doc(xml)
15
+
16
+ if !xml.is_a?(XML::Document)
17
+ raise XMLTypeError.new("Not a LibXML doc")
18
+ end
19
+ end
20
+
21
+ def raise_unless_xml_node(xml)
22
+ if !xml.is_a?(XML::Node)
23
+ raise XMLTypeError.new("Not a LibXML node")
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,172 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <start>
4
+ <element name="document">
5
+ <attribute name="version">
6
+ <data type="integer"/>
7
+ </attribute>
8
+ <element name="resources">
9
+ <oneOrMore>
10
+ <element name="resource">
11
+ <attribute name="id" />
12
+ <attribute name="type">
13
+ <data type="NCName"/>
14
+ </attribute>
15
+ <text/>
16
+ </element>
17
+ </oneOrMore>
18
+ </element>
19
+ <element name="menu">
20
+ <empty/>
21
+ </element>
22
+ <element name="pages">
23
+ <oneOrMore>
24
+ <element name="page">
25
+ <attribute name="background">
26
+ <data type="NCName"/>
27
+ </attribute>
28
+ <attribute name="height">
29
+ <data type="integer"/>
30
+ </attribute>
31
+ <attribute name="hotspot"/>
32
+ <attribute name="number">
33
+ <data type="integer"/>
34
+ </attribute>
35
+ <attribute name="width">
36
+ <data type="integer"/>
37
+ </attribute>
38
+ <zeroOrMore>
39
+ <element name="slice">
40
+ <attribute name="height">
41
+ <data type="integer"/>
42
+ </attribute>
43
+ <attribute name="index">
44
+ <data type="integer"/>
45
+ </attribute>
46
+ <attribute name="width">
47
+ <data type="integer"/>
48
+ </attribute>
49
+ <attribute name="x">
50
+ <data type="integer"/>
51
+ </attribute>
52
+ <attribute name="y">
53
+ <data type="integer"/>
54
+ </attribute>
55
+ </element>
56
+ </zeroOrMore>
57
+ <oneOrMore>
58
+ <element name="block">
59
+ <optional>
60
+ <attribute name="align">
61
+ <data type="NCName"/>
62
+ </attribute>
63
+ </optional>
64
+ <optional>
65
+ <attribute name="boxHeight">
66
+ <data type="integer"/>
67
+ </attribute>
68
+ </optional>
69
+ <optional>
70
+ <attribute name="boxWidth">
71
+ <data type="integer"/>
72
+ </attribute>
73
+ </optional>
74
+ <optional>
75
+ <attribute name="boxX">
76
+ <data type="integer"/>
77
+ </attribute>
78
+ </optional>
79
+ <optional>
80
+ <attribute name="boxY">
81
+ <data type="integer"/>
82
+ </attribute>
83
+ </optional>
84
+ <optional>
85
+ <attribute name="height">
86
+ <data type="integer"/>
87
+ </attribute>
88
+ </optional>
89
+ <optional>
90
+ <attribute name="id">
91
+ <data type="integer"/>
92
+ </attribute>
93
+ </optional>
94
+ <optional>
95
+ <attribute name="index">
96
+ <data type="integer"/>
97
+ </attribute>
98
+ </optional>
99
+ <optional>
100
+ <attribute name="src">
101
+ <data type="NCName"/>
102
+ </attribute>
103
+ </optional>
104
+ <optional>
105
+ <attribute name="text">
106
+ <data type="integer"/>
107
+ </attribute>
108
+ </optional>
109
+ <attribute name="type">
110
+ <data type="NCName"/>
111
+ </attribute>
112
+ <attribute name="width">
113
+ <data type="integer"/>
114
+ </attribute>
115
+ <optional>
116
+ <attribute name="x">
117
+ <data type="integer"/>
118
+ </attribute>
119
+ </optional>
120
+ <optional>
121
+ <attribute name="y">
122
+ <data type="integer"/>
123
+ </attribute>
124
+ </optional>
125
+ <optional>
126
+ <attribute name="multipage" />
127
+ </optional>
128
+ </element>
129
+ </oneOrMore>
130
+ </element>
131
+ </oneOrMore>
132
+ </element>
133
+ <element name="texts">
134
+ <oneOrMore>
135
+ <choice>
136
+ <text/>
137
+ <element name="text">
138
+ <attribute name="id">
139
+ <data type="integer"/>
140
+ </attribute>
141
+ <oneOrMore>
142
+ <element name="p">
143
+ <attribute name="align">
144
+ <data type="NCName"/>
145
+ </attribute>
146
+ <choice>
147
+ <ref name="font"/>
148
+ <element name="i">
149
+ <ref name="font"/>
150
+ </element>
151
+ </choice>
152
+ </element>
153
+ </oneOrMore>
154
+ </element>
155
+ </choice>
156
+ </oneOrMore>
157
+ </element>
158
+ </element>
159
+ </start>
160
+ <define name="font">
161
+ <element name="font">
162
+ <attribute name="color"/>
163
+ <attribute name="face"/>
164
+ <attribute name="size">
165
+ <data type="integer"/>
166
+ </attribute>
167
+ <element name="textformat">
168
+ <text/>
169
+ </element>
170
+ </element>
171
+ </define>
172
+ </grammar>
@@ -0,0 +1,3 @@
1
+ Dir[File.dirname(__FILE__) + "/fn/**/*.rb"].each do |f|
2
+ require_dependency f.sub(/\.rb/, '')
3
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require 'fn_document'
16
+
17
+ class Test::Unit::TestCase
18
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestFnDocument < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,150 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fn_document
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.9.2
6
+ platform: ruby
7
+ authors:
8
+ - Nathan Colgate Clark
9
+ - Kyle Maxwell
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2011-07-14 00:00:00 -07:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: shoulda
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :development
26
+ prerelease: false
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: bundler
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: 1.0.0
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: jeweler
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 1.6.4
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: rcov
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :development
59
+ prerelease: false
60
+ version_requirements: *id004
61
+ description: Gem for handling documents within FASI AMS
62
+ email: nathancolgate@gmail.com
63
+ executables: []
64
+
65
+ extensions: []
66
+
67
+ extra_rdoc_files:
68
+ - LICENSE.txt
69
+ - README.rdoc
70
+ files:
71
+ - .document
72
+ - Gemfile
73
+ - Gemfile.lock
74
+ - LICENSE.txt
75
+ - README.rdoc
76
+ - Rakefile
77
+ - VERSION
78
+ - fn_document.gemspec
79
+ - lib/fn/block.rb
80
+ - lib/fn/document.rb
81
+ - lib/fn/migrate.xslt
82
+ - lib/fn/node/base.rb
83
+ - lib/fn/node/context.rb
84
+ - lib/fn/node/root.rb
85
+ - lib/fn/pdf/node/begin_document.rb
86
+ - lib/fn/pdf/node/begin_page_ext.rb
87
+ - lib/fn/pdf/node/create_textflow.rb
88
+ - lib/fn/pdf/node/end_page_ext.rb
89
+ - lib/fn/pdf/node/fit_image.rb
90
+ - lib/fn/pdf/node/fit_pdi_page.rb
91
+ - lib/fn/pdf/node/fit_textflow.rb
92
+ - lib/fn/pdf/node/invert.rb
93
+ - lib/fn/pdf/node/load_image.rb
94
+ - lib/fn/pdf/node/open_pdi.rb
95
+ - lib/fn/pdf/node/open_pdi_page.rb
96
+ - lib/fn/pdf/node/resume_page.rb
97
+ - lib/fn/pdf/node/set_parameter.rb
98
+ - lib/fn/pdf/node/watermark.rb
99
+ - lib/fn/pdf/struct.rb
100
+ - lib/fn/pdf/writer.rb
101
+ - lib/fn/resource.rb
102
+ - lib/fn/swf/node/break.rb
103
+ - lib/fn/swf/node/flash.rb
104
+ - lib/fn/swf/node/font.rb
105
+ - lib/fn/swf/node/frame.rb
106
+ - lib/fn/swf/node/hot_spot.rb
107
+ - lib/fn/swf/node/image.rb
108
+ - lib/fn/swf/node/page.rb
109
+ - lib/fn/swf/node/photo_block.rb
110
+ - lib/fn/swf/node/text.rb
111
+ - lib/fn/swf/struct.rb
112
+ - lib/fn/swf/writer.rb
113
+ - lib/fn/util.rb
114
+ - lib/fn/validation.rng
115
+ - lib/fn_document.rb
116
+ - test/helper.rb
117
+ - test/test_fn_document.rb
118
+ has_rdoc: true
119
+ homepage: http://github.com/nathancolgate/fn_document
120
+ licenses:
121
+ - MIT
122
+ post_install_message:
123
+ rdoc_options: []
124
+
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: -466449568882368545
133
+ segments:
134
+ - 0
135
+ version: "0"
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: "0"
142
+ requirements: []
143
+
144
+ rubyforge_project:
145
+ rubygems_version: 1.6.2
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: Gem for handling documents within FASI AMS
149
+ test_files: []
150
+