juno-report 0.0.5 → 0.0.6
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.
- checksums.yaml +7 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/juno-report.iml +31 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/vcs.xml +7 -0
- data/.idea/workspace.xml +281 -0
- data/Gemfile.lock +26 -1
- data/lib/juno-report/pdf.rb +18 -9
- data/lib/juno-report/version.rb +1 -1
- data/samples/example.rb +21 -0
- data/samples/report.pdf +972 -0
- data/samples/report.yml +30 -0
- metadata +21 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a68a66753dafbda9b9ca912b6787055dd8705fbe
|
4
|
+
data.tar.gz: 810b2177d42e6bd76fd7b498b6e479f8156b7739
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0998a6fdfed628d24b8fda50896fabfda3c2ec519f30d47e4b341734584686b8637f065e5d1a13e782e758460044c7f854aab631c5892f23a72930a33a48cf26
|
7
|
+
data.tar.gz: 4d5880653db11a7da79216ef4989ca8fb2a3aa51b6bdef51cdbe9d103f7de5d2fcfe3ddde885999054bbce4c02adf8038d8ce4035ddc3276df03f1b25fb283a0
|
data/.idea/.name
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
juno-report
|
data/.idea/.rakeTasks
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Settings><!--This file was automatically generated by Ruby plugin.
|
3
|
+
You are allowed to:
|
4
|
+
1. Remove rake task
|
5
|
+
2. Add existing rake tasks
|
6
|
+
To add existing rake tasks automatically delete this file and reload the project.
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.idea/encodings.xml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<module type="RUBY_MODULE" version="4">
|
3
|
+
<component name="FacetManager">
|
4
|
+
<facet type="gem" name="Gem">
|
5
|
+
<configuration>
|
6
|
+
<option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
|
7
|
+
<option name="GEM_APP_TEST_PATH" value="" />
|
8
|
+
<option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
|
9
|
+
</configuration>
|
10
|
+
</facet>
|
11
|
+
</component>
|
12
|
+
<component name="NewModuleRootManager">
|
13
|
+
<content url="file://$MODULE_DIR$" />
|
14
|
+
<orderEntry type="inheritedJdk" />
|
15
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
16
|
+
<orderEntry type="library" scope="PROVIDED" name="Ascii85 (v1.0.2, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
17
|
+
<orderEntry type="library" scope="PROVIDED" name="activesupport (v3.2.15, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
18
|
+
<orderEntry type="library" scope="PROVIDED" name="afm (v0.2.0, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
19
|
+
<orderEntry type="library" scope="PROVIDED" name="barby (v0.5.1, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
20
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.3.5, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
21
|
+
<orderEntry type="library" scope="PROVIDED" name="hashery (v2.1.1, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
22
|
+
<orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.5, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
23
|
+
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.8.2, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="pdf-reader (v1.3.3, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
25
|
+
<orderEntry type="library" scope="PROVIDED" name="prawml (v0.1.1, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="prawn (v0.12.0, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
27
|
+
<orderEntry type="library" scope="PROVIDED" name="ruby-rc4 (v0.1.5, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
28
|
+
<orderEntry type="library" scope="PROVIDED" name="ttfunk (v1.0.3, RVM: ruby-1.9.3-p286) [gem]" level="application" />
|
29
|
+
</component>
|
30
|
+
</module>
|
31
|
+
|
data/.idea/misc.xml
ADDED
data/.idea/modules.xml
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ProjectModuleManager">
|
4
|
+
<modules>
|
5
|
+
<module fileurl="file://$PROJECT_DIR$/.idea/juno-report.iml" filepath="$PROJECT_DIR$/.idea/juno-report.iml" />
|
6
|
+
</modules>
|
7
|
+
</component>
|
8
|
+
</project>
|
9
|
+
|
data/.idea/vcs.xml
ADDED
data/.idea/workspace.xml
ADDED
@@ -0,0 +1,281 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ChangeListManager">
|
4
|
+
<list default="true" id="76e9e064-60cb-4b21-9538-43c2d47e8def" name="Default" comment="" />
|
5
|
+
<ignored path="juno-report.iws" />
|
6
|
+
<ignored path=".idea/workspace.xml" />
|
7
|
+
<option name="TRACKING_ENABLED" value="true" />
|
8
|
+
<option name="SHOW_DIALOG" value="false" />
|
9
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
10
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
11
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
12
|
+
</component>
|
13
|
+
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
14
|
+
<component name="CreatePatchCommitExecutor">
|
15
|
+
<option name="PATCH_PATH" value="" />
|
16
|
+
</component>
|
17
|
+
<component name="DaemonCodeAnalyzer">
|
18
|
+
<disable_hints />
|
19
|
+
</component>
|
20
|
+
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
21
|
+
<component name="FavoritesManager">
|
22
|
+
<favorites_list name="juno-report" />
|
23
|
+
</component>
|
24
|
+
<component name="FileEditorManager">
|
25
|
+
<leaf>
|
26
|
+
<file leaf-file-name="pdf.rb" pinned="false" current="true" current-in-tab="true">
|
27
|
+
<entry file="file://$PROJECT_DIR$/lib/juno-report/pdf.rb">
|
28
|
+
<provider selected="true" editor-type-id="text-editor">
|
29
|
+
<state line="197" column="64" selection-start="9377" selection-end="9377" vertical-scroll-proportion="2.7813299">
|
30
|
+
<folding />
|
31
|
+
</state>
|
32
|
+
</provider>
|
33
|
+
</entry>
|
34
|
+
</file>
|
35
|
+
</leaf>
|
36
|
+
</component>
|
37
|
+
<component name="FindManager">
|
38
|
+
<FindUsagesManager>
|
39
|
+
<setting name="OPEN_NEW_TAB" value="false" />
|
40
|
+
</FindUsagesManager>
|
41
|
+
</component>
|
42
|
+
<component name="ProjectFrameBounds">
|
43
|
+
<option name="x" value="10" />
|
44
|
+
<option name="y" value="29" />
|
45
|
+
<option name="width" value="1260" />
|
46
|
+
<option name="height" value="920" />
|
47
|
+
</component>
|
48
|
+
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
49
|
+
<OptionsSetting value="true" id="Add" />
|
50
|
+
<OptionsSetting value="true" id="Remove" />
|
51
|
+
<OptionsSetting value="true" id="Checkout" />
|
52
|
+
<OptionsSetting value="true" id="Update" />
|
53
|
+
<OptionsSetting value="true" id="Status" />
|
54
|
+
<OptionsSetting value="true" id="Edit" />
|
55
|
+
<ConfirmationsSetting value="0" id="Add" />
|
56
|
+
<ConfirmationsSetting value="0" id="Remove" />
|
57
|
+
</component>
|
58
|
+
<component name="ProjectReloadState">
|
59
|
+
<option name="STATE" value="0" />
|
60
|
+
</component>
|
61
|
+
<component name="ProjectView">
|
62
|
+
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
|
63
|
+
<flattenPackages />
|
64
|
+
<showMembers />
|
65
|
+
<showModules />
|
66
|
+
<showLibraryContents />
|
67
|
+
<hideEmptyPackages />
|
68
|
+
<abbreviatePackageNames />
|
69
|
+
<autoscrollToSource />
|
70
|
+
<autoscrollFromSource />
|
71
|
+
<sortByType />
|
72
|
+
</navigator>
|
73
|
+
<panes>
|
74
|
+
<pane id="Scope" />
|
75
|
+
<pane id="ProjectPane">
|
76
|
+
<subPane>
|
77
|
+
<PATH>
|
78
|
+
<PATH_ELEMENT>
|
79
|
+
<option name="myItemId" value="juno-report" />
|
80
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
81
|
+
</PATH_ELEMENT>
|
82
|
+
</PATH>
|
83
|
+
<PATH>
|
84
|
+
<PATH_ELEMENT>
|
85
|
+
<option name="myItemId" value="juno-report" />
|
86
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
87
|
+
</PATH_ELEMENT>
|
88
|
+
<PATH_ELEMENT>
|
89
|
+
<option name="myItemId" value="juno-report" />
|
90
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
91
|
+
</PATH_ELEMENT>
|
92
|
+
</PATH>
|
93
|
+
<PATH>
|
94
|
+
<PATH_ELEMENT>
|
95
|
+
<option name="myItemId" value="juno-report" />
|
96
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
97
|
+
</PATH_ELEMENT>
|
98
|
+
<PATH_ELEMENT>
|
99
|
+
<option name="myItemId" value="juno-report" />
|
100
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
101
|
+
</PATH_ELEMENT>
|
102
|
+
<PATH_ELEMENT>
|
103
|
+
<option name="myItemId" value="lib" />
|
104
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
105
|
+
</PATH_ELEMENT>
|
106
|
+
</PATH>
|
107
|
+
<PATH>
|
108
|
+
<PATH_ELEMENT>
|
109
|
+
<option name="myItemId" value="juno-report" />
|
110
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
111
|
+
</PATH_ELEMENT>
|
112
|
+
<PATH_ELEMENT>
|
113
|
+
<option name="myItemId" value="juno-report" />
|
114
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
115
|
+
</PATH_ELEMENT>
|
116
|
+
<PATH_ELEMENT>
|
117
|
+
<option name="myItemId" value="lib" />
|
118
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
119
|
+
</PATH_ELEMENT>
|
120
|
+
<PATH_ELEMENT>
|
121
|
+
<option name="myItemId" value="juno-report" />
|
122
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
123
|
+
</PATH_ELEMENT>
|
124
|
+
</PATH>
|
125
|
+
<PATH>
|
126
|
+
<PATH_ELEMENT>
|
127
|
+
<option name="myItemId" value="juno-report" />
|
128
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
129
|
+
</PATH_ELEMENT>
|
130
|
+
<PATH_ELEMENT>
|
131
|
+
<option name="myItemId" value="juno-report" />
|
132
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
133
|
+
</PATH_ELEMENT>
|
134
|
+
<PATH_ELEMENT>
|
135
|
+
<option name="myItemId" value="lib" />
|
136
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
137
|
+
</PATH_ELEMENT>
|
138
|
+
<PATH_ELEMENT>
|
139
|
+
<option name="myItemId" value="juno-report" />
|
140
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
141
|
+
</PATH_ELEMENT>
|
142
|
+
<PATH_ELEMENT>
|
143
|
+
<option name="myItemId" value="pdf" />
|
144
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
145
|
+
</PATH_ELEMENT>
|
146
|
+
</PATH>
|
147
|
+
</subPane>
|
148
|
+
</pane>
|
149
|
+
</panes>
|
150
|
+
</component>
|
151
|
+
<component name="PropertiesComponent">
|
152
|
+
<property name="options.splitter.main.proportions" value="0.3" />
|
153
|
+
<property name="WebServerToolWindowFactoryState" value="false" />
|
154
|
+
<property name="options.lastSelected" value="project.propVCSSupport.Mappings" />
|
155
|
+
<property name="options.searchVisible" value="true" />
|
156
|
+
<property name="options.splitter.details.proportions" value="0.2" />
|
157
|
+
</component>
|
158
|
+
<component name="RunManager">
|
159
|
+
<list size="0" />
|
160
|
+
</component>
|
161
|
+
<component name="ShelveChangesManager" show_recycled="false" />
|
162
|
+
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="sslv3">
|
163
|
+
<option name="USER" value="" />
|
164
|
+
<option name="PASSWORD" value="" />
|
165
|
+
<option name="mySSHConnectionTimeout" value="30000" />
|
166
|
+
<option name="mySSHReadTimeout" value="30000" />
|
167
|
+
<option name="LAST_MERGED_REVISION" />
|
168
|
+
<option name="MERGE_DRY_RUN" value="false" />
|
169
|
+
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
|
170
|
+
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
|
171
|
+
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
|
172
|
+
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
|
173
|
+
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
|
174
|
+
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
|
175
|
+
<option name="FORCE_UPDATE" value="false" />
|
176
|
+
<option name="IGNORE_EXTERNALS" value="false" />
|
177
|
+
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
|
178
|
+
</component>
|
179
|
+
<component name="TaskManager">
|
180
|
+
<task active="true" id="Default" summary="Default task">
|
181
|
+
<changelist id="76e9e064-60cb-4b21-9538-43c2d47e8def" name="Default" comment="" />
|
182
|
+
<created>1397740475071</created>
|
183
|
+
<updated>1397740475071</updated>
|
184
|
+
</task>
|
185
|
+
<servers />
|
186
|
+
</component>
|
187
|
+
<component name="ToolWindowManager">
|
188
|
+
<frame x="10" y="29" width="1260" height="920" extended-state="0" />
|
189
|
+
<editor active="true" />
|
190
|
+
<layout>
|
191
|
+
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32928312" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
192
|
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
193
|
+
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
194
|
+
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
195
|
+
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
196
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24958813" sideWeight="0.6707169" order="0" side_tool="false" content_ui="combo" />
|
197
|
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
198
|
+
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
199
|
+
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
200
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32928312" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
201
|
+
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
202
|
+
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
203
|
+
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
204
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
205
|
+
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
206
|
+
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
207
|
+
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
208
|
+
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
209
|
+
</layout>
|
210
|
+
</component>
|
211
|
+
<component name="VcsContentAnnotationSettings">
|
212
|
+
<option name="myLimit" value="2678400000" />
|
213
|
+
</component>
|
214
|
+
<component name="VcsManagerConfiguration">
|
215
|
+
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
|
216
|
+
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
|
217
|
+
<option name="CHECK_NEW_TODO" value="true" />
|
218
|
+
<option name="myTodoPanelSettings">
|
219
|
+
<value>
|
220
|
+
<are-packages-shown value="false" />
|
221
|
+
<are-modules-shown value="false" />
|
222
|
+
<flatten-packages value="false" />
|
223
|
+
<is-autoscroll-to-source value="false" />
|
224
|
+
</value>
|
225
|
+
</option>
|
226
|
+
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
|
227
|
+
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
|
228
|
+
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
|
229
|
+
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
|
230
|
+
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
|
231
|
+
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
|
232
|
+
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
|
233
|
+
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
|
234
|
+
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
|
235
|
+
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
236
|
+
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
237
|
+
<option name="SHORT_DIFF_HORIZONTALLY" value="true" />
|
238
|
+
<option name="SHORT_DIFF_EXTRA_LINES" value="2" />
|
239
|
+
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
|
240
|
+
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
|
241
|
+
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
|
242
|
+
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
|
243
|
+
<option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
|
244
|
+
<option name="SHOW_DIRTY_RECURSIVELY" value="false" />
|
245
|
+
<option name="LIMIT_HISTORY" value="true" />
|
246
|
+
<option name="MAXIMUM_HISTORY_ROWS" value="1000" />
|
247
|
+
<option name="UPDATE_FILTER_SCOPE_NAME" />
|
248
|
+
<option name="USE_COMMIT_MESSAGE_MARGIN" value="false" />
|
249
|
+
<option name="COMMIT_MESSAGE_MARGIN_SIZE" value="72" />
|
250
|
+
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="false" />
|
251
|
+
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
252
|
+
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
|
253
|
+
<option name="LAST_COMMIT_MESSAGE" />
|
254
|
+
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
|
255
|
+
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
256
|
+
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
257
|
+
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
|
258
|
+
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
|
259
|
+
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
|
260
|
+
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
|
261
|
+
<option name="ACTIVE_VCS_NAME" />
|
262
|
+
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
|
263
|
+
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
|
264
|
+
<option name="UPDATE_FILTER_BY_SCOPE" value="false" />
|
265
|
+
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
|
266
|
+
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
267
|
+
</component>
|
268
|
+
<component name="XDebuggerManager">
|
269
|
+
<breakpoint-manager />
|
270
|
+
</component>
|
271
|
+
<component name="editorHistoryManager">
|
272
|
+
<entry file="file://$PROJECT_DIR$/lib/juno-report/pdf.rb">
|
273
|
+
<provider selected="true" editor-type-id="text-editor">
|
274
|
+
<state line="197" column="64" selection-start="9377" selection-end="9377" vertical-scroll-proportion="2.7813299">
|
275
|
+
<folding />
|
276
|
+
</state>
|
277
|
+
</provider>
|
278
|
+
</entry>
|
279
|
+
</component>
|
280
|
+
</project>
|
281
|
+
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,36 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
juno-report (0.0.
|
4
|
+
juno-report (0.0.5)
|
5
|
+
prawml
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
10
|
+
Ascii85 (1.0.2)
|
11
|
+
activesupport (3.2.15)
|
12
|
+
i18n (~> 0.6, >= 0.6.4)
|
13
|
+
multi_json (~> 1.0)
|
14
|
+
afm (0.2.0)
|
15
|
+
barby (0.5.1)
|
16
|
+
hashery (2.1.1)
|
17
|
+
i18n (0.6.5)
|
18
|
+
multi_json (1.8.2)
|
19
|
+
pdf-reader (1.3.3)
|
20
|
+
Ascii85 (~> 1.0.0)
|
21
|
+
afm (~> 0.2.0)
|
22
|
+
hashery (~> 2.0)
|
23
|
+
ruby-rc4
|
24
|
+
ttfunk
|
25
|
+
prawml (0.1.1)
|
26
|
+
activesupport (~> 3.0)
|
27
|
+
barby
|
28
|
+
prawn
|
29
|
+
prawn (0.12.0)
|
30
|
+
pdf-reader (>= 0.9.0)
|
31
|
+
ttfunk (~> 1.0.2)
|
32
|
+
ruby-rc4 (0.1.5)
|
33
|
+
ttfunk (1.0.3)
|
9
34
|
|
10
35
|
PLATFORMS
|
11
36
|
ruby
|
data/lib/juno-report/pdf.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module JunoReport
|
2
2
|
module Pdf
|
3
3
|
|
4
|
-
#Responsible for generate a report, based on rules passed as parameter in Juno::Report::generate.
|
4
|
+
#Responsible for generate a report, based on rules passed as parameter in Juno::Report::generate.
|
5
5
|
#Juno Reports has support groups, just by especifying them at the rules file.
|
6
6
|
#Receives a collection as parameter, which should be a Array of records of the report.
|
7
7
|
def generate(collection)
|
@@ -24,6 +24,7 @@ module JunoReport
|
|
24
24
|
set_pos_y (@sections[:body][:settings][:posY] || 0)
|
25
25
|
@current_groups = {}
|
26
26
|
@footers = {}
|
27
|
+
@count = 0
|
27
28
|
|
28
29
|
unless @sections[:groups].empty?
|
29
30
|
reset_groups_values
|
@@ -36,13 +37,14 @@ module JunoReport
|
|
36
37
|
|
37
38
|
collection.each do |record|
|
38
39
|
@record = record.is_a?(Hash) ? ReportObject.new(record) : record #Convert the hash on a Object to futurely extend a module
|
39
|
-
|
40
|
+
|
40
41
|
headers_to_print, headers_height = calculate_header
|
41
42
|
|
42
|
-
unless headers_to_print.empty?
|
43
|
+
unless headers_to_print.empty?
|
44
|
+
@count = 0
|
43
45
|
draw_footer headers_to_print, @sections[:groups] if can_print_footer
|
44
46
|
if @posY - headers_height < 2*@sections[:body][:settings][:height]
|
45
|
-
new_page
|
47
|
+
new_page
|
46
48
|
else
|
47
49
|
headers_to_print.each { |group| print_section group, @record, true }
|
48
50
|
draw_columns
|
@@ -52,6 +54,7 @@ module JunoReport
|
|
52
54
|
|
53
55
|
update_footer_values
|
54
56
|
print_section :body, @record
|
57
|
+
@count += 1
|
55
58
|
end
|
56
59
|
|
57
60
|
draw_footer(@sections[:body][:settings][:groups].collect {|group| group.to_sym}, @sections[:groups]) if has_groups?
|
@@ -77,10 +80,16 @@ module JunoReport
|
|
77
80
|
|
78
81
|
#Generic function to print a section like :body, :page or the group sections.
|
79
82
|
def print_section(section_name, values = nil, group = false)
|
80
|
-
section = !group ? @sections[section_name] : @sections[:groups][section_name]
|
83
|
+
section = !group ? @sections[section_name] : @sections[:groups][section_name]
|
81
84
|
set_pos_y(section[:settings][:posY] || 0) unless section_name.eql?(:body) || section[:settings].nil?
|
82
85
|
new_page if @posY < 30
|
83
86
|
|
87
|
+
if section_name.eql? :body and @count % 2 != 0
|
88
|
+
@pdf.fill_color "F7F7F7"
|
89
|
+
width = @options[:page_layout] == :portrait ? 530 : 770
|
90
|
+
@pdf.fill_rectangle [0, @posY+(section[:settings][:height]/2)], width, section[:settings][:height]
|
91
|
+
end
|
92
|
+
|
84
93
|
section[:fields].each do |field, settings|
|
85
94
|
symbolize! settings[1] unless settings[1].nil?
|
86
95
|
set_pos_y settings[1][:posY] unless settings[1].nil? || settings[1][:posY].nil?
|
@@ -123,7 +132,7 @@ module JunoReport
|
|
123
132
|
@sections[:body][:settings][:groups].each { |group| @sections[:groups][group.to_sym] = @rules[group.to_sym] } if has_groups?
|
124
133
|
end
|
125
134
|
|
126
|
-
#@current_groups storages the value for all groups. When a value is changed, the header is printed.
|
135
|
+
#@current_groups storages the value for all groups. When a value is changed, the header is printed.
|
127
136
|
#This function set nil value for every item in @current_groups if the parameter is not passed. Otherwise,
|
128
137
|
#only the forward groups will be cleaned to avoid conflict problems with others groups.
|
129
138
|
def reset_groups_values current_group = nil
|
@@ -136,7 +145,7 @@ module JunoReport
|
|
136
145
|
|
137
146
|
#Calculates the headers which must be printed before print the current record.
|
138
147
|
#The function also returns the current header height to create a new page if the
|
139
|
-
#page remaining space is smaller than (header + a record height)
|
148
|
+
#page remaining space is smaller than (header + a record height)
|
140
149
|
def calculate_header
|
141
150
|
headers = []
|
142
151
|
height = 0
|
@@ -155,7 +164,7 @@ module JunoReport
|
|
155
164
|
|
156
165
|
#Create a structure to calculate the footer values for all groups. Appends the footer body to total values too.
|
157
166
|
def initialize_footer_values
|
158
|
-
@sections[:body][:settings][:groups].each do |group|
|
167
|
+
@sections[:body][:settings][:groups].each do |group|
|
159
168
|
current_footer = {}
|
160
169
|
@sections[:groups][group.to_sym][:footer].each { |field, settings| current_footer[field] = nil } unless @sections[:groups][group.to_sym][:footer].nil?
|
161
170
|
@footers[group.to_sym] = current_footer unless current_footer.empty?
|
@@ -175,7 +184,7 @@ module JunoReport
|
|
175
184
|
calculate_footer_values :body, @sections[:body][:footer]
|
176
185
|
end
|
177
186
|
|
178
|
-
#Returns the values to the group passed as parameter. If :behavior setting is used, so a
|
187
|
+
#Returns the values to the group passed as parameter. If :behavior setting is used, so a
|
179
188
|
#function in [lib/pdf/behaviors.rb] calculates the value of current field, else the report
|
180
189
|
#method is called
|
181
190
|
def calculate_footer_values group, source
|