reportbuilder 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/README.txt +12 -12
- data/Rakefile +1 -0
- data/lib/reportbuilder.rb +2 -1
- data/lib/reportbuilder/builder/rtf.rb +15 -2
- data/lib/reportbuilder/table/textbuilder.rb +4 -0
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
=== 1.2.1 / 2010-03-29
|
2
|
+
* ReportBuilder#add returns self, to create chain of adds
|
3
|
+
* Changes on documentation, replacing Generator for Builder
|
4
|
+
|
1
5
|
=== 1.2.0 / 2010-03-28
|
2
6
|
*ReporBuilder::Table
|
3
7
|
* Colspans works as expected on Html and Text. On Rtf the cells doesn't merge, because ruby-rtf doesn't support it.
|
data/README.txt
CHANGED
@@ -21,16 +21,16 @@ Report Abstract Interface. Creates text, html and rtf output, based on a common
|
|
21
21
|
* report_building or
|
22
22
|
* to_s
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
24
|
+
require "reportbuilder"
|
25
|
+
rb=ReportBuilder.new
|
26
|
+
rb.add(2) # Int#to_s used
|
27
|
+
table=ReportBuilder::Table.new(:name=>"Table", :header=>%w{id name})
|
28
|
+
table.row([1,"John"])
|
29
|
+
rb.add(table) # table have a #report_building method
|
30
|
+
rb.add("Another text") # used directly
|
31
|
+
rb.name="Text output"
|
32
|
+
puts rb.to_text
|
33
|
+
rb.save_rtf("test.rtf") # You could save files, too
|
34
34
|
|
35
35
|
* Using a block, you can control directly the generator
|
36
36
|
|
@@ -49,9 +49,9 @@ Report Abstract Interface. Creates text, html and rtf output, based on a common
|
|
49
49
|
|
50
50
|
== DEVELOPERS
|
51
51
|
|
52
|
-
If you want to give support to your class, create a method called #report_building(
|
52
|
+
If you want to give support to your class, create a method called #report_building(b), which accept a ReportBuilder::Builder as argument. If you need fine control of output according to format, append the name of format, like #report_building_html, #report_building_text.
|
53
53
|
|
54
|
-
See ReportBuilder::
|
54
|
+
See ReportBuilder::Builder for API and ReportBuilder::Table, ReportBuilder::Image and ReportBuilder::Section for examples of implementation. Also, Statsample package object uses report_building on almost every class.
|
55
55
|
|
56
56
|
== REQUIREMENTS:
|
57
57
|
|
data/Rakefile
CHANGED
@@ -20,6 +20,7 @@ task :release => [:tag] do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
task :tag do
|
23
|
+
sh %(svn commit -m "Version bump: #{ReportBuilder::VERSION}")
|
23
24
|
sh %(svn cp https://ruby-statsample.googlecode.com/svn/reportbuilder/trunk https://ruby-statsample.googlecode.com/svn/reportbuilder/tags/v#{ReportBuilder::VERSION} -m "ReportBuilder #{ReportBuilder::VERSION} tagged")
|
24
25
|
end
|
25
26
|
|
data/lib/reportbuilder.rb
CHANGED
@@ -53,7 +53,7 @@ class ReportBuilder
|
|
53
53
|
# Doesn't print a title if set to true
|
54
54
|
attr_accessor :no_title
|
55
55
|
# ReportBuilder version
|
56
|
-
VERSION = '1.2.
|
56
|
+
VERSION = '1.2.1'
|
57
57
|
|
58
58
|
FormatNotFound=Class.new(Exception)
|
59
59
|
# Available formats
|
@@ -103,6 +103,7 @@ class ReportBuilder
|
|
103
103
|
# Otherwise, the element itself will be added
|
104
104
|
def add(element)
|
105
105
|
@elements.push(element)
|
106
|
+
self
|
106
107
|
end
|
107
108
|
# Returns an Html output
|
108
109
|
def to_html()
|
@@ -3,13 +3,21 @@ require 'pp'
|
|
3
3
|
class ReportBuilder
|
4
4
|
class Builder
|
5
5
|
# Rtf Builder.
|
6
|
-
# Based on ruby-rtf (http://ruby-rtf.rubyforge.org/)
|
6
|
+
# Based on ruby-rtf (http://ruby-rtf.rubyforge.org/).
|
7
7
|
#
|
8
8
|
class Rtf < Builder
|
9
9
|
# RTF::Document object.
|
10
10
|
# See http://ruby-rtf.rubyforge.org/ for documentation
|
11
11
|
attr_accessor :rtf
|
12
12
|
include RTF
|
13
|
+
# Creates a new Rtf object
|
14
|
+
# Params:
|
15
|
+
# * <tt>builder</tt>: A ReportBuilder::Builder object or other with same interface
|
16
|
+
# * <tt>options</tt>: Hash of options.
|
17
|
+
# * <tt>:font</tt>: Font family. Default to "Times New Roman"
|
18
|
+
# * <tt>:font_size</tt>: Font size. Default to 20
|
19
|
+
# * <tt>:table_border_width</tt>
|
20
|
+
# * <tt>:table_hr_width</tt>
|
13
21
|
def initialize(builder, options)
|
14
22
|
super
|
15
23
|
@font=Font.new(Font::ROMAN, @options[:font])
|
@@ -47,6 +55,7 @@ class ReportBuilder
|
|
47
55
|
:table_hr_width=>25
|
48
56
|
}
|
49
57
|
end
|
58
|
+
# Add a paragraph of text.
|
50
59
|
def text(*args,&block)
|
51
60
|
if args.size==1 and args[0].is_a? String and !block
|
52
61
|
@rtf.paragraph << args[0]
|
@@ -54,6 +63,7 @@ class ReportBuilder
|
|
54
63
|
@rtf.paragraph(*args,&block)
|
55
64
|
end
|
56
65
|
end
|
66
|
+
# Add a header of level <tt>level</tt> with text <tt>t</tt>
|
57
67
|
def header(level,t)
|
58
68
|
@rtf.paragraph(@header_styles[level][:ps]) do |n1|
|
59
69
|
n1.apply(@header_styles[level][:cs]) do |n2|
|
@@ -63,6 +73,7 @@ class ReportBuilder
|
|
63
73
|
end
|
64
74
|
end
|
65
75
|
end
|
76
|
+
# Add preformatted text. By default, uses Courier
|
66
77
|
def preformatted(t)
|
67
78
|
@rtf.paragraph(@pre_par) do |n1|
|
68
79
|
n1.apply(@pre_char) do |n2|
|
@@ -74,14 +85,16 @@ class ReportBuilder
|
|
74
85
|
end
|
75
86
|
|
76
87
|
end
|
77
|
-
|
88
|
+
# Returns rtf code for report
|
78
89
|
def out
|
79
90
|
@rtf.to_rtf
|
80
91
|
end
|
92
|
+
# Save rtf file
|
81
93
|
def save(filename)
|
82
94
|
File.open(filename,'wb') {|file| file.write(@rtf.to_rtf)
|
83
95
|
}
|
84
96
|
end
|
97
|
+
# Do nothing on this builder
|
85
98
|
def html(t)
|
86
99
|
# Nothing
|
87
100
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 1.2.
|
8
|
+
- 1
|
9
|
+
version: 1.2.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Claudio Bustos
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-29 00:00:00 -03:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|