redmine_api_helper 0.3.35
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.
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
|