infopark_reactor 1.5.1

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.
Files changed (40) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +165 -0
  4. data/README.md +142 -0
  5. data/Rakefile +25 -0
  6. data/app/controllers/reactor_controller.rb +53 -0
  7. data/config/routes.rb +6 -0
  8. data/infopark_reactor.gemspec +30 -0
  9. data/lib/engine.rb +35 -0
  10. data/lib/infopark_reactor.rb +38 -0
  11. data/lib/reactor/already_released.rb +3 -0
  12. data/lib/reactor/attributes.rb +365 -0
  13. data/lib/reactor/attributes/date_serializer.rb +35 -0
  14. data/lib/reactor/attributes/html_serializer.rb +31 -0
  15. data/lib/reactor/attributes/link_list_extender.rb +50 -0
  16. data/lib/reactor/attributes/link_list_serializer.rb +27 -0
  17. data/lib/reactor/cache/permission.rb +36 -0
  18. data/lib/reactor/cache/user.rb +37 -0
  19. data/lib/reactor/legacy.rb +60 -0
  20. data/lib/reactor/link/external.rb +19 -0
  21. data/lib/reactor/link/internal.rb +19 -0
  22. data/lib/reactor/link/temporary_link.rb +43 -0
  23. data/lib/reactor/no_working_version.rb +1 -0
  24. data/lib/reactor/not_permitted.rb +1 -0
  25. data/lib/reactor/permission.rb +262 -0
  26. data/lib/reactor/persistence.rb +473 -0
  27. data/lib/reactor/rc_independent.rb +13 -0
  28. data/lib/reactor/session.rb +48 -0
  29. data/lib/reactor/session/observers.rb +32 -0
  30. data/lib/reactor/session/user.rb +22 -0
  31. data/lib/reactor/streaming_upload.rb +22 -0
  32. data/lib/reactor/sudo.rb +11 -0
  33. data/lib/reactor/support/link_matcher.rb +44 -0
  34. data/lib/reactor/tools/workflow_generator.rb +195 -0
  35. data/lib/reactor/validations.rb +55 -0
  36. data/lib/reactor/version.rb +3 -0
  37. data/lib/reactor/workflow.rb +19 -0
  38. data/lib/reactor/workflow/empty.rb +27 -0
  39. data/lib/reactor/workflow/standard.rb +34 -0
  40. metadata +204 -0
