redmine_api_helper 0.3.35
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of redmine_api_helper might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/.gitattributes +2 -0
- data/.gitignore +11 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE +339 -0
- data/README.md +30 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/date_helper/date.rb +311 -0
- data/lib/odf_writer/bookmark.rb +110 -0
- data/lib/odf_writer/bookmark_reader.rb +77 -0
- data/lib/odf_writer/document.rb +371 -0
- data/lib/odf_writer/field.rb +174 -0
- data/lib/odf_writer/field_reader.rb +78 -0
- data/lib/odf_writer/image.rb +176 -0
- data/lib/odf_writer/image_reader.rb +76 -0
- data/lib/odf_writer/images.rb +89 -0
- data/lib/odf_writer/list_style.rb +336 -0
- data/lib/odf_writer/nested.rb +156 -0
- data/lib/odf_writer/odf_helper.rb +57 -0
- data/lib/odf_writer/parser/default.rb +691 -0
- data/lib/odf_writer/path_finder.rb +114 -0
- data/lib/odf_writer/section.rb +120 -0
- data/lib/odf_writer/section_reader.rb +61 -0
- data/lib/odf_writer/style.rb +483 -0
- data/lib/odf_writer/table.rb +135 -0
- data/lib/odf_writer/table_reader.rb +61 -0
- data/lib/odf_writer/template.rb +234 -0
- data/lib/odf_writer/text.rb +97 -0
- data/lib/odf_writer/text_reader.rb +77 -0
- data/lib/odf_writer/version.rb +29 -0
- data/lib/redmine_api_helper/api_helper.rb +333 -0
- data/lib/redmine_api_helper/args_helper.rb +106 -0
- data/lib/redmine_api_helper/attachments_api_helper.rb +52 -0
- data/lib/redmine_api_helper/define_api_helpers.rb +78 -0
- data/lib/redmine_api_helper/document_categories_api_helper.rb +38 -0
- data/lib/redmine_api_helper/groups_api_helper.rb +80 -0
- data/lib/redmine_api_helper/helpers.rb +50 -0
- data/lib/redmine_api_helper/issue_priorities_api_helper.rb +38 -0
- data/lib/redmine_api_helper/issue_relations_api_helper.rb +66 -0
- data/lib/redmine_api_helper/issue_statuses_api_helper.rb +36 -0
- data/lib/redmine_api_helper/issues_api_helper.rb +124 -0
- data/lib/redmine_api_helper/my_account_api_helper.rb +45 -0
- data/lib/redmine_api_helper/news_api_helper.rb +73 -0
- data/lib/redmine_api_helper/project_memberships_api_helper.rb +77 -0
- data/lib/redmine_api_helper/projects_api_helper.rb +73 -0
- data/lib/redmine_api_helper/roles_api_helper.rb +52 -0
- data/lib/redmine_api_helper/scripts_api_helper.rb +87 -0
- data/lib/redmine_api_helper/search_api_helper.rb +38 -0
- data/lib/redmine_api_helper/time_entries_api_helper.rb +73 -0
- data/lib/redmine_api_helper/time_entry_activities_api_helper.rb +38 -0
- data/lib/redmine_api_helper/trackers_api_helper.rb +38 -0
- data/lib/redmine_api_helper/users_api_helper.rb +73 -0
- data/lib/redmine_api_helper/version.rb +24 -0
- data/lib/redmine_api_helper/wiki_pages_api_helper.rb +66 -0
- data/lib/redmine_api_helper.rb +88 -0
- data/redmine_api_helper.gemspec +36 -0
- metadata +162 -0
@@ -0,0 +1,156 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# Ruby Gem to create a self populating Open Document Format (.odf) text file.
|
4
|
+
#
|
5
|
+
# Copyright 2021 Stephan Wenzel <stephan.wenzel@drwpatent.de>
|
6
|
+
#
|
7
|
+
# This program is free software; you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU General Public License
|
9
|
+
# as published by the Free Software Foundation; either version 2
|
10
|
+
# of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program; if not, write to the Free Software
|
19
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
20
|
+
#
|
21
|
+
|
22
|
+
module ODFWriter
|
23
|
+
|
24
|
+
########################################################################################
|
25
|
+
#
|
26
|
+
# Nested: provide data to nestable items
|
27
|
+
#
|
28
|
+
########################################################################################
|
29
|
+
module Nested
|
30
|
+
|
31
|
+
def add_field(name, options={}, &block)
|
32
|
+
options.merge!(:name => name)
|
33
|
+
@fields << Field.new(options, &block)
|
34
|
+
end #def
|
35
|
+
alias_method :add_column, :add_field
|
36
|
+
|
37
|
+
def add_text(name, options={}, &block)
|
38
|
+
options.merge!(:name => name)
|
39
|
+
@texts << Text.new(options, &block)
|
40
|
+
end #def
|
41
|
+
|
42
|
+
def add_bookmark(name, options={}, &block)
|
43
|
+
options.merge!(:name => name)
|
44
|
+
@bookmarks << Bookmark.new(options, &block)
|
45
|
+
end #def
|
46
|
+
|
47
|
+
def add_image(name, options={}, &block)
|
48
|
+
options.merge!(:name => name)
|
49
|
+
@images << Image.new(options, &block)
|
50
|
+
end #def
|
51
|
+
|
52
|
+
def add_table(name, options={})
|
53
|
+
options.merge!(:name => name)
|
54
|
+
tab = Table.new(options)
|
55
|
+
@tables << tab
|
56
|
+
yield(tab)
|
57
|
+
end #def
|
58
|
+
|
59
|
+
def add_section(name, options={})
|
60
|
+
options.merge!(:name => name)
|
61
|
+
sec = Section.new(options)
|
62
|
+
@sections << sec
|
63
|
+
yield(sec)
|
64
|
+
end #def
|
65
|
+
|
66
|
+
######################################################################################
|
67
|
+
# populate
|
68
|
+
######################################################################################
|
69
|
+
def populate(tree, options={})
|
70
|
+
|
71
|
+
tree.to_h.each do |key, names|
|
72
|
+
case key
|
73
|
+
when :fields
|
74
|
+
names.each do |name|
|
75
|
+
add_field(name, options)
|
76
|
+
end #def
|
77
|
+
when :texts
|
78
|
+
names.each do |name|
|
79
|
+
add_text(name, options)
|
80
|
+
end #def
|
81
|
+
when :bookmarks
|
82
|
+
names.each do |name|
|
83
|
+
add_bookmark(name, options)
|
84
|
+
end #def
|
85
|
+
when :images
|
86
|
+
names.each do |name|
|
87
|
+
add_image(name, options)
|
88
|
+
end #def
|
89
|
+
when :tables
|
90
|
+
names.each do |name, table_tree|
|
91
|
+
add_table(name, options){|table| table.populate(table_tree, options)}
|
92
|
+
end #def
|
93
|
+
when :sections
|
94
|
+
names.each do |name, section_tree|
|
95
|
+
add_section(name, options){|section| section.populate(section_tree, options)}
|
96
|
+
end #def
|
97
|
+
end #case
|
98
|
+
end #each
|
99
|
+
end #def
|
100
|
+
|
101
|
+
######################################################################################
|
102
|
+
# items: get item collection form item
|
103
|
+
######################################################################################
|
104
|
+
def items(item, field, procedure)
|
105
|
+
|
106
|
+
####################################################################################
|
107
|
+
# call proc before other alternatives
|
108
|
+
####################################################################################
|
109
|
+
return arrify(procedure.call(item, field)) if procedure
|
110
|
+
|
111
|
+
####################################################################################
|
112
|
+
# item class dependend call
|
113
|
+
####################################################################################
|
114
|
+
return arrify(hash_value(item, field)) if item.is_a?(Hash)
|
115
|
+
|
116
|
+
####################################################################################
|
117
|
+
# field class dependend call
|
118
|
+
####################################################################################
|
119
|
+
case field
|
120
|
+
|
121
|
+
when String, Symbol
|
122
|
+
if item.respond_to?(field.to_s.to_sym)
|
123
|
+
arrify(item.send(field.to_s.to_sym))
|
124
|
+
|
125
|
+
elsif item.respond_to?(field.downcase.to_sym)
|
126
|
+
arrify(item.send(field.downcase.to_sym))
|
127
|
+
|
128
|
+
else
|
129
|
+
[]
|
130
|
+
end
|
131
|
+
else
|
132
|
+
[]
|
133
|
+
end #case
|
134
|
+
end #def
|
135
|
+
|
136
|
+
######################################################################################
|
137
|
+
#
|
138
|
+
# private
|
139
|
+
#
|
140
|
+
######################################################################################
|
141
|
+
private
|
142
|
+
|
143
|
+
def hash_value(hash, key)
|
144
|
+
hash[key.to_s] || hash[key.to_sym] ||
|
145
|
+
hash[key.to_s.underscore] || hash[key.to_s.underscore.to_sym]
|
146
|
+
end #def
|
147
|
+
|
148
|
+
def arrify(obj)
|
149
|
+
return obj if obj.is_a?(Array)
|
150
|
+
return [obj] if obj.is_a?(Hash)
|
151
|
+
return obj.to_a if obj.respond_to?(:to_a)
|
152
|
+
return [obj]
|
153
|
+
end #def
|
154
|
+
|
155
|
+
end #module
|
156
|
+
end #module
|
@@ -0,0 +1,57 @@
|
|
1
|
+
##
|
2
|
+
# aids creating fiddles for redmine_scripting_engine
|
3
|
+
#
|
4
|
+
# Copyright 2021 Stephan Wenzel <stephan.wenzel@drwpatent.de>
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU General Public License
|
8
|
+
# as published by the Free Software Foundation; either version 2
|
9
|
+
# of the License, or (at your option) any later version.
|
10
|
+
#
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU General Public License
|
17
|
+
# along with this program; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
19
|
+
#
|
20
|
+
|
21
|
+
module ODFWriter
|
22
|
+
module ODFHelper
|
23
|
+
|
24
|
+
def export_odf(data, template)
|
25
|
+
|
26
|
+
####################################################################################
|
27
|
+
# create a template object and add readers to it parsing the document
|
28
|
+
####################################################################################
|
29
|
+
doc = ODFWriter::Document.new(template) do |document|
|
30
|
+
|
31
|
+
####################################################################################
|
32
|
+
# add predefined styles to document
|
33
|
+
####################################################################################
|
34
|
+
document.add_style( :content, *ODFWriter::Style::AUT_STYLES )
|
35
|
+
document.add_style( :styles, *ODFWriter::Style::DOC_STYLES )
|
36
|
+
document.add_list_style( :content, *ODFWriter::Style::LIST_STYLES )
|
37
|
+
|
38
|
+
####################################################################################
|
39
|
+
# add readers to parse template for fields, texts, tables an section lists
|
40
|
+
####################################################################################
|
41
|
+
add_readers
|
42
|
+
end
|
43
|
+
|
44
|
+
####################################################################################
|
45
|
+
# populate template object
|
46
|
+
####################################################################################
|
47
|
+
doc.populate(data, :remove_class_prefix => ["wiki-class-"])
|
48
|
+
|
49
|
+
####################################################################################
|
50
|
+
# write document
|
51
|
+
####################################################################################
|
52
|
+
doc.write
|
53
|
+
|
54
|
+
end #def
|
55
|
+
|
56
|
+
end #module
|
57
|
+
end #module
|