jasper-rails 0.1.1 → 0.1.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.
- data/lib/jasper-rails/version.rb +1 -1
- data/lib/jasper-rails.rb +17 -13
- metadata +5 -5
data/lib/jasper-rails/version.rb
CHANGED
data/lib/jasper-rails.rb
CHANGED
@@ -11,6 +11,10 @@ module JasperRails
|
|
11
11
|
classpath << File::PATH_SEPARATOR + File.expand_path(jar)
|
12
12
|
end
|
13
13
|
|
14
|
+
Dir["lib/*.jar"].each do |jar|
|
15
|
+
classpath << File::PATH_SEPARATOR + File.expand_path(jar)
|
16
|
+
end
|
17
|
+
|
14
18
|
Rjb::load( classpath, ['-Djava.awt.headless=true','-Xms128M', '-Xmx256M'] )
|
15
19
|
|
16
20
|
JRException = Rjb::import 'net.sf.jasperreports.engine.JRException'
|
@@ -21,7 +25,7 @@ module JasperRails
|
|
21
25
|
JRXmlUtils = Rjb::import 'net.sf.jasperreports.engine.util.JRXmlUtils'
|
22
26
|
JRXPathQueryExecuterFactory = Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'
|
23
27
|
InputSource = Rjb::import 'org.xml.sax.InputSource'
|
24
|
-
StringReader = Rjb::import 'java.io.StringReader'
|
28
|
+
StringReader = Rjb::import 'java.io.StringReader'
|
25
29
|
HashMap = Rjb::import 'java.util.HashMap'
|
26
30
|
ByteArrayInputStream = Rjb::import 'java.io.ByteArrayInputStream'
|
27
31
|
JavaString = Rjb::import 'java.lang.String'
|
@@ -33,7 +37,7 @@ module JasperRails
|
|
33
37
|
options ||= {}
|
34
38
|
parameters ||= {}
|
35
39
|
jrxml_file = jasper_file.sub(/\.jasper$/, ".jrxml")
|
36
|
-
|
40
|
+
|
37
41
|
begin
|
38
42
|
# Convert the ruby parameters' hash to a java HashMap.
|
39
43
|
# Pay attention that, for now, all parameters are converted to string!
|
@@ -41,26 +45,26 @@ module JasperRails
|
|
41
45
|
parameters.each do |k,v|
|
42
46
|
jasper_params.put(JavaString.new(k.to_s), JavaString.new(v.to_s))
|
43
47
|
end
|
44
|
-
|
48
|
+
|
45
49
|
# Compile it, if needed
|
46
50
|
if !File.exist?(jasper_file) || (File.exist?(jrxml_file) && File.mtime(jrxml_file) > File.mtime(jasper_file))
|
47
51
|
JasperCompileManager.compileReportToFile(jrxml_file, jasper_file)
|
48
52
|
end
|
49
|
-
|
53
|
+
|
50
54
|
# Fill the report
|
51
55
|
input_source = InputSource.new
|
52
56
|
input_source.setCharacterStream(StringReader.new(datasource.to_xml(options).to_s))
|
53
57
|
data_document = silence_warnings do
|
54
|
-
# This is here to avoid the "already initialized constant DOCUMENT_POSITION_*" warnings.
|
55
|
-
# It's harmless. But pretty annoying.
|
58
|
+
# This is here to avoid the "already initialized constant DOCUMENT_POSITION_*" warnings.
|
59
|
+
# It's harmless. But pretty annoying.
|
56
60
|
JRXmlUtils._invoke('parse', 'Lorg.xml.sax.InputSource;', input_source)
|
57
61
|
end
|
58
|
-
|
62
|
+
|
59
63
|
jasper_params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, data_document)
|
60
64
|
jasper_print = JasperFillManager.fillReport(jasper_file, jasper_params)
|
61
|
-
|
65
|
+
|
62
66
|
# Export it!
|
63
|
-
JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print)
|
67
|
+
JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print)
|
64
68
|
rescue Exception=>e
|
65
69
|
if e.respond_to? 'printStackTrace'
|
66
70
|
puts e.message
|
@@ -73,16 +77,16 @@ module JasperRails
|
|
73
77
|
end
|
74
78
|
end
|
75
79
|
end
|
76
|
-
|
80
|
+
|
77
81
|
class ActionController::Responder
|
78
82
|
def to_pdf
|
79
83
|
jasper_file = "app/views/#{controller.controller_path}/#{controller.action_name}.jasper"
|
80
|
-
|
84
|
+
|
81
85
|
params = {}
|
82
|
-
controller.instance_variables.each do |v|
|
86
|
+
controller.instance_variables.each do |v|
|
83
87
|
params[v.to_s[1..-1]] = controller.instance_variable_get(v)
|
84
88
|
end
|
85
|
-
|
89
|
+
|
86
90
|
controller.send_data Jasper::Rails::render_pdf(jasper_file, resource, params, options), :type => Mime::PDF
|
87
91
|
end
|
88
92
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jasper-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-06-28 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rjb
|
17
|
-
requirement: &
|
17
|
+
requirement: &70228495461760 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: 1.4.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70228495461760
|
26
26
|
description: Generate pdf reports on Rails using Jasper Reports reporting tool
|
27
27
|
email: rodrigomaia@grupofortes.com.br
|
28
28
|
executables: []
|
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
65
|
version: '0'
|
66
66
|
requirements: []
|
67
67
|
rubyforge_project:
|
68
|
-
rubygems_version: 1.8.
|
68
|
+
rubygems_version: 1.8.10
|
69
69
|
signing_key:
|
70
70
|
specification_version: 3
|
71
71
|
summary: Rails and JasperReports integration
|