infopark_reactor 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
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
+