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.

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