pdf_ravager 0.0.2-java → 0.0.3-java
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.
- data/README.md +1 -0
- data/lib/pdf_ravager/pdf.rb +19 -10
- data/lib/pdf_ravager/ravager.rb +0 -4
- data/lib/pdf_ravager/version.rb +1 -1
- data/pdf_ravager.gemspec +1 -0
- data/spec/pdf_spec.rb +12 -7
- metadata +17 -1
data/README.md
CHANGED
@@ -21,6 +21,7 @@ info = pdf do
|
|
21
21
|
fill 'male', :if => data[:gender] == 'm'
|
22
22
|
fill 'female', :if => data[:gender] == 'f'
|
23
23
|
end
|
24
|
+
check 'related' if data[:relation]
|
24
25
|
checkbox_group 'relation' do
|
25
26
|
check 'parent', :if => ['Mom', 'Dad'].include?(data[:relation])
|
26
27
|
check 'sibling', :if => ['Brother', 'Sister'].include?(data[:relation])
|
data/lib/pdf_ravager/pdf.rb
CHANGED
@@ -17,6 +17,13 @@ module PDFRavager
|
|
17
17
|
@fields << {:name => name, :value => value, :type => :text}
|
18
18
|
end
|
19
19
|
|
20
|
+
def check(name, opts={})
|
21
|
+
return if opts.has_key?(:when) && !opts[:when]
|
22
|
+
return if opts.has_key?(:if) && !opts[:if]
|
23
|
+
return if opts.has_key?(:unless) && opts[:unless]
|
24
|
+
@fields << {:name => name, :value => true, :type => :checkbox}
|
25
|
+
end
|
26
|
+
|
20
27
|
def radio_group(gname, &blk)
|
21
28
|
fields = []
|
22
29
|
# TODO: replace w/ singleton method?
|
@@ -25,7 +32,7 @@ module PDFRavager
|
|
25
32
|
return if opts.has_key?(:when) && !opts[:when]
|
26
33
|
return if opts.has_key?(:if) && !opts[:if]
|
27
34
|
return if opts.has_key?(:unless) && opts[:unless]
|
28
|
-
fields << {:name =>
|
35
|
+
fields << {:name => gname, :value => name, :type => :radio}
|
29
36
|
end
|
30
37
|
blk.call
|
31
38
|
send(:undef_method, :fill)
|
@@ -35,27 +42,29 @@ module PDFRavager
|
|
35
42
|
end
|
36
43
|
|
37
44
|
def checkbox_group(gname, &blk)
|
38
|
-
fields = []
|
39
45
|
# TODO: replace w/ singleton method?
|
40
46
|
PDF.instance_eval do
|
47
|
+
alias_method :__check_original__, :check
|
41
48
|
send(:define_method, :check) do |name, opts={}|
|
42
|
-
|
43
|
-
return if opts.has_key?(:if) && !opts[:if]
|
44
|
-
return if opts.has_key?(:unless) && opts[:unless]
|
45
|
-
fields << {:name => "#{gname}.#{name}", :value => true, :type => :checkbox}
|
49
|
+
__check_original__("#{gname}.#{name}", opts)
|
46
50
|
end
|
47
51
|
blk.call
|
48
|
-
|
52
|
+
# restore check method back to normal
|
53
|
+
alias_method :check, :__check_original__
|
54
|
+
send(:undef_method, :__check_original__)
|
49
55
|
end
|
50
|
-
|
51
|
-
@fields += fields
|
52
56
|
end
|
53
57
|
|
54
58
|
if RUBY_PLATFORM =~ /java/
|
55
59
|
def ravage(file, opts={})
|
56
60
|
PDFRavager::Ravager.open(opts.merge(:in_file => file)) do |pdf|
|
57
61
|
@fields.each do |f|
|
58
|
-
|
62
|
+
value = if f[:type] == :checkbox
|
63
|
+
!!f[:value] ? '1' : '0' # Checkbox default string values
|
64
|
+
else
|
65
|
+
f[:value]
|
66
|
+
end
|
67
|
+
pdf.set_field_value(f[:name], value)
|
59
68
|
end
|
60
69
|
end
|
61
70
|
end
|
data/lib/pdf_ravager/ravager.rb
CHANGED
@@ -32,10 +32,6 @@ module PDFRavager
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def set_field_value(name, value)
|
35
|
-
# Convert boolean values to default checkbox string value
|
36
|
-
if value.instance_of?(TrueClass) || value.instance_of?(FalseClass)
|
37
|
-
value = !!value ? '1' : '0'
|
38
|
-
end
|
39
35
|
# First use AcroForms method
|
40
36
|
begin
|
41
37
|
@afields.setField(XfaForm::Xml2Som::getShortName(SOM.escape(name)), value)
|
data/lib/pdf_ravager/version.rb
CHANGED
data/pdf_ravager.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = %q{DSL to aid filling out AcroForms PDF and XFA documents}
|
14
14
|
|
15
15
|
s.add_dependency "json"
|
16
|
+
s.add_dependency "nokogiri"
|
16
17
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
17
18
|
|
18
19
|
s.files = `git ls-files`.split("\n")
|
data/spec/pdf_spec.rb
CHANGED
@@ -11,6 +11,7 @@ class TestPDF < MiniTest::Unit::TestCase
|
|
11
11
|
text 'text_if_false', 'foo', :if => false
|
12
12
|
text 'text_unless_true', 'foo', :unless => true
|
13
13
|
text 'text_unless_false', 'foo', :unless => false
|
14
|
+
check 'checkbox'
|
14
15
|
radio_group 'radio_group_always_filled' do
|
15
16
|
fill 'foo'
|
16
17
|
end
|
@@ -78,32 +79,36 @@ class TestPDF < MiniTest::Unit::TestCase
|
|
78
79
|
assert_includes @pdf.fields, {:name => 'text_unless_false', :value => 'foo', :type => :text}
|
79
80
|
end
|
80
81
|
|
82
|
+
def test_that_checkbox_is_set
|
83
|
+
assert_includes @pdf.fields, {:name => 'checkbox', :value => true, :type => :checkbox}
|
84
|
+
end
|
85
|
+
|
81
86
|
def test_that_radio_group_always_filled_is_filled
|
82
|
-
assert_includes @pdf.fields, {:name => 'radio_group_always_filled
|
87
|
+
assert_includes @pdf.fields, {:name => 'radio_group_always_filled', :value => 'foo', :type => :radio}
|
83
88
|
end
|
84
89
|
|
85
90
|
def test_that_radio_group_when_true_is_set
|
86
|
-
assert_includes @pdf.fields, {:name => 'radio_group_when
|
91
|
+
assert_includes @pdf.fields, {:name => 'radio_group_when', :value => 'true', :type => :radio}
|
87
92
|
end
|
88
93
|
|
89
94
|
def test_that_radio_group_when_false_is_not_set
|
90
|
-
refute_includes @pdf.fields, {:name => 'radio_group_when
|
95
|
+
refute_includes @pdf.fields, {:name => 'radio_group_when', :value => 'false', :type => :radio}
|
91
96
|
end
|
92
97
|
|
93
98
|
def test_that_radio_group_if_true_is_set
|
94
|
-
assert_includes @pdf.fields, {:name => 'radio_group_if
|
99
|
+
assert_includes @pdf.fields, {:name => 'radio_group_if', :value => 'true', :type => :radio}
|
95
100
|
end
|
96
101
|
|
97
102
|
def test_that_radio_group_if_false_is_not_set
|
98
|
-
refute_includes @pdf.fields, {:name => 'radio_group_if
|
103
|
+
refute_includes @pdf.fields, {:name => 'radio_group_if', :value => 'false', :type => :radio}
|
99
104
|
end
|
100
105
|
|
101
106
|
def test_that_radio_group_unless_true_is_not_set
|
102
|
-
refute_includes @pdf.fields, {:name => 'radio_group_unless
|
107
|
+
refute_includes @pdf.fields, {:name => 'radio_group_unless', :value => 'true', :type => :radio}
|
103
108
|
end
|
104
109
|
|
105
110
|
def test_that_radio_group_unless_false_is_set
|
106
|
-
assert_includes @pdf.fields, {:name => 'radio_group_unless
|
111
|
+
assert_includes @pdf.fields, {:name => 'radio_group_unless', :value => 'false', :type => :radio}
|
107
112
|
end
|
108
113
|
|
109
114
|
def test_that_checkbox_group_always_checked_is_checked
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: pdf_ravager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Abe Voelker
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
none: false
|
28
28
|
prerelease: false
|
29
29
|
type: :runtime
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: nokogiri
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
none: false
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
type: :runtime
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: bundler
|
32
48
|
version_requirements: !ruby/object:Gem::Requirement
|