jasper-rails 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  .DS_Store
6
+ .project
@@ -0,0 +1,21 @@
1
+
2
+ Copyright (C) 2012 Marlus Saraiva, Rodrigo Maia
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining
5
+ a copy of this software and associated documentation files (the
6
+ "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish,
8
+ distribute, sublicense, and/or sell copies of the Software, and to
9
+ permit persons to whom the Software is furnished to do so, subject to
10
+ the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,123 @@
1
+ # jasper-rails
2
+
3
+ JasperReports/Rails integration using Rjb (Ruby Java Bridge)
4
+
5
+ For rspec integration, see: [jasper-rails-rspec](http://github.com/fortesinformatica/jasper-rails-rspec).
6
+
7
+ # News!
8
+
9
+ Updated to JasperReports 4.7.1
10
+
11
+ ## Dependencies
12
+
13
+ You need a Java Virtual Machine installed and set up in order to use this gem.
14
+
15
+ ## Install
16
+
17
+ ```
18
+ gem install jasper-rails
19
+ ```
20
+
21
+ ## Configure
22
+
23
+ Add `jasper-rails` to your Gemfile:
24
+
25
+ ```ruby
26
+ gem "jasper-rails"
27
+ ```
28
+
29
+ Note: If you're running your application on OS X, this is usually all you have to do. On Linux, you might have
30
+ to set the JAVA_HOME. On Windows, good luck!
31
+
32
+ For any issues related to the java/ruby integration, please check out: [http://rjb.rubyforge.org/](http://rjb.rubyforge.org/). You will find here plenty tips that might help you to solve your problem.
33
+
34
+ ## Using jasper-rails
35
+
36
+ 1) Tell your controller that it "responds to" :pdf and it "responds with" some list:
37
+
38
+ Note: This list will become your datasource inside the report.
39
+
40
+ ```ruby
41
+ respond_to :html, :xml, :pdf
42
+
43
+ def index
44
+ @people = Person.all
45
+ respond_with @people
46
+ end
47
+ ```
48
+
49
+ 2) Create your jasper report source file using iReport or any compatible jasper tool.
50
+
51
+ 3) Set the "Query Text" and "The language for the dataset query" properties of your report.
52
+
53
+ Note: If you're using iReport, you can find those properties in the "Properties panel".
54
+ Don't forget to select the report root node in your "Report inspector".
55
+
56
+ Example: If you have a list of people, you should have something like:
57
+ * "Query Text" = /people/person
58
+ * "The language for the dataset query" = xpath
59
+
60
+ 4) Design your report (add fields, groups, images, etc.)
61
+
62
+ 5) Save the report source file in your views folder (just like any other html view file):
63
+
64
+ Example:
65
+
66
+ * app/views/people/index.jrxml
67
+
68
+ ## Parameters
69
+
70
+ ```ruby
71
+ def index
72
+ @people = Person.all
73
+
74
+ # This variable will be available in your report!
75
+ @user = "John Doe"
76
+
77
+ respond_with @people
78
+ end
79
+ ```
80
+
81
+ All you have to do now is to create, in iReport, a parameter called "user" (yes, without the "@") and drop it in your report!
82
+
83
+ Limitation: By now, all parameters are converted to java String. We intend to change this in the near future.
84
+
85
+ ## RSpec integration
86
+ Check out: [jasper-rails-rspec](http://github.com/fortesinformatica/jasper-rails-rspec).
87
+
88
+ ## DEMO
89
+ For a running example, just clone: [jasper-rails-demo](http://github.com/fortesinformatica/jasper-rails-demo).
90
+
91
+ ## History
92
+ This project was first developed at Grupo Fortes in 2011 and we have been using it in several projects since then.
93
+ Pay attention that all the features it supports right now were based in those project's especific needs. Therefore you might find a lot of
94
+ JasperResports' features that are not yet supported. So, use it at your own risk!
95
+
96
+ ## TODO
97
+ * Configuration
98
+ * Better error treatment
99
+ * More RSpec matchers
100
+ * SPECS!!!
101
+
102
+ ## LICENSE
103
+
104
+ Copyright (C) 2012 Marlus Saraiva, Rodrigo Maia
105
+
106
+ Permission is hereby granted, free of charge, to any person obtaining
107
+ a copy of this software and associated documentation files (the
108
+ "Software"), to deal in the Software without restriction, including
109
+ without limitation the rights to use, copy, modify, merge, publish,
110
+ distribute, sublicense, and/or sell copies of the Software, and to
111
+ permit persons to whom the Software is furnished to do so, subject to
112
+ the following conditions:
113
+
114
+ The above copyright notice and this permission notice shall be
115
+ included in all copies or substantial portions of the Software.
116
+
117
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
118
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
119
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
120
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
121
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
122
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
123
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,8 +1,32 @@
1
+ #
2
+ # Copyright (C) 2012 Marlus Saraiva, Rodrigo Maia
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+
1
23
  require "jasper-rails/version"
2
24
  require "rails"
3
25
  require "rjb"
4
26
 
5
- Mime::Type.register "application/pdf", :pdf
27
+ if Mime::Type.lookup_by_extension("pdf").nil?
28
+ Mime::Type.register "application/pdf", :pdf
29
+ end
6
30
 
7
31
  module JasperRails
8
32
 
@@ -10,7 +34,7 @@ module JasperRails
10
34
  Dir["#{File.dirname(__FILE__)}/java/*.jar"].each do |jar|
11
35
  classpath << File::PATH_SEPARATOR + File.expand_path(jar)
12
36
  end
13
-
37
+
14
38
  Dir["lib/*.jar"].each do |jar|
15
39
  classpath << File::PATH_SEPARATOR + File.expand_path(jar)
16
40
  end
@@ -23,7 +47,8 @@ module JasperRails
23
47
  JasperFillManager = Rjb::import 'net.sf.jasperreports.engine.JasperFillManager'
24
48
  JasperPrint = Rjb::import 'net.sf.jasperreports.engine.JasperPrint'
25
49
  JRXmlUtils = Rjb::import 'net.sf.jasperreports.engine.util.JRXmlUtils'
26
- JRXPathQueryExecuterFactory = Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'
50
+ # This is here to avoid the "already initialized constant QUERY_EXECUTER_FACTORY_PREFIX" warnings.
51
+ JRXPathQueryExecuterFactory = silence_warnings{Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'}
27
52
  InputSource = Rjb::import 'org.xml.sax.InputSource'
28
53
  StringReader = Rjb::import 'java.io.StringReader'
29
54
  HashMap = Rjb::import 'java.util.HashMap'
@@ -56,7 +81,6 @@ module JasperRails
56
81
  input_source.setCharacterStream(StringReader.new(datasource.to_xml(options).to_s))
57
82
  data_document = silence_warnings do
58
83
  # This is here to avoid the "already initialized constant DOCUMENT_POSITION_*" warnings.
59
- # It's harmless. But pretty annoying.
60
84
  JRXmlUtils._invoke('parse', 'Lorg.xml.sax.InputSource;', input_source)
61
85
  end
62
86
 
@@ -1,4 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  module JasperRails
3
- VERSION = "0.1.2"
3
+ VERSION = "1.0.0"
4
4
  end
metadata CHANGED
@@ -1,36 +1,50 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jasper-rails
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ - 0
9
+ version: 1.0.0
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Marlus Saraiva
9
13
  - Rodrigo Maia
10
14
  autorequire:
11
15
  bindir: bin
12
16
  cert_chain: []
13
- date: 2012-06-28 00:00:00.000000000Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-10-04 00:00:00 -03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
16
22
  name: rjb
17
- requirement: &70228495461760 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 1
30
+ - 4
31
+ - 0
22
32
  version: 1.4.0
23
33
  type: :runtime
24
- prerelease: false
25
- version_requirements: *70228495461760
34
+ version_requirements: *id001
26
35
  description: Generate pdf reports on Rails using Jasper Reports reporting tool
27
36
  email: rodrigomaia@grupofortes.com.br
28
37
  executables: []
38
+
29
39
  extensions: []
40
+
30
41
  extra_rdoc_files: []
31
- files:
42
+
43
+ files:
32
44
  - .gitignore
33
45
  - Gemfile
46
+ - LICENSE.txt
47
+ - README.md
34
48
  - Rakefile
35
49
  - jasper-rails.gemspec
36
50
  - lib/jasper-rails.rb
@@ -41,32 +55,39 @@ files:
41
55
  - lib/java/commons-logging-1.1.jar
42
56
  - lib/java/groovy-all-1.7.5.jar
43
57
  - lib/java/iText-2.1.7.jar
44
- - lib/java/jasperreports-4.5.1.jar
58
+ - lib/java/jasperreports-4.7.1.jar
45
59
  - lib/java/jcommon-1.0.15.jar
46
60
  - lib/java/jfreechart-1.0.12.jar
47
61
  - lib/java/xalan.jar
62
+ has_rdoc: true
48
63
  homepage: https://github.com/fortesinformatica/jasper-rails
49
64
  licenses: []
65
+
50
66
  post_install_message:
51
67
  rdoc_options: []
52
- require_paths:
68
+
69
+ require_paths:
53
70
  - lib
54
- required_ruby_version: !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ! '>='
58
- - !ruby/object:Gem::Version
59
- version: '0'
60
- required_rubygems_version: !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ segments:
83
+ - 0
84
+ version: "0"
66
85
  requirements: []
86
+
67
87
  rubyforge_project:
68
- rubygems_version: 1.8.10
88
+ rubygems_version: 1.3.6
69
89
  signing_key:
70
90
  specification_version: 3
71
91
  summary: Rails and JasperReports integration
72
92
  test_files: []
93
+