@@ -0,0 +1,3 @@
1
+ module Reactor
2
+ VERSION = "1.5.1"
3
+ end
@@ -0,0 +1,19 @@
1
+ require 'reactor/workflow/standard'
2
+ require 'reactor/workflow/empty'
3
+
4
+ module Reactor
5
+ module Workflow
6
+ # This module provides support for Workflow actions and information querying.
7
+ module Base
8
+ # Returns instance of Standard (or Empty..)
9
+ # For the API See Reactor::Workflow::Standard
10
+ def workflow
11
+ @workflow ||= if ((meta=RailsConnector::ObjectWithMetaData.find_by_object_id(self.obj_id)).workflow_name.present?)
12
+ Standard.new(self,meta)
13
+ else
14
+ Empty.new(self)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ module Reactor
2
+ module Workflow
3
+ class Empty < Standard
4
+ def initialize(obj)
5
+ @obj = obj
6
+ end
7
+
8
+ def empty?
9
+ true
10
+ end
11
+
12
+ def name
13
+ nil
14
+ end
15
+
16
+ WORKFLOW_ACTIONS.each do |action|
17
+ define_method :"#{action}?" do
18
+ false
19
+ end
20
+
21
+ define_method :"#{action}!" do
22
+ nil
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ module Reactor
2
+ module Workflow
3
+ class Standard
4
+ WORKFLOW_ACTIONS = [:take, :forward, :reject, :commit, :release, :sign]
5
+
6
+ def initialize(obj, meta_obj)
7
+ @obj, @meta_obj = obj, meta_obj
8
+ end
9
+
10
+ def empty?
11
+ false
12
+ end
13
+
14
+ def name
15
+ @meta_obj.workflow_name
16
+ end
17
+
18
+ WORKFLOW_ACTIONS.each do |action|
19
+ define_method :"#{action}?" do
20
+ valid_action?(action)
21
+ end
22
+
23
+ define_method :"#{action}!" do
24
+ @obj.send(:crul_obj).send(:"#{action}!")
25
+ end
26
+ end
27
+
28
+ protected
29
+ def valid_action?(action)
30
+ @obj.send(:crul_obj).valid_actions.include?(action.to_s)
31
+ end
32
+ end
33
+ end
34
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: infopark_reactor
3
+ version: !ruby/object:Gem::Version
4
+ hash: 1
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 5
9
+ - 1
10
+ version: 1.5.1
11
+ platform: ruby
12
+ authors:
13
+ - Tomasz Przedmojski
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-12-12 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - <=
28
+ - !ruby/object:Gem::Version
29
+ hash: 29
30
+ segments:
31
+ - 3
32
+ - 2
33
+ - 9
34
+ version: 3.2.9
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ hash: 19
38
+ segments:
39
+ - 3
40
+ - 0
41
+ - 10
42
+ version: 3.0.10
43
+ type: :runtime
44
+ version_requirements: *id001
45
+ - !ruby/object:Gem::Dependency
46
+ name: infopark_reactor_migrations
47
+ prerelease: false
48
+ requirement: &id002 !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ hash: 31
54
+ segments:
55
+ - 1
56
+ - 2
57
+ - 0
58
+ version: 1.2.0
59
+ type: :runtime
60
+ version_requirements: *id002
61
+ - !ruby/object:Gem::Dependency
62
+ name: infopark_rails_connector
63
+ prerelease: false
64
+ requirement: &id003 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ type: :runtime
74
+ version_requirements: *id003
75
+ - !ruby/object:Gem::Dependency
76
+ name: infopark_rails_connector_meta
77
+ prerelease: false
78
+ requirement: &id004 !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 25
84
+ segments:
85
+ - 0
86
+ - 0
87
+ - 3
88
+ version: 0.0.3
89
+ type: :runtime
90
+ version_requirements: *id004
91
+ - !ruby/object:Gem::Dependency
92
+ name: rspec
93
+ prerelease: false
94
+ requirement: &id005 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ type: :development
104
+ version_requirements: *id005
105
+ - !ruby/object:Gem::Dependency
106
+ name: yard
107
+ prerelease: false
108
+ requirement: &id006 !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 3
114
+ segments:
115
+ - 0
116
+ version: "0"
117
+ type: :development
118
+ version_requirements: *id006
119
+ description: Use the ActiveRecord mimicking API to write into CM and enjoy all the benefits of callbacks, validations and permission checking
120
+ email:
121
+ - tomasz.przedmojski@infopark.de
122
+ executables: []
123
+
124
+ extensions: []
125
+
126
+ extra_rdoc_files: []
127
+
128
+ files:
129
+ - .gitignore
130
+ - Gemfile
131
+ - LICENSE
132
+ - README.md
133
+ - Rakefile
134
+ - app/controllers/reactor_controller.rb
135
+ - config/routes.rb
136
+ - infopark_reactor.gemspec
137
+ - lib/engine.rb
138
+ - lib/infopark_reactor.rb
139
+ - lib/reactor/already_released.rb
140
+ - lib/reactor/attributes.rb
141
+ - lib/reactor/attributes/date_serializer.rb
142
+ - lib/reactor/attributes/html_serializer.rb
143
+ - lib/reactor/attributes/link_list_extender.rb
144
+ - lib/reactor/attributes/link_list_serializer.rb
145
+ - lib/reactor/cache/permission.rb
146
+ - lib/reactor/cache/user.rb
147
+ - lib/reactor/legacy.rb
148
+ - lib/reactor/link/external.rb
149
+ - lib/reactor/link/internal.rb
150
+ - lib/reactor/link/temporary_link.rb
151
+ - lib/reactor/no_working_version.rb
152
+ - lib/reactor/not_permitted.rb
153
+ - lib/reactor/permission.rb
154
+ - lib/reactor/persistence.rb
155
+ - lib/reactor/rc_independent.rb
156
+ - lib/reactor/session.rb
157
+ - lib/reactor/session/observers.rb
158
+ - lib/reactor/session/user.rb
159
+ - lib/reactor/streaming_upload.rb
160
+ - lib/reactor/sudo.rb
161
+ - lib/reactor/support/link_matcher.rb
162
+ - lib/reactor/tools/workflow_generator.rb
163
+ - lib/reactor/validations.rb
164
+ - lib/reactor/version.rb
165
+ - lib/reactor/workflow.rb
166
+ - lib/reactor/workflow/empty.rb
167
+ - lib/reactor/workflow/standard.rb
168
+ has_rdoc: true
169
+ homepage: ""
170
+ licenses:
171
+ - LGPL-3
172
+ post_install_message:
173
+ rdoc_options: []
174
+
175
+ require_paths:
176
+ - lib
177
+ - lib/tools
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ none: false
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ hash: 3
184
+ segments:
185
+ - 0
186
+ version: "0"
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ hash: 3
193
+ segments:
194
+ - 0
195
+ version: "0"
196
+ requirements: []
197
+
198
+ rubyforge_project:
199
+ rubygems_version: 1.5.2
200
+ signing_key:
201
+ specification_version: 3
202
+ summary: Write into CM in familiar, Rails-like way
203
+ test_files: []
204
+