publish 0.1.0 → 0.1.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.
- data/.gitignore +2 -1
- data/.travis.yml +6 -1
- data/CHANGELOG.md +2 -0
- data/README.md +28 -2
- data/gemfiles/mongoid-master.gemfile +8 -0
- data/lib/mongoid/publish/callbacks.rb +22 -0
- data/lib/mongoid/publish/version.rb +1 -1
- data/lib/mongoid/publish.rb +2 -0
- data/lib/publish.rb +3 -1
- data/publish.gemspec +1 -3
- data/test/dummy/app/models/product.rb +16 -0
- data/test/integration/navigation_test.rb +1 -1
- data/test/publish/mongoid/publish/callbacks_test.rb +30 -0
- data/test/publish/mongoid/{post_test.rb → publish_test.rb} +1 -1
- data/test/support/factories/products.rb +5 -0
- data/test/test_helper.rb +0 -6
- metadata +14 -41
- data/Gemfile.lock +0 -155
- data/test/support/integration_case.rb +0 -5
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -7,11 +7,15 @@ Publish is a gem that adds the common functionality to publish (or set as draft)
|
|
7
7
|
|
8
8
|
Add to Gemfile
|
9
9
|
|
10
|
-
|
10
|
+
``` ruby
|
11
|
+
gem "publish", "~> 0.1.0"
|
12
|
+
```
|
11
13
|
|
12
14
|
Then run
|
13
15
|
|
14
|
-
|
16
|
+
``` terminal
|
17
|
+
bundle install
|
18
|
+
```
|
15
19
|
|
16
20
|
## Getting started
|
17
21
|
|
@@ -40,4 +44,26 @@ p.published? #true
|
|
40
44
|
Post.published.count #1
|
41
45
|
|
42
46
|
p.publication_status #Date.today or 'draft'
|
47
|
+
```
|
48
|
+
|
49
|
+
## Callbacks (before_publish and after_publish)
|
50
|
+
|
51
|
+
``` ruby
|
52
|
+
class Product
|
53
|
+
include Mongoid::Document
|
54
|
+
include Mongoid::Publish
|
55
|
+
|
56
|
+
field :name
|
57
|
+
|
58
|
+
before_publish do
|
59
|
+
puts "before publish"
|
60
|
+
end
|
61
|
+
|
62
|
+
after_publish
|
63
|
+
puts "after publish"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
product = Product.new
|
68
|
+
product.publish! #=> before publish after publish
|
43
69
|
```
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Mongoid
|
2
|
+
module Publish
|
3
|
+
module Callbacks
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
CALLBACKS = [
|
7
|
+
:after_publish,
|
8
|
+
:before_publish
|
9
|
+
].freeze
|
10
|
+
|
11
|
+
included do
|
12
|
+
extend ActiveModel::Callbacks
|
13
|
+
|
14
|
+
define_model_callbacks :publish
|
15
|
+
|
16
|
+
def publish!
|
17
|
+
run_callbacks(:publish) { super }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/mongoid/publish.rb
CHANGED
data/lib/publish.rb
CHANGED
data/publish.gemspec
CHANGED
@@ -18,11 +18,9 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.platform = Gem::Platform::RUBY
|
19
19
|
|
20
20
|
|
21
|
-
gem.add_dependency "mongoid", "
|
21
|
+
gem.add_dependency "mongoid", ">= 3.0.0"
|
22
22
|
|
23
23
|
gem.add_development_dependency "rails", "~> 3.2.0"
|
24
24
|
gem.add_development_dependency "rake", "~> 0.9"
|
25
|
-
gem.add_development_dependency "rspec-rails", "~> 2.10.1"
|
26
25
|
gem.add_development_dependency "simplecov", "~> 0.6.1"
|
27
|
-
gem.add_development_dependency "capybara", "~> 1.1.2"
|
28
26
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Product
|
2
|
+
include Mongoid::Document
|
3
|
+
include Mongoid::Publish
|
4
|
+
|
5
|
+
attr_reader :before_publish_called, :after_publish_called
|
6
|
+
|
7
|
+
field :name
|
8
|
+
|
9
|
+
before_publish do
|
10
|
+
@before_publish_called = true
|
11
|
+
end
|
12
|
+
|
13
|
+
after_publish do |object|
|
14
|
+
@after_publish_called = true
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path("../../../../test_helper", __FILE__)
|
2
|
+
|
3
|
+
class CallbacksTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
setup do
|
6
|
+
@klass = Product
|
7
|
+
@product = FactoryGirl.build(:product)
|
8
|
+
end
|
9
|
+
|
10
|
+
test "should includes the before_publish callback" do
|
11
|
+
assert @klass.respond_to?(:before_publish)
|
12
|
+
end
|
13
|
+
|
14
|
+
test "should includes the after_publish callback" do
|
15
|
+
assert @klass.respond_to?(:after_publish)
|
16
|
+
end
|
17
|
+
|
18
|
+
test "should not execute callbacks publish callbacks if not call publish!" do
|
19
|
+
assert_nil @product.before_publish_called
|
20
|
+
assert_nil @product.after_publish_called
|
21
|
+
end
|
22
|
+
|
23
|
+
test "should execute the before_publish and after_publish callbacks" do
|
24
|
+
@product.publish!
|
25
|
+
|
26
|
+
assert @product.before_publish_called
|
27
|
+
assert @product.after_publish_called
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -16,12 +16,6 @@ ActionMailer::Base.default_url_options[:host] = "test.com"
|
|
16
16
|
|
17
17
|
Rails.backtrace_cleaner.remove_silencers!
|
18
18
|
|
19
|
-
# Configure capybara for integration testing
|
20
|
-
require "capybara/rails"
|
21
|
-
Capybara.default_driver = :rack_test
|
22
|
-
Capybara.default_selector = :css
|
23
|
-
|
24
|
-
|
25
19
|
# Load support files
|
26
20
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
27
21
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: publish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,14 +11,14 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-10-03 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: mongoid
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ! '>='
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 3.0.0
|
24
24
|
type: :runtime
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
none: false
|
28
28
|
requirements:
|
29
|
-
- -
|
29
|
+
- - ! '>='
|
30
30
|
- !ruby/object:Gem::Version
|
31
31
|
version: 3.0.0
|
32
32
|
- !ruby/object:Gem::Dependency
|
@@ -61,22 +61,6 @@ dependencies:
|
|
61
61
|
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0.9'
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rspec-rails
|
66
|
-
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
|
-
requirements:
|
69
|
-
- - ~>
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: 2.10.1
|
72
|
-
type: :development
|
73
|
-
prerelease: false
|
74
|
-
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
|
-
requirements:
|
77
|
-
- - ~>
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 2.10.1
|
80
64
|
- !ruby/object:Gem::Dependency
|
81
65
|
name: simplecov
|
82
66
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,22 +77,6 @@ dependencies:
|
|
93
77
|
- - ~>
|
94
78
|
- !ruby/object:Gem::Version
|
95
79
|
version: 0.6.1
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: capybara
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
|
-
requirements:
|
101
|
-
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 1.1.2
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
|
-
requirements:
|
109
|
-
- - ~>
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: 1.1.2
|
112
80
|
description: Adds the functionality to publish/unpublish mongoid docs
|
113
81
|
email:
|
114
82
|
- contato@lucasrenan.com
|
@@ -122,11 +90,12 @@ files:
|
|
122
90
|
- .travis.yml
|
123
91
|
- CHANGELOG.md
|
124
92
|
- Gemfile
|
125
|
-
- Gemfile.lock
|
126
93
|
- MIT-LICENSE
|
127
94
|
- README.md
|
128
95
|
- Rakefile
|
96
|
+
- gemfiles/mongoid-master.gemfile
|
129
97
|
- lib/mongoid/publish.rb
|
98
|
+
- lib/mongoid/publish/callbacks.rb
|
130
99
|
- lib/mongoid/publish/version.rb
|
131
100
|
- lib/publish.rb
|
132
101
|
- publish.gemspec
|
@@ -136,6 +105,7 @@ files:
|
|
136
105
|
- test/dummy/app/helpers/application_helper.rb
|
137
106
|
- test/dummy/app/helpers/posts_helper.rb
|
138
107
|
- test/dummy/app/models/post.rb
|
108
|
+
- test/dummy/app/models/product.rb
|
139
109
|
- test/dummy/app/views/layouts/application.html.erb
|
140
110
|
- test/dummy/app/views/posts/_form.html.erb
|
141
111
|
- test/dummy/app/views/posts/edit.html.erb
|
@@ -170,9 +140,10 @@ files:
|
|
170
140
|
- test/dummy/public/stylesheets/scaffold.css
|
171
141
|
- test/dummy/script/rails
|
172
142
|
- test/integration/navigation_test.rb
|
173
|
-
- test/publish/mongoid/
|
143
|
+
- test/publish/mongoid/publish/callbacks_test.rb
|
144
|
+
- test/publish/mongoid/publish_test.rb
|
174
145
|
- test/support/factories/posts.rb
|
175
|
-
- test/support/
|
146
|
+
- test/support/factories/products.rb
|
176
147
|
- test/test_helper.rb
|
177
148
|
homepage: https://github.com/lucasrenan/publish
|
178
149
|
licenses: []
|
@@ -205,6 +176,7 @@ test_files:
|
|
205
176
|
- test/dummy/app/helpers/application_helper.rb
|
206
177
|
- test/dummy/app/helpers/posts_helper.rb
|
207
178
|
- test/dummy/app/models/post.rb
|
179
|
+
- test/dummy/app/models/product.rb
|
208
180
|
- test/dummy/app/views/layouts/application.html.erb
|
209
181
|
- test/dummy/app/views/posts/_form.html.erb
|
210
182
|
- test/dummy/app/views/posts/edit.html.erb
|
@@ -239,7 +211,8 @@ test_files:
|
|
239
211
|
- test/dummy/public/stylesheets/scaffold.css
|
240
212
|
- test/dummy/script/rails
|
241
213
|
- test/integration/navigation_test.rb
|
242
|
-
- test/publish/mongoid/
|
214
|
+
- test/publish/mongoid/publish/callbacks_test.rb
|
215
|
+
- test/publish/mongoid/publish_test.rb
|
243
216
|
- test/support/factories/posts.rb
|
244
|
-
- test/support/
|
217
|
+
- test/support/factories/products.rb
|
245
218
|
- test/test_helper.rb
|
data/Gemfile.lock
DELETED
@@ -1,155 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
publish (0.0.6)
|
5
|
-
mongoid (~> 3.0.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
actionmailer (3.2.6)
|
11
|
-
actionpack (= 3.2.6)
|
12
|
-
mail (~> 2.4.4)
|
13
|
-
actionpack (3.2.6)
|
14
|
-
activemodel (= 3.2.6)
|
15
|
-
activesupport (= 3.2.6)
|
16
|
-
builder (~> 3.0.0)
|
17
|
-
erubis (~> 2.7.0)
|
18
|
-
journey (~> 1.0.1)
|
19
|
-
rack (~> 1.4.0)
|
20
|
-
rack-cache (~> 1.2)
|
21
|
-
rack-test (~> 0.6.1)
|
22
|
-
sprockets (~> 2.1.3)
|
23
|
-
activemodel (3.2.6)
|
24
|
-
activesupport (= 3.2.6)
|
25
|
-
builder (~> 3.0.0)
|
26
|
-
activerecord (3.2.6)
|
27
|
-
activemodel (= 3.2.6)
|
28
|
-
activesupport (= 3.2.6)
|
29
|
-
arel (~> 3.0.2)
|
30
|
-
tzinfo (~> 0.3.29)
|
31
|
-
activeresource (3.2.6)
|
32
|
-
activemodel (= 3.2.6)
|
33
|
-
activesupport (= 3.2.6)
|
34
|
-
activesupport (3.2.6)
|
35
|
-
i18n (~> 0.6)
|
36
|
-
multi_json (~> 1.0)
|
37
|
-
addressable (2.2.8)
|
38
|
-
arel (3.0.2)
|
39
|
-
builder (3.0.0)
|
40
|
-
capybara (1.1.2)
|
41
|
-
mime-types (>= 1.16)
|
42
|
-
nokogiri (>= 1.3.3)
|
43
|
-
rack (>= 1.0.0)
|
44
|
-
rack-test (>= 0.5.4)
|
45
|
-
selenium-webdriver (~> 2.0)
|
46
|
-
xpath (~> 0.1.4)
|
47
|
-
childprocess (0.3.3)
|
48
|
-
ffi (~> 1.0.6)
|
49
|
-
colorific (1.0.2)
|
50
|
-
minitest (~> 2.8.0)
|
51
|
-
ruby-progressbar (~> 0.0.10)
|
52
|
-
diff-lcs (1.1.3)
|
53
|
-
erubis (2.7.0)
|
54
|
-
factory_girl (3.5.0)
|
55
|
-
activesupport (>= 3.0.0)
|
56
|
-
factory_girl_rails (3.5.0)
|
57
|
-
factory_girl (~> 3.5.0)
|
58
|
-
railties (>= 3.0.0)
|
59
|
-
ffi (1.0.11)
|
60
|
-
hike (1.2.1)
|
61
|
-
i18n (0.6.0)
|
62
|
-
journey (1.0.4)
|
63
|
-
json (1.7.3)
|
64
|
-
libwebsocket (0.1.3)
|
65
|
-
addressable
|
66
|
-
mail (2.4.4)
|
67
|
-
i18n (>= 0.4.0)
|
68
|
-
mime-types (~> 1.16)
|
69
|
-
treetop (~> 1.4.8)
|
70
|
-
mime-types (1.19)
|
71
|
-
minitest (2.8.1)
|
72
|
-
mongoid (3.0.0)
|
73
|
-
activemodel (~> 3.1)
|
74
|
-
moped (~> 1.1.1)
|
75
|
-
origin (~> 1.0.3)
|
76
|
-
tzinfo (~> 0.3.22)
|
77
|
-
moped (1.1.1)
|
78
|
-
multi_json (1.3.6)
|
79
|
-
nokogiri (1.5.5)
|
80
|
-
origin (1.0.4)
|
81
|
-
polyglot (0.3.3)
|
82
|
-
rack (1.4.1)
|
83
|
-
rack-cache (1.2)
|
84
|
-
rack (>= 0.4)
|
85
|
-
rack-ssl (1.3.2)
|
86
|
-
rack
|
87
|
-
rack-test (0.6.1)
|
88
|
-
rack (>= 1.0)
|
89
|
-
rails (3.2.6)
|
90
|
-
actionmailer (= 3.2.6)
|
91
|
-
actionpack (= 3.2.6)
|
92
|
-
activerecord (= 3.2.6)
|
93
|
-
activeresource (= 3.2.6)
|
94
|
-
activesupport (= 3.2.6)
|
95
|
-
bundler (~> 1.0)
|
96
|
-
railties (= 3.2.6)
|
97
|
-
railties (3.2.6)
|
98
|
-
actionpack (= 3.2.6)
|
99
|
-
activesupport (= 3.2.6)
|
100
|
-
rack-ssl (~> 1.3.2)
|
101
|
-
rake (>= 0.8.7)
|
102
|
-
rdoc (~> 3.4)
|
103
|
-
thor (>= 0.14.6, < 2.0)
|
104
|
-
rake (0.9.2.2)
|
105
|
-
rdoc (3.12)
|
106
|
-
json (~> 1.4)
|
107
|
-
rspec (2.10.0)
|
108
|
-
rspec-core (~> 2.10.0)
|
109
|
-
rspec-expectations (~> 2.10.0)
|
110
|
-
rspec-mocks (~> 2.10.0)
|
111
|
-
rspec-core (2.10.1)
|
112
|
-
rspec-expectations (2.10.0)
|
113
|
-
diff-lcs (~> 1.1.3)
|
114
|
-
rspec-mocks (2.10.1)
|
115
|
-
rspec-rails (2.10.1)
|
116
|
-
actionpack (>= 3.0)
|
117
|
-
activesupport (>= 3.0)
|
118
|
-
railties (>= 3.0)
|
119
|
-
rspec (~> 2.10.0)
|
120
|
-
ruby-progressbar (0.0.10)
|
121
|
-
rubyzip (0.9.9)
|
122
|
-
selenium-webdriver (2.24.0)
|
123
|
-
childprocess (>= 0.2.5)
|
124
|
-
libwebsocket (~> 0.1.3)
|
125
|
-
multi_json (~> 1.0)
|
126
|
-
rubyzip
|
127
|
-
simplecov (0.6.4)
|
128
|
-
multi_json (~> 1.0)
|
129
|
-
simplecov-html (~> 0.5.3)
|
130
|
-
simplecov-html (0.5.3)
|
131
|
-
sprockets (2.1.3)
|
132
|
-
hike (~> 1.2)
|
133
|
-
rack (~> 1.0)
|
134
|
-
tilt (~> 1.1, != 1.3.0)
|
135
|
-
thor (0.15.4)
|
136
|
-
tilt (1.3.3)
|
137
|
-
treetop (1.4.10)
|
138
|
-
polyglot
|
139
|
-
polyglot (>= 0.3.1)
|
140
|
-
tzinfo (0.3.33)
|
141
|
-
xpath (0.1.4)
|
142
|
-
nokogiri (~> 1.3)
|
143
|
-
|
144
|
-
PLATFORMS
|
145
|
-
ruby
|
146
|
-
|
147
|
-
DEPENDENCIES
|
148
|
-
capybara (~> 1.1.2)
|
149
|
-
colorific (~> 1.0.2)
|
150
|
-
factory_girl_rails (~> 3.5.0)
|
151
|
-
publish!
|
152
|
-
rails (~> 3.2.0)
|
153
|
-
rake (~> 0.9)
|
154
|
-
rspec-rails (~> 2.10.1)
|
155
|
-
simplecov (~> 0.6.1)
|