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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62135febf2b68a9f24c1ca264df51f31fb7fd064
4
- data.tar.gz: 528e407103d7827f6f9b8e049bd42bb39c458826
3
+ metadata.gz: a035af6fcf73fb14c6e3eea6debb278dcb119be0
4
+ data.tar.gz: 838c9ae5de0b52ad22c27d4762cacaa701074efb
5
5
  SHA512:
6
- metadata.gz: 643159352e234be159f0fa6c918600a855d4ba5385e821a95807272b8c3b242a4e4a821e1cc6fd5bc743e1bea5de142cdc38db66d89fcff768b4da7874f5dac8
7
- data.tar.gz: 559017e7455cbd83cb40da9461b018f9e34d6f5534e922ec6b9546d574a15cdf759ad96ed05ea91dee3c218f54bd65211f59499d37148d41eb56b6e8dfd580d7
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
- # acts as published
23
- include ActsAsPublished::ActiveRecord
24
- acts_as_published
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
@@ -36,3 +36,5 @@ end
36
36
 
37
37
 
38
38
  task :default => :test
39
+
40
+ require 'rails/dummy/tasks'
@@ -1,4 +1,9 @@
1
1
  de:
2
+ active_admin:
3
+ scopes:
4
+ all: Alle
5
+ published: Veröffentlicht
6
+ unpublished: Nicht veröffentlicht
2
7
  acts_as_published:
3
8
  actions:
4
9
  publish: Veröffentlichen
@@ -1,4 +1,9 @@
1
1
  en:
2
+ active_admin:
3
+ scopes:
4
+ all: All
5
+ published: Published
6
+ unpublished: Not published
2
7
  acts_as_published:
3
8
  actions:
4
9
  publish: Publish
@@ -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 # , :published_at
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 ::ActiveRecord::ConnectionAdapters::Column.value_to_boolean(published)
34
- self.published_at = Time.zone.now # .to_date
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
- self.published_at = nil
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 # .to_date
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
- # write_attribute(:published_at, nil)
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,4 +1,8 @@
1
1
  module ActsAsPublished
2
2
  class Engine < ::Rails::Engine
3
+ config.generators do |g|
4
+ g.test_framework :rspec
5
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
6
+ end
3
7
  end
4
- end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module ActsAsPublished
2
- VERSION = '0.0.9.pre'
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: 0.0.9.pre
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: 2014-06-13 00:00:00.000000000 Z
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: 3.2.7
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.7
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: '2.0'
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: '2.0'
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: '1.0'
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: '1.0'
158
+ version: '0'
139
159
  - !ruby/object:Gem::Dependency
140
- name: ffaker
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: 1.3.1
248
+ version: '0'
243
249
  requirements: []
244
250
  rubyforge_project:
245
- rubygems_version: 2.2.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: