acts_as_published 0.0.9.pre → 1.0.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.
- checksums.yaml +4 -4
- data/README.rdoc +36 -7
- data/Rakefile +2 -0
- data/config/locales/acts_as_published.de.yml +5 -0
- data/config/locales/acts_as_published.en.yml +5 -0
- data/lib/acts_as_published/active_admin_helper.rb +13 -13
- data/lib/acts_as_published/active_record.rb +28 -22
- data/lib/acts_as_published/engine.rb +5 -1
- data/lib/acts_as_published/version.rb +2 -2
- metadata +39 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a035af6fcf73fb14c6e3eea6debb278dcb119be0
|
4
|
+
data.tar.gz: 838c9ae5de0b52ad22c27d4762cacaa701074efb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ec754ed2b60dc7ee7281227ece1d789604dc8155dd2948c108cac6f2218396d5d5d23b6e22e828db007cda039617c1cb01a781c6eb4fc33e1c51a889fb1fc41
|
7
|
+
data.tar.gz: 876286b75d5d3251ffed168ac32cfc1db7918c18895782aacdde61bd444679963e91b36e1b6642e0128410c086354f7b49c40c34804a3569208a06d68a656629
|
data/README.rdoc
CHANGED
@@ -18,14 +18,43 @@ You need a published_at:timestamp column
|
|
18
18
|
|
19
19
|
In your model:
|
20
20
|
|
21
|
-
class Post < ActiveRecord::Base
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
class Post < ActiveRecord::Base
|
22
|
+
# acts as published
|
23
|
+
include ActsAsPublished::ActiveRecord
|
24
|
+
acts_as_published
|
25
|
+
|
26
|
+
# ...
|
27
|
+
end
|
28
|
+
|
29
|
+
== ActiveAdmin integration
|
30
|
+
|
31
|
+
ActiveAdmin.register Post do
|
32
|
+
form do |f|
|
33
|
+
f.inputs do
|
34
|
+
f.input :title
|
35
|
+
# ...
|
36
|
+
f.input :published, :as => :boolean
|
37
|
+
# ...
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
index do
|
42
|
+
column :title
|
43
|
+
# ...
|
44
|
+
acts_as_published_columns
|
45
|
+
# ...
|
46
|
+
end
|
47
|
+
|
48
|
+
show do
|
49
|
+
attributes_table do
|
50
|
+
row :title
|
51
|
+
# ...
|
52
|
+
acts_as_published_rows
|
53
|
+
# ...
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end if defined?(ActiveAdmin)
|
25
57
|
|
26
|
-
# ...
|
27
|
-
end
|
28
|
-
|
29
58
|
== Scopes
|
30
59
|
|
31
60
|
You get following scopes:
|
data/Rakefile
CHANGED
@@ -1,42 +1,42 @@
|
|
1
1
|
module ActsAsPublished
|
2
2
|
module ActiveAdminHelper
|
3
3
|
def acts_as_published_actions
|
4
|
-
action_item :only => :show do
|
4
|
+
action_item :publish, :only => :show do
|
5
5
|
if resource.published?
|
6
|
-
link_to I18n.t('acts_as_published.actions.unpublish'), self.send(:"toggle_published_#{active_admin_config.namespace.name}_#{resource.class.model_name.underscore.gsub("/", "_")}_path", resource)
|
6
|
+
link_to I18n.t('acts_as_published.actions.unpublish'), self.send(:"toggle_published_#{active_admin_config.namespace.name}_#{resource.class.model_name.to_s.underscore.gsub("/", "_")}_path", resource)
|
7
7
|
else
|
8
|
-
link_to I18n.t('acts_as_published.actions.publish'), self.send(:"toggle_published_#{active_admin_config.namespace.name}_#{resource.class.model_name.underscore.gsub("/", "_")}_path", resource)
|
8
|
+
link_to I18n.t('acts_as_published.actions.publish'), self.send(:"toggle_published_#{active_admin_config.namespace.name}_#{resource.class.model_name.to_s.underscore.gsub("/", "_")}_path", resource)
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
batch_action :toggle_published do |selection|
|
13
13
|
active_admin_config.resource_class.find(selection).each do |item|
|
14
14
|
item.toggle_published!
|
15
15
|
end
|
16
16
|
redirect_to :back
|
17
|
-
end
|
18
|
-
|
17
|
+
end
|
18
|
+
|
19
19
|
member_action :toggle_published do
|
20
|
-
resource.toggle_published!
|
20
|
+
resource.toggle_published!
|
21
21
|
if resource.published?
|
22
22
|
redirect_to :back, :notice => I18n.t('acts_as_published.notices.published', :name => resource )
|
23
23
|
else
|
24
24
|
redirect_to :back, :notice => I18n.t('acts_as_published.notices.unpublished', :name => resource )
|
25
|
-
end
|
26
|
-
end
|
25
|
+
end
|
26
|
+
end
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def acts_as_published_columns
|
30
30
|
column :published do |resource|
|
31
31
|
I18n.t(resource.published.to_s)
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def acts_as_published_rows
|
36
36
|
row :published do |resource|
|
37
37
|
I18n.t(resource.published.to_s)
|
38
38
|
end
|
39
39
|
row :published_at
|
40
|
-
end
|
40
|
+
end
|
41
41
|
end
|
42
|
-
end
|
42
|
+
end
|
@@ -4,55 +4,61 @@ module ActsAsPublished
|
|
4
4
|
klass.class_eval do
|
5
5
|
extend ClassMethods
|
6
6
|
include InstanceMethods
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
10
|
module ClassMethods
|
11
11
|
def acts_as_published
|
12
|
-
attr_accessible :published
|
13
|
-
|
12
|
+
attr_accessible :published if Rails.version < '4'
|
13
|
+
|
14
14
|
def published
|
15
15
|
t = self.arel_table
|
16
16
|
where(t[:published_at].not_eq(nil))
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def unpublished
|
20
20
|
t = self.arel_table
|
21
21
|
where(t[:published_at].eq(nil))
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
module InstanceMethods
|
27
27
|
def published
|
28
28
|
!!self.published_at
|
29
|
-
end
|
29
|
+
end
|
30
30
|
alias :published? :published
|
31
|
-
|
31
|
+
|
32
32
|
def published=(published)
|
33
|
-
if
|
34
|
-
|
35
|
-
# write_attribute(:published_at, Time.zone.now) # .to_date
|
33
|
+
if Rails.version < '4.2'
|
34
|
+
boolean_published = ::ActiveRecord::ConnectionAdapters::Column.value_to_boolean(published)
|
36
35
|
else
|
37
|
-
|
38
|
-
# write_attribute(:published_at, nil)
|
36
|
+
boolean_published = ::ActiveRecord::Type::Boolean.new.type_cast_from_user(published)
|
39
37
|
end
|
38
|
+
self.published_at = boolean_published ? Time.zone.now : nil
|
40
39
|
end
|
41
|
-
|
40
|
+
|
42
41
|
def toggle_published
|
43
42
|
if self.published_at.nil?
|
44
|
-
self.published_at = Time.zone.now
|
45
|
-
# write_attribute(:published_at, Time.zone.now) # .to_date
|
43
|
+
self.published_at = Time.zone.now
|
46
44
|
else
|
47
45
|
self.published_at = nil
|
48
|
-
|
49
|
-
end
|
46
|
+
end
|
50
47
|
end
|
51
|
-
|
48
|
+
|
52
49
|
def toggle_published!
|
53
50
|
toggle_published
|
54
51
|
save!
|
55
|
-
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def publish
|
55
|
+
self.published = true
|
56
|
+
end
|
57
|
+
|
58
|
+
def unpublish
|
59
|
+
self.published = false
|
60
|
+
end
|
56
61
|
end
|
57
62
|
end
|
58
|
-
end
|
63
|
+
end
|
64
|
+
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module ActsAsPublished
|
2
|
-
VERSION = '
|
3
|
-
end
|
2
|
+
VERSION = '1.0.1'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_published
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Vasquez Angel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.0
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 5.0.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.2.
|
29
|
+
version: 3.2.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 5.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: sqlite3
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +44,20 @@ dependencies:
|
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
46
|
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rails-dummy
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
62
|
name: thin
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,32 +132,32 @@ dependencies:
|
|
112
132
|
name: rspec-rails
|
113
133
|
requirement: !ruby/object:Gem::Requirement
|
114
134
|
requirements:
|
115
|
-
- - "
|
135
|
+
- - ">="
|
116
136
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
137
|
+
version: '0'
|
118
138
|
type: :development
|
119
139
|
prerelease: false
|
120
140
|
version_requirements: !ruby/object:Gem::Requirement
|
121
141
|
requirements:
|
122
|
-
- - "
|
142
|
+
- - ">="
|
123
143
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
144
|
+
version: '0'
|
125
145
|
- !ruby/object:Gem::Dependency
|
126
146
|
name: factory_girl_rails
|
127
147
|
requirement: !ruby/object:Gem::Requirement
|
128
148
|
requirements:
|
129
|
-
- - "
|
149
|
+
- - ">="
|
130
150
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
151
|
+
version: '0'
|
132
152
|
type: :development
|
133
153
|
prerelease: false
|
134
154
|
version_requirements: !ruby/object:Gem::Requirement
|
135
155
|
requirements:
|
136
|
-
- - "
|
156
|
+
- - ">="
|
137
157
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
158
|
+
version: '0'
|
139
159
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
160
|
+
name: guard-rails
|
141
161
|
requirement: !ruby/object:Gem::Requirement
|
142
162
|
requirements:
|
143
163
|
- - ">="
|
@@ -192,20 +212,6 @@ dependencies:
|
|
192
212
|
- - ">="
|
193
213
|
- !ruby/object:Gem::Version
|
194
214
|
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: forgery
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - '='
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: 0.5.0
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - '='
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: 0.5.0
|
209
215
|
description: Acts as published beahviour for active record models.
|
210
216
|
email:
|
211
217
|
- roberto@vasquez-angel.de
|
@@ -237,13 +243,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
237
243
|
version: '0'
|
238
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
245
|
requirements:
|
240
|
-
- - "
|
246
|
+
- - ">="
|
241
247
|
- !ruby/object:Gem::Version
|
242
|
-
version:
|
248
|
+
version: '0'
|
243
249
|
requirements: []
|
244
250
|
rubyforge_project:
|
245
|
-
rubygems_version: 2.
|
251
|
+
rubygems_version: 2.4.8
|
246
252
|
signing_key:
|
247
253
|
specification_version: 4
|
248
254
|
summary: Acts as published beahviour for active record models.
|
249
255
|
test_files: []
|
256
|
+
has_rdoc:
|