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.

Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +2 -0
  3. data/.gitignore +11 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE +339 -0
  7. data/README.md +30 -0
  8. data/Rakefile +2 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/lib/date_helper/date.rb +311 -0
  12. data/lib/odf_writer/bookmark.rb +110 -0
  13. data/lib/odf_writer/bookmark_reader.rb +77 -0
  14. data/lib/odf_writer/document.rb +371 -0
  15. data/lib/odf_writer/field.rb +174 -0
  16. data/lib/odf_writer/field_reader.rb +78 -0
  17. data/lib/odf_writer/image.rb +176 -0
  18. data/lib/odf_writer/image_reader.rb +76 -0
  19. data/lib/odf_writer/images.rb +89 -0
  20. data/lib/odf_writer/list_style.rb +336 -0
  21. data/lib/odf_writer/nested.rb +156 -0
  22. data/lib/odf_writer/odf_helper.rb +57 -0
  23. data/lib/odf_writer/parser/default.rb +691 -0
  24. data/lib/odf_writer/path_finder.rb +114 -0
  25. data/lib/odf_writer/section.rb +120 -0
  26. data/lib/odf_writer/section_reader.rb +61 -0
  27. data/lib/odf_writer/style.rb +483 -0
  28. data/lib/odf_writer/table.rb +135 -0
  29. data/lib/odf_writer/table_reader.rb +61 -0
  30. data/lib/odf_writer/template.rb +234 -0
  31. data/lib/odf_writer/text.rb +97 -0
  32. data/lib/odf_writer/text_reader.rb +77 -0
  33. data/lib/odf_writer/version.rb +29 -0
  34. data/lib/redmine_api_helper/api_helper.rb +333 -0
  35. data/lib/redmine_api_helper/args_helper.rb +106 -0
  36. data/lib/redmine_api_helper/attachments_api_helper.rb +52 -0
  37. data/lib/redmine_api_helper/define_api_helpers.rb +78 -0
  38. data/lib/redmine_api_helper/document_categories_api_helper.rb +38 -0
  39. data/lib/redmine_api_helper/groups_api_helper.rb +80 -0
  40. data/lib/redmine_api_helper/helpers.rb +50 -0
  41. data/lib/redmine_api_helper/issue_priorities_api_helper.rb +38 -0
  42. data/lib/redmine_api_helper/issue_relations_api_helper.rb +66 -0
  43. data/lib/redmine_api_helper/issue_statuses_api_helper.rb +36 -0
  44. data/lib/redmine_api_helper/issues_api_helper.rb +124 -0
  45. data/lib/redmine_api_helper/my_account_api_helper.rb +45 -0
  46. data/lib/redmine_api_helper/news_api_helper.rb +73 -0
  47. data/lib/redmine_api_helper/project_memberships_api_helper.rb +77 -0
  48. data/lib/redmine_api_helper/projects_api_helper.rb +73 -0
  49. data/lib/redmine_api_helper/roles_api_helper.rb +52 -0
  50. data/lib/redmine_api_helper/scripts_api_helper.rb +87 -0
  51. data/lib/redmine_api_helper/search_api_helper.rb +38 -0
  52. data/lib/redmine_api_helper/time_entries_api_helper.rb +73 -0
  53. data/lib/redmine_api_helper/time_entry_activities_api_helper.rb +38 -0
  54. data/lib/redmine_api_helper/trackers_api_helper.rb +38 -0
  55. data/lib/redmine_api_helper/users_api_helper.rb +73 -0
  56. data/lib/redmine_api_helper/version.rb +24 -0
  57. data/lib/redmine_api_helper/wiki_pages_api_helper.rb +66 -0
  58. data/lib/redmine_api_helper.rb +88 -0
  59. data/redmine_api_helper.gemspec +36 -0
  60. 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