review_and_approve 0.0.2 → 0.0.3
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.
- data/README.md +2 -3
- data/app/views/review_and_approve/_delta.html.erb +2 -2
- data/lib/generators/review_and_approve/install/install_generator.rb +24 -0
- data/lib/generators/review_and_approve/install/templates/create_cache_records.rb +11 -0
- data/lib/review_and_approve/cache_record.rb +3 -0
- data/lib/review_and_approve/model_additions.rb +13 -4
- data/lib/review_and_approve/version.rb +1 -1
- data/lib/review_and_approve.rb +2 -0
- data/lib/tasks/review_and_approve.rake +10 -0
- metadata +36 -15
data/README.md
CHANGED
@@ -61,13 +61,12 @@ A method called `published_version` is defined on the model that provides access
|
|
61
61
|
# Given two hashes (before/after), this will render the changes in a table
|
62
62
|
|
63
63
|
#styling the differences
|
64
|
-
|
64
|
+
Include review_and_approve/application in your application.css or
|
65
|
+
check out delta.css in the gem and override the styles in your application
|
65
66
|
```
|
66
67
|
|
67
68
|
## Limitations
|
68
69
|
* only certified on Rails 3.1, ruby 1.9.2
|
69
|
-
* Will use Rails.cache to store the output of methods provided to review_and_approve. We currently assume that the cache has infinite space -i.e. the cached value is never lost
|
70
|
-
- possibly use the database in future for storing cached values
|
71
70
|
* Currently depends on the application to call attr_accessible
|
72
71
|
|
73
72
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<th scope="col" class="rounded-q4">Current Value</th>
|
11
11
|
</tr>
|
12
12
|
</thead>
|
13
|
-
<%
|
13
|
+
<% diff_keys.each do |key| %>
|
14
14
|
<tbody>
|
15
15
|
<tr>
|
16
16
|
<td><%= key %></td>
|
@@ -23,4 +23,4 @@
|
|
23
23
|
<% else %>
|
24
24
|
Latest version is published
|
25
25
|
<% end %>
|
26
|
-
</div>
|
26
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
|
3
|
+
module ReviewAndApprove
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
desc "add the migrations"
|
9
|
+
|
10
|
+
def self.next_migration_number(path)
|
11
|
+
unless @prev_migration_nr
|
12
|
+
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
13
|
+
else
|
14
|
+
@prev_migration_nr += 1
|
15
|
+
end
|
16
|
+
@prev_migration_nr.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_migrations
|
20
|
+
migration_template "create_cache_records.rb", "db/migrate/create_cache_records.rb"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -24,13 +24,22 @@ module ReviewAndApprove
|
|
24
24
|
# define the field as an attribute on the model
|
25
25
|
attr_accessor field
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
# identifier on the class that it has been set up with review_and_approve
|
28
|
+
send(:define_singleton_method, :_using_rev_app?) do
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
after_save :review_and_approve_after_save_callback
|
33
|
+
|
34
|
+
send(:define_method, :review_and_approve_after_save_callback) do |publish = false|
|
35
|
+
published = self.send(field) || publish
|
29
36
|
#If we are publishing the record
|
30
37
|
if published and (published==true or published=="true" or self.send(field).to_i>0 rescue false) #in case the field gets set to "0" and "1"
|
31
38
|
methods.each do |method|
|
32
39
|
# Refresh all caches
|
33
|
-
|
40
|
+
CacheRecord.find_or_initialize_by_key(key_proc.call(self, method)).tap do |cr|
|
41
|
+
cr.cache_data = self.send(method)
|
42
|
+
end.save
|
34
43
|
end
|
35
44
|
end
|
36
45
|
|
@@ -38,7 +47,7 @@ module ReviewAndApprove
|
|
38
47
|
end
|
39
48
|
|
40
49
|
send(:define_method, :published_version) do |method_name|
|
41
|
-
|
50
|
+
CacheRecord.find_by_key(key_proc.call(self, method_name)).cache_data
|
42
51
|
end
|
43
52
|
|
44
53
|
send(:define_method, :mass_assignment_authorizer) do |role = :default|
|
data/lib/review_and_approve.rb
CHANGED
@@ -3,6 +3,8 @@ require "review_and_approve/engine" if defined? Rails
|
|
3
3
|
require "review_and_approve/model_additions"
|
4
4
|
require "review_and_approve/controller_additions"
|
5
5
|
require "review_and_approve/railtie" if defined? Rails
|
6
|
+
require 'active_record'
|
7
|
+
require "review_and_approve/cache_record"
|
6
8
|
|
7
9
|
module ReviewAndApprove
|
8
10
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
desc 'Create caches for existing data'
|
2
|
+
namespace :review_and_approve do
|
3
|
+
task :create_caches => :environment do
|
4
|
+
ActiveRecord::Base.subclasses.select{|m| model._using_rev_app? rescue false}.each do |model|
|
5
|
+
model.find_each do |obj|
|
6
|
+
obj.review_and_approve_after_save_callback(true)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: review_and_approve
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Paramveer Singh
|
@@ -10,11 +10,10 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-05-
|
13
|
+
date: 2013-05-20 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
prerelease: false
|
18
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
19
|
requirements:
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
- !ruby/object:Gem::Version
|
23
22
|
version: "2.0"
|
24
23
|
type: :development
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
prerelease: false
|
29
28
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
30
|
requirements:
|
@@ -33,21 +32,21 @@ dependencies:
|
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: "0"
|
35
34
|
type: :development
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: supermodel
|
39
|
-
prerelease: false
|
40
39
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
41
|
requirements:
|
43
42
|
- - ">="
|
44
43
|
- !ruby/object:Gem::Version
|
45
44
|
version: "0"
|
46
|
-
type: :
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
47
|
version_requirements: *id003
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mocha
|
50
|
-
prerelease: false
|
51
50
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
52
|
requirements:
|
@@ -55,21 +54,21 @@ dependencies:
|
|
55
54
|
- !ruby/object:Gem::Version
|
56
55
|
version: "0"
|
57
56
|
type: :development
|
57
|
+
prerelease: false
|
58
58
|
version_requirements: *id004
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
61
|
-
prerelease: false
|
60
|
+
name: debugger
|
62
61
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
62
|
none: false
|
64
63
|
requirements:
|
65
64
|
- - ">="
|
66
65
|
- !ruby/object:Gem::Version
|
67
66
|
version: "0"
|
68
|
-
type: :
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
69
|
version_requirements: *id005
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
prerelease: false
|
71
|
+
name: rails
|
73
72
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
73
|
none: false
|
75
74
|
requirements:
|
@@ -77,18 +76,30 @@ dependencies:
|
|
77
76
|
- !ruby/object:Gem::Version
|
78
77
|
version: "0"
|
79
78
|
type: :runtime
|
79
|
+
prerelease: false
|
80
80
|
version_requirements: *id006
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
83
|
-
prerelease: false
|
82
|
+
name: cancan
|
84
83
|
requirement: &id007 !ruby/object:Gem::Requirement
|
85
84
|
none: false
|
86
85
|
requirements:
|
87
86
|
- - ">="
|
88
87
|
- !ruby/object:Gem::Version
|
89
88
|
version: "0"
|
90
|
-
type: :
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
91
|
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: activerecord
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
type: :runtime
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: *id008
|
92
103
|
description: Adds Review and Approval functionality for content sites.
|
93
104
|
email:
|
94
105
|
- paramveer.singh@hikeezee.com
|
@@ -102,12 +113,16 @@ files:
|
|
102
113
|
- app/assets/stylesheets/review_and_approve/application.css
|
103
114
|
- app/assets/stylesheets/review_and_approve/delta.css
|
104
115
|
- app/views/review_and_approve/_delta.html.erb
|
116
|
+
- lib/generators/review_and_approve/install/install_generator.rb
|
117
|
+
- lib/generators/review_and_approve/install/templates/create_cache_records.rb
|
118
|
+
- lib/review_and_approve/cache_record.rb
|
105
119
|
- lib/review_and_approve/controller_additions.rb
|
106
120
|
- lib/review_and_approve/engine.rb
|
107
121
|
- lib/review_and_approve/model_additions.rb
|
108
122
|
- lib/review_and_approve/railtie.rb
|
109
123
|
- lib/review_and_approve/version.rb
|
110
124
|
- lib/review_and_approve.rb
|
125
|
+
- lib/tasks/review_and_approve.rake
|
111
126
|
- Rakefile
|
112
127
|
- README.md
|
113
128
|
homepage: ""
|
@@ -123,12 +138,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
138
|
requirements:
|
124
139
|
- - ">="
|
125
140
|
- !ruby/object:Gem::Version
|
141
|
+
hash: -927429969750751341
|
142
|
+
segments:
|
143
|
+
- 0
|
126
144
|
version: "0"
|
127
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
146
|
none: false
|
129
147
|
requirements:
|
130
148
|
- - ">="
|
131
149
|
- !ruby/object:Gem::Version
|
150
|
+
hash: -927429969750751341
|
151
|
+
segments:
|
152
|
+
- 0
|
132
153
|
version: "0"
|
133
154
|
requirements: []
|
134
155
|
|