hashed-jasper-rails 0.1.0

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/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rspec", "~> 2.8.0"
10
+ gem "rdoc", "~> 3.12"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.8.3"
13
+ end
14
+
15
+ gem 'rjb', '>= 1.4.0'
16
+
17
+ group :test do
18
+ gem 'rr', "~> 1.0.0"
19
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.3)
5
+ git (1.2.5)
6
+ jeweler (1.8.3)
7
+ bundler (~> 1.0)
8
+ git (>= 1.2.5)
9
+ rake
10
+ rdoc
11
+ json (1.7.3)
12
+ rake (0.9.2.2)
13
+ rdoc (3.12)
14
+ json (~> 1.4)
15
+ rjb (1.4.0)
16
+ rr (1.0.4)
17
+ rspec (2.8.0)
18
+ rspec-core (~> 2.8.0)
19
+ rspec-expectations (~> 2.8.0)
20
+ rspec-mocks (~> 2.8.0)
21
+ rspec-core (2.8.0)
22
+ rspec-expectations (2.8.0)
23
+ diff-lcs (~> 1.1.2)
24
+ rspec-mocks (2.8.0)
25
+
26
+ PLATFORMS
27
+ ruby
28
+
29
+ DEPENDENCIES
30
+ bundler (~> 1.0.0)
31
+ jeweler (~> 1.8.3)
32
+ rdoc (~> 3.12)
33
+ rjb (>= 1.4.0)
34
+ rr (~> 1.0.0)
35
+ rspec (~> 2.8.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Kazuhisa Yamamoto
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,57 @@
1
+ = hashed-jasper-rails
2
+
3
+ Hashed-jasper-rails was inspired by jasper-rails.(https://github.com/fortesinformatica/jasper-rails)
4
+ This can use hash as a data source.
5
+
6
+ == How to use
7
+
8
+ (1) Add your Gemfile.
9
+ gem "hashed-jasper-rails"
10
+
11
+ (2) Add action method.
12
+ # app/controllers/users_controller.rb
13
+
14
+ def print
15
+ users = [
16
+ {:name => "Izumi Konata", :email => "konata@example.com"},
17
+ {:name => "Hiiragi Tsukasa", :email => "tsukasa@example.com"},
18
+ {:name => "Hiiragi Kagami", :email => "kagami@example.com"}
19
+ ]
20
+ jasper_pdf :resource => users
21
+ end
22
+
23
+ (3) Edit a jasper template file.
24
+ Template propaties.
25
+ Query Text: /jasper/record
26
+ The language for the dataset query: xPath
27
+
28
+ for Japanese.
29
+ Text Field propaties.
30
+ Pdf Font: HeiseiMin-W3 or HeiseiKakuGo-W5
31
+ Pdf Encoding: UniJIS-UCS2-H (Japanese)
32
+
33
+ (4) Set a jasper template file.
34
+ # app/views/users/print.jaster
35
+
36
+ == Options.
37
+
38
+ (1) Set a model and record name.
39
+ jasper_pdf :resource => users, :model => "foo", :record => "baa"
40
+
41
+ Then template propaties.
42
+ Query Text: /foo/baa
43
+
44
+ (2) Set a template file.
45
+ jasper_pdf :resource => users, :template => "list"
46
+
47
+ Then use this template file.
48
+ # app/views/users/list.jaster
49
+
50
+ (3) Use ActiveRecord resource.
51
+ user = User.all
52
+ jasper_pdf :resource => users
53
+
54
+ == Copyright
55
+
56
+ Copyright (c) 2012 Kazuhisa Yamamoto. See LICENSE.txt for
57
+ further details.
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "hashed-jasper-rails"
18
+ gem.homepage = "http://github.com/kazuhisa/hashed-jasper-rails"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Report tool}
21
+ gem.description = %Q{Generate pdf reports on Rails using Jasper Reports reporting tool}
22
+ gem.email = "ak.hisashi@gmail.com"
23
+ gem.authors = ["Kazuhisa Yamamoto"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rdoc/task'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "hashed-jasper-rails #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,77 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "hashed-jasper-rails"
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Kazuhisa Yamamoto"]
12
+ s.date = "2012-05-28"
13
+ s.description = "Generate pdf reports on Rails using Jasper Reports reporting tool"
14
+ s.email = "ak.hisashi@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "hashed-jasper-rails.gemspec",
29
+ "lib/hashed-jasper-rails.rb",
30
+ "lib/hashed-jasper-rails/jasper-rails.rb",
31
+ "lib/hashed-jasper-rails/jasper_source_builder.rb",
32
+ "lib/java/commons-beanutils-1.8.2.jar",
33
+ "lib/java/commons-collections-3.2.1.jar",
34
+ "lib/java/commons-digester-2.1.jar",
35
+ "lib/java/commons-logging-1.1.jar",
36
+ "lib/java/groovy-all-1.7.5.jar",
37
+ "lib/java/iText-2.1.7.jar",
38
+ "lib/java/iTextAsian.jar",
39
+ "lib/java/jasperreports-4.5.1.jar",
40
+ "lib/java/jcommon-1.0.15.jar",
41
+ "lib/java/jfreechart-1.0.12.jar",
42
+ "lib/java/xalan.jar",
43
+ "spec/fake_app.rb",
44
+ "spec/hashed-jasper-rails_spec.rb",
45
+ "spec/spec_helper.rb"
46
+ ]
47
+ s.homepage = "http://github.com/kazuhisa/hashed-jasper-rails"
48
+ s.licenses = ["MIT"]
49
+ s.require_paths = ["lib"]
50
+ s.rubygems_version = "1.8.15"
51
+ s.summary = "Report tool"
52
+
53
+ if s.respond_to? :specification_version then
54
+ s.specification_version = 3
55
+
56
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
+ s.add_runtime_dependency(%q<rjb>, [">= 1.4.0"])
58
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
59
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
60
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
62
+ else
63
+ s.add_dependency(%q<rjb>, [">= 1.4.0"])
64
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
65
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
66
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
68
+ end
69
+ else
70
+ s.add_dependency(%q<rjb>, [">= 1.4.0"])
71
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
72
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
73
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
74
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
75
+ end
76
+ end
77
+
@@ -0,0 +1,75 @@
1
+ # see.
2
+ # https://github.com/fortesinformatica/jasper-rails
3
+
4
+ require "rjb"
5
+
6
+ module JasperRails
7
+
8
+ classpath = '.'
9
+ Dir["#{File.dirname(__FILE__)}/../java/*.jar"].each do |jar|
10
+ classpath << File::PATH_SEPARATOR + File.expand_path(jar)
11
+ end
12
+
13
+ Rjb::load( classpath, ['-Djava.awt.headless=true','-Xms128M', '-Xmx256M'] )
14
+
15
+ JRException = Rjb::import 'net.sf.jasperreports.engine.JRException'
16
+ JasperCompileManager = Rjb::import 'net.sf.jasperreports.engine.JasperCompileManager'
17
+ JasperExportManager = Rjb::import 'net.sf.jasperreports.engine.JasperExportManager'
18
+ JasperFillManager = Rjb::import 'net.sf.jasperreports.engine.JasperFillManager'
19
+ JasperPrint = Rjb::import 'net.sf.jasperreports.engine.JasperPrint'
20
+ JRXmlUtils = Rjb::import 'net.sf.jasperreports.engine.util.JRXmlUtils'
21
+ JRXPathQueryExecuterFactory = Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'
22
+ InputSource = Rjb::import 'org.xml.sax.InputSource'
23
+ StringReader = Rjb::import 'java.io.StringReader'
24
+ HashMap = Rjb::import 'java.util.HashMap'
25
+ ByteArrayInputStream = Rjb::import 'java.io.ByteArrayInputStream'
26
+ JavaString = Rjb::import 'java.lang.String'
27
+ JFreeChart = Rjb::import 'org.jfree.chart.JFreeChart'
28
+
29
+ module Jasper
30
+ module Rails
31
+ def self.render_pdf(jasper_file, datasource, parameters, options)
32
+ options ||= {}
33
+ parameters ||= {}
34
+ jrxml_file = jasper_file.sub(/\.jasper$/, ".jrxml")
35
+
36
+ begin
37
+ # Convert the ruby parameters' hash to a java HashMap.
38
+ # Pay attention that, for now, all parameters are converted to string!
39
+ jasper_params = HashMap.new
40
+ parameters.each do |k,v|
41
+ jasper_params.put(JavaString.new(k.to_s), JavaString.new(v.to_s))
42
+ end
43
+
44
+ # Compile it, if needed
45
+ if !File.exist?(jasper_file) || (File.exist?(jrxml_file) && File.mtime(jrxml_file) > File.mtime(jasper_file))
46
+ JasperCompileManager.compileReportToFile(jrxml_file, jasper_file)
47
+ end
48
+
49
+ # Fill the report
50
+ input_source = InputSource.new
51
+ input_source.setCharacterStream(StringReader.new(datasource.to_xml(options).to_s))
52
+ data_document = silence_warnings do
53
+ # This is here to avoid the "already initialized constant DOCUMENT_POSITION_*" warnings.
54
+ # It's harmless. But pretty annoying.
55
+ JRXmlUtils._invoke('parse', 'Lorg.xml.sax.InputSource;', input_source)
56
+ end
57
+
58
+ jasper_params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, data_document)
59
+ jasper_print = JasperFillManager.fillReport(jasper_file, jasper_params)
60
+
61
+ # Export it!
62
+ JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print)
63
+ rescue Exception=>e
64
+ if e.respond_to? 'printStackTrace'
65
+ puts e.message
66
+ e.printStackTrace
67
+ else
68
+ puts e.message
69
+ puts e.backtrace
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "rexml/document"
3
+
4
+ class JasperSourceBuilder
5
+ def initialize(data_source, model, record)
6
+ @out_doc = REXML::Document.new()
7
+ @out_doc.add(REXML::XMLDecl.new(version="1.0", encoding="UTF-8"))
8
+ elem = REXML::Element.new(model)
9
+ elem.add_attribute("type","array")
10
+
11
+ data_source.each do |data|
12
+ row = REXML::Element.new(record)
13
+ data.each_pair do |k,v|
14
+ cell = REXML::Element.new(k.to_s)
15
+ cell.add_text(v.to_s)
16
+ row.add_element(cell)
17
+ end
18
+ elem.add_element(row)
19
+ end
20
+ @out_doc.add(elem)
21
+ end
22
+
23
+ def to_xml(dummy)
24
+ @out_doc.to_s
25
+ end
26
+ end
27
+
28
+ class ActionController::Base
29
+ private
30
+ def jasper_pdf(arg)
31
+ model_name = arg[:model] || "jasper"
32
+ record_name = arg[:record] || "record"
33
+ unless arg[:template].nil?
34
+ jasper_file = File.join("app/views",arg[:template])
35
+ jasper_file += ".jasper" unless jasper_file =~ /.jasper$/
36
+ else
37
+ jasper_file = File.join("app/views",params[:controller],params[:action]) + ".jasper"
38
+ end
39
+ if arg[:resource].size > 0 && arg[:resource][0].kind_of?(Hash)
40
+ resource = JasperSourceBuilder.new(arg[:resource], model_name, record_name)
41
+ else
42
+ resource = arg[:resource]
43
+ end
44
+ options = arg[:options] || {}
45
+ send_data JasperRails::Jasper::Rails.render_pdf(jasper_file, resource, params, options), :type => Mime::PDF
46
+ end
47
+ end
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'hashed-jasper-rails/jasper-rails'
4
+ require 'hashed-jasper-rails/jasper_source_builder'
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/spec/fake_app.rb ADDED
@@ -0,0 +1,9 @@
1
+ class ActionController
2
+ class Base
3
+ # dummy
4
+ end
5
+ end
6
+
7
+ class Mime
8
+ PDF = "application/pdf"
9
+ end
@@ -0,0 +1,90 @@
1
+ require File.join(File.dirname(__FILE__), 'fake_app')
2
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
+
4
+ module RR::Adapters::RRMethods
5
+ def rrsatisfy(&block)
6
+ RR::WildcardMatchers::Satisfy.new(block)
7
+ end
8
+ end
9
+
10
+ describe "JasperSourceBuilder" do
11
+ before "create jasper source" do
12
+ record = [
13
+ {:name => "Izumi Konata", :email => "konata@example.com"},
14
+ {:name => "Hiiragi Tsukasa", :email => "tsukasa@example.com"},
15
+ {:name => "Hiiragi Kagami", :email => "kagami@example.com"}
16
+ ]
17
+ @jasper_source_builder = JasperSourceBuilder.new(record,"jasper","record")
18
+ end
19
+ it "create xml" do
20
+ xml = <<-EOS
21
+ <?xml version='1.0' encoding='UTF-8'?>
22
+ <jasper type='array'>
23
+ <record>
24
+ <name>Izumi Konata</name>
25
+ <email>konata@example.com</email>
26
+ </record>
27
+ <record>
28
+ <name>Hiiragi Tsukasa</name>
29
+ <email>tsukasa@example.com</email>
30
+ </record>
31
+ <record>
32
+ <name>Hiiragi Kagami</name>
33
+ <email>kagami@example.com</email>
34
+ </record>
35
+ </jasper>
36
+ EOS
37
+ @jasper_source_builder.to_xml(nil).should == xml.gsub("\n","").gsub(/ +</,"<")
38
+ end
39
+ end
40
+
41
+ describe "jasper_pdf method" do
42
+ before "output pdf" do
43
+ class Controller < ActionController::Base
44
+ def output(arg)
45
+ jasper_pdf(arg)
46
+ end
47
+
48
+ def params
49
+ {:controller => "people",:action => "index"}
50
+ end
51
+
52
+ def send_data(*arg)
53
+ # pass
54
+ end
55
+ end
56
+ @controller = Controller.new
57
+
58
+ end
59
+ it "args in resource" do
60
+ arg = {:resource => [{:name => "Konata", :age => 16}]}
61
+ mock(JasperRails::Jasper::Rails).render_pdf("app/views/people/index.jasper",
62
+ rrsatisfy{|arg| arg.to_xml(0) == "<?xml version='1.0' encoding='UTF-8'?><jasper type='array'><record><name>Konata</name><age>16</age></record></jasper>"},
63
+ {:controller=>"people", :action=>"index"},{}){nil}
64
+ @controller.output(arg)
65
+ end
66
+
67
+ it "args in resource and model and record" do
68
+ arg = {:resource => [{:name => "Konata", :age => 16}], :model => "model_name", :record => "record_name"}
69
+ mock(JasperRails::Jasper::Rails).render_pdf("app/views/people/index.jasper",
70
+ rrsatisfy{|arg| arg.to_xml(0) == "<?xml version='1.0' encoding='UTF-8'?><model_name type='array'><record_name><name>Konata</name><age>16</age></record_name></model_name>"},
71
+ {:controller=>"people", :action=>"index"},{}){nil}
72
+ @controller.output(arg)
73
+ end
74
+
75
+ it "args in resource and template" do
76
+ arg = {:resource => [{:name => "Konata", :age => 16}],:template => "people/print"}
77
+ mock(JasperRails::Jasper::Rails).render_pdf("app/views/people/print.jasper",
78
+ rrsatisfy{|arg| arg.to_xml(0) == "<?xml version='1.0' encoding='UTF-8'?><jasper type='array'><record><name>Konata</name><age>16</age></record></jasper>"},
79
+ {:controller=>"people", :action=>"index"},{}){nil}
80
+ @controller.output(arg)
81
+ end
82
+
83
+ it "args in resource and template with extention" do
84
+ arg = {:resource => [{:name => "Konata", :age => 16}],:template => "people/print.jasper"}
85
+ mock(JasperRails::Jasper::Rails).render_pdf("app/views/people/print.jasper",
86
+ rrsatisfy{|arg| arg.to_xml(0) == "<?xml version='1.0' encoding='UTF-8'?><jasper type='array'><record><name>Konata</name><age>16</age></record></jasper>"},
87
+ {:controller=>"people", :action=>"index"},{}){nil}
88
+ @controller.output(arg)
89
+ end
90
+ end
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'hashed-jasper-rails'
5
+ require 'rspec'
6
+
7
+ # Requires supporting files with custom matchers and macros, etc,
8
+ # in ./support/ and its subdirectories.
9
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
10
+
11
+ RSpec.configure do |config|
12
+ config.mock_with :rr
13
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hashed-jasper-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kazuhisa Yamamoto
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rjb
16
+ requirement: &70167451417620 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.4.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70167451417620
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70167451415840 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.8.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70167451415840
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &70167451415120 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '3.12'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70167451415120
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: &70167451414220 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70167451414220
58
+ - !ruby/object:Gem::Dependency
59
+ name: jeweler
60
+ requirement: &70167451412300 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 1.8.3
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70167451412300
69
+ description: Generate pdf reports on Rails using Jasper Reports reporting tool
70
+ email: ak.hisashi@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files:
74
+ - LICENSE.txt
75
+ - README.rdoc
76
+ files:
77
+ - .document
78
+ - .rspec
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - LICENSE.txt
82
+ - README.rdoc
83
+ - Rakefile
84
+ - VERSION
85
+ - hashed-jasper-rails.gemspec
86
+ - lib/hashed-jasper-rails.rb
87
+ - lib/hashed-jasper-rails/jasper-rails.rb
88
+ - lib/hashed-jasper-rails/jasper_source_builder.rb
89
+ - lib/java/commons-beanutils-1.8.2.jar
90
+ - lib/java/commons-collections-3.2.1.jar
91
+ - lib/java/commons-digester-2.1.jar
92
+ - lib/java/commons-logging-1.1.jar
93
+ - lib/java/groovy-all-1.7.5.jar
94
+ - lib/java/iText-2.1.7.jar
95
+ - lib/java/iTextAsian.jar
96
+ - lib/java/jasperreports-4.5.1.jar
97
+ - lib/java/jcommon-1.0.15.jar
98
+ - lib/java/jfreechart-1.0.12.jar
99
+ - lib/java/xalan.jar
100
+ - spec/fake_app.rb
101
+ - spec/hashed-jasper-rails_spec.rb
102
+ - spec/spec_helper.rb
103
+ homepage: http://github.com/kazuhisa/hashed-jasper-rails
104
+ licenses:
105
+ - MIT
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ segments:
117
+ - 0
118
+ hash: -2600483218779018077
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 1.8.15
128
+ signing_key:
129
+ specification_version: 3
130
+ summary: Report tool
131
+ test_files: []