aguids-publishable 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/controllers/publications_controller.rb +37 -0
- data/app/helpers/publications_helper.rb +39 -0
- data/config/routes.rb +4 -0
- data/publishable.gemspec +122 -0
- data/test/rails_root/test/functional/publications_controller_test.rb +109 -0
- data/test/rails_root/test/test_helper.rb +8 -27
- data/test/rails_root/test/unit/helpers/publications_helper_test.rb +91 -0
- data/test/rails_root/test/unit/post_test.rb +0 -4
- data/test/rails_root/test/unit/published_post_test.rb +1 -5
- metadata +10 -3
- data/test/rails_root/db/development.sqlite3 +0 -0
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class PublicationsController < ApplicationController
|
2
|
+
|
3
|
+
def create
|
4
|
+
if unpublished_resource.publish!
|
5
|
+
flash[:notice] = I18n.t('flash.publications.create.notice', :default => "#{resource.class.human_name} published successfully")
|
6
|
+
end
|
7
|
+
respond_to do |format|
|
8
|
+
format.html {redirect_to :back}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def destroy
|
13
|
+
if published_resource.unpublish!
|
14
|
+
flash[:notice] = I18n.t('flash.publications.destroy.notice', :default => "#{resource.class.human_name} unpublished successfully")
|
15
|
+
end
|
16
|
+
respond_to do |format|
|
17
|
+
format.html {redirect_to :back}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
def unpublished_resource
|
23
|
+
@resource ||= resource_class.unpublished.find(params[:id])
|
24
|
+
end
|
25
|
+
|
26
|
+
def published_resource
|
27
|
+
@resource ||= resource_class.published.find(params[:id])
|
28
|
+
end
|
29
|
+
|
30
|
+
def resource
|
31
|
+
@resource
|
32
|
+
end
|
33
|
+
|
34
|
+
def resource_class
|
35
|
+
params[:resource].camelize.constantize
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PublicationsHelper
|
2
|
+
def publish_path(resource, options = {})
|
3
|
+
url_for({:controller => 'publications', :action => 'create',
|
4
|
+
:resource => resource.class.to_s.underscore, :id => resource.id}.merge(options))
|
5
|
+
end
|
6
|
+
|
7
|
+
def publish_url(resource, options = {})
|
8
|
+
publish_path(resource, options.merge({ :only_path => false }))
|
9
|
+
end
|
10
|
+
|
11
|
+
def unpublish_path(resource, options = {})
|
12
|
+
url_for({:controller => 'publications', :action => 'destroy',
|
13
|
+
:resource => resource.class.to_s.underscore, :id => resource.id}.merge(options))
|
14
|
+
end
|
15
|
+
|
16
|
+
def unpublish_url(resource, options = {})
|
17
|
+
unpublish_path(resource, options.merge({ :only_path => false }))
|
18
|
+
end
|
19
|
+
|
20
|
+
def publication_links(resource)
|
21
|
+
tag = '<ul class="publication_links">'
|
22
|
+
if resource.unpublished?
|
23
|
+
tag << "<li>" << link_to(I18n.t('publications.publish', :default => 'Publish'), publish_path(resource)) << "</li>"
|
24
|
+
tag << '<li class="unpublish_disabled">' << I18n.t('publications.unpublish', :default => 'Unpublish') << '</li>'
|
25
|
+
else
|
26
|
+
tag << '<li class="publish_disabled">' << I18n.t('publications.publish', :default => 'Publish') << '</li>'
|
27
|
+
tag << "<li>" << link_to(I18n.t('publications.unpublish', :default => 'Unpublish'), unpublish_path(resource)) << "</li>"
|
28
|
+
end
|
29
|
+
tag
|
30
|
+
end
|
31
|
+
|
32
|
+
def publication_link(resource)
|
33
|
+
if resource.unpublished?
|
34
|
+
link_to I18n.t('publications.publish', :default => 'Publish'), publish_path(resource), :method => :post
|
35
|
+
else
|
36
|
+
link_to I18n.t('publications.unpublish', :default => 'Unpublish'), unpublish_path(resource), :method => :delete
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
ActionController::Routing::Routes.draw do |map|
|
2
|
+
map.connect ':resource/:id/publish', :controller => 'publications', :action => 'create', :conditions => {:method => :post}
|
3
|
+
map.connect ':resource/:id/unpublish', :controller => 'publications', :action => 'destroy', :conditions => {:method => :delete}
|
4
|
+
end
|
data/publishable.gemspec
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{publishable}
|
5
|
+
s.version = "0.1.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Felipe Doria"]
|
9
|
+
s.date = %q{2009-08-01}
|
10
|
+
s.email = %q{felipe.doria@gmail.com}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.rdoc"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".document",
|
17
|
+
".gitignore",
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION",
|
22
|
+
"app/controllers/publications_controller.rb",
|
23
|
+
"app/helpers/publications_helper.rb",
|
24
|
+
"config/routes.rb",
|
25
|
+
"init.rb",
|
26
|
+
"lib/publishable.rb",
|
27
|
+
"publishable.gemspec",
|
28
|
+
"test/rails_root/Rakefile",
|
29
|
+
"test/rails_root/app/controllers/application_controller.rb",
|
30
|
+
"test/rails_root/app/helpers/application_helper.rb",
|
31
|
+
"test/rails_root/app/models/post.rb",
|
32
|
+
"test/rails_root/app/models/published_post.rb",
|
33
|
+
"test/rails_root/config/boot.rb",
|
34
|
+
"test/rails_root/config/database.yml",
|
35
|
+
"test/rails_root/config/environment.rb",
|
36
|
+
"test/rails_root/config/environments/development.rb",
|
37
|
+
"test/rails_root/config/environments/production.rb",
|
38
|
+
"test/rails_root/config/environments/test.rb",
|
39
|
+
"test/rails_root/config/initializers/backtrace_silencers.rb",
|
40
|
+
"test/rails_root/config/initializers/inflections.rb",
|
41
|
+
"test/rails_root/config/initializers/mime_types.rb",
|
42
|
+
"test/rails_root/config/initializers/new_rails_defaults.rb",
|
43
|
+
"test/rails_root/config/initializers/session_store.rb",
|
44
|
+
"test/rails_root/config/locales/en.yml",
|
45
|
+
"test/rails_root/config/routes.rb",
|
46
|
+
"test/rails_root/db/migrate/20090731062231_create_posts.rb",
|
47
|
+
"test/rails_root/db/migrate/20090731073912_create_published_posts.rb",
|
48
|
+
"test/rails_root/db/schema.rb",
|
49
|
+
"test/rails_root/public/404.html",
|
50
|
+
"test/rails_root/public/422.html",
|
51
|
+
"test/rails_root/public/500.html",
|
52
|
+
"test/rails_root/public/favicon.ico",
|
53
|
+
"test/rails_root/public/images/rails.png",
|
54
|
+
"test/rails_root/public/index.html",
|
55
|
+
"test/rails_root/public/javascripts/application.js",
|
56
|
+
"test/rails_root/public/javascripts/controls.js",
|
57
|
+
"test/rails_root/public/javascripts/dragdrop.js",
|
58
|
+
"test/rails_root/public/javascripts/effects.js",
|
59
|
+
"test/rails_root/public/javascripts/prototype.js",
|
60
|
+
"test/rails_root/public/robots.txt",
|
61
|
+
"test/rails_root/script/about",
|
62
|
+
"test/rails_root/script/console",
|
63
|
+
"test/rails_root/script/dbconsole",
|
64
|
+
"test/rails_root/script/destroy",
|
65
|
+
"test/rails_root/script/generate",
|
66
|
+
"test/rails_root/script/performance/benchmarker",
|
67
|
+
"test/rails_root/script/performance/profiler",
|
68
|
+
"test/rails_root/script/plugin",
|
69
|
+
"test/rails_root/script/runner",
|
70
|
+
"test/rails_root/script/server",
|
71
|
+
"test/rails_root/test/functional/publications_controller_test.rb",
|
72
|
+
"test/rails_root/test/performance/browsing_test.rb",
|
73
|
+
"test/rails_root/test/test_helper.rb",
|
74
|
+
"test/rails_root/test/unit/helpers/publications_helper_test.rb",
|
75
|
+
"test/rails_root/test/unit/post_test.rb",
|
76
|
+
"test/rails_root/test/unit/published_post_test.rb"
|
77
|
+
]
|
78
|
+
s.homepage = %q{http://github.com/aguids/publishable}
|
79
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
80
|
+
s.require_paths = ["lib"]
|
81
|
+
s.rubygems_version = %q{1.3.4}
|
82
|
+
s.summary = %q{Rails engine for publishing behavior. Depends on AASM.}
|
83
|
+
s.test_files = [
|
84
|
+
"test/rails_root/app/controllers/application_controller.rb",
|
85
|
+
"test/rails_root/app/helpers/application_helper.rb",
|
86
|
+
"test/rails_root/app/models/post.rb",
|
87
|
+
"test/rails_root/app/models/published_post.rb",
|
88
|
+
"test/rails_root/config/boot.rb",
|
89
|
+
"test/rails_root/config/environment.rb",
|
90
|
+
"test/rails_root/config/environments/development.rb",
|
91
|
+
"test/rails_root/config/environments/production.rb",
|
92
|
+
"test/rails_root/config/environments/test.rb",
|
93
|
+
"test/rails_root/config/initializers/backtrace_silencers.rb",
|
94
|
+
"test/rails_root/config/initializers/inflections.rb",
|
95
|
+
"test/rails_root/config/initializers/mime_types.rb",
|
96
|
+
"test/rails_root/config/initializers/new_rails_defaults.rb",
|
97
|
+
"test/rails_root/config/initializers/session_store.rb",
|
98
|
+
"test/rails_root/config/routes.rb",
|
99
|
+
"test/rails_root/db/migrate/20090731062231_create_posts.rb",
|
100
|
+
"test/rails_root/db/migrate/20090731073912_create_published_posts.rb",
|
101
|
+
"test/rails_root/db/schema.rb",
|
102
|
+
"test/rails_root/test/functional/publications_controller_test.rb",
|
103
|
+
"test/rails_root/test/performance/browsing_test.rb",
|
104
|
+
"test/rails_root/test/test_helper.rb",
|
105
|
+
"test/rails_root/test/unit/helpers/publications_helper_test.rb",
|
106
|
+
"test/rails_root/test/unit/post_test.rb",
|
107
|
+
"test/rails_root/test/unit/published_post_test.rb"
|
108
|
+
]
|
109
|
+
|
110
|
+
if s.respond_to? :specification_version then
|
111
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
112
|
+
s.specification_version = 3
|
113
|
+
|
114
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
115
|
+
s.add_runtime_dependency(%q<rubyist-aasm>, [">= 1.3.4"])
|
116
|
+
else
|
117
|
+
s.add_dependency(%q<rubyist-aasm>, [">= 1.3.4"])
|
118
|
+
end
|
119
|
+
else
|
120
|
+
s.add_dependency(%q<rubyist-aasm>, [">= 1.3.4"])
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class PublicationsControllerTest < ActionController::TestCase
|
4
|
+
def setup
|
5
|
+
@request.env["HTTP_REFERER"] = '/'
|
6
|
+
end
|
7
|
+
|
8
|
+
# Routes
|
9
|
+
test "route should match publish" do
|
10
|
+
assert_routing( {:method => 'post', :path => 'resource/17/publish'}, {:controller => 'publications', :action => 'create', :id => '17', :resource => 'resource'})
|
11
|
+
end
|
12
|
+
|
13
|
+
test "route should match unpublish" do
|
14
|
+
assert_routing( {:method => 'delete', :path => 'resource/17/unpublish'}, {:controller => 'publications', :action => 'destroy', :id => '17', :resource => 'resource'})
|
15
|
+
end
|
16
|
+
|
17
|
+
test "create with publishable resource should redirect back" do
|
18
|
+
@post = create_post(:title => 'Name')
|
19
|
+
post :create, :resource => 'post', :id => @post.id
|
20
|
+
assert_redirected_to '/'
|
21
|
+
end
|
22
|
+
|
23
|
+
test "create with publishable resource should publish" do
|
24
|
+
@post = create_post(:title => 'Name')
|
25
|
+
post :create, :resource => 'post', :id => @post.id
|
26
|
+
assert_not_nil assigns(:resource)
|
27
|
+
assert_equal @post, assigns(:resource)
|
28
|
+
assert assigns(:resource).published?
|
29
|
+
end
|
30
|
+
|
31
|
+
test "create with publishable resource should set the flash" do
|
32
|
+
@post = create_post(:title => 'Name')
|
33
|
+
post :create, :resource => 'post', :id => @post.id
|
34
|
+
assert_not_nil flash[:notice]
|
35
|
+
end
|
36
|
+
|
37
|
+
test "create with publishable resource should accept I18n translations for flash" do
|
38
|
+
I18n.backend.store_translations :en, :flash => { :publications => { :create => { :notice => 'Test Message' }}}
|
39
|
+
@post = create_post(:title => 'Name')
|
40
|
+
post :create, :resource => 'post', :id => @post.id
|
41
|
+
assert_equal 'Test Message', flash[:notice]
|
42
|
+
end
|
43
|
+
|
44
|
+
test "create with unpublishable resource should redirect back" do
|
45
|
+
@post = create_post
|
46
|
+
post :create, :resource => 'post', :id => @post.id
|
47
|
+
assert_redirected_to '/'
|
48
|
+
end
|
49
|
+
|
50
|
+
test "create with unpublishable resource should not publish" do
|
51
|
+
@post = create_post
|
52
|
+
post :create, :resource => 'post', :id => @post.id
|
53
|
+
assert_not_nil assigns(:resource)
|
54
|
+
assert_equal @post, assigns(:resource)
|
55
|
+
assert !assigns(:resource).published?
|
56
|
+
end
|
57
|
+
|
58
|
+
test "create with unpublishable resource should not set flash" do
|
59
|
+
@post = create_post
|
60
|
+
post :create, :resource => 'post', :id => @post.id
|
61
|
+
assert flash.empty?
|
62
|
+
end
|
63
|
+
|
64
|
+
test "create with published resource should raise an error" do
|
65
|
+
@post = create_post(:title => 'Name')
|
66
|
+
@post.publish!
|
67
|
+
assert_raise ActiveRecord::RecordNotFound do
|
68
|
+
post :create, :resource => 'post', :id => @post.id
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
test "destroy with published resource should redirect back" do
|
73
|
+
@post = create_post(:title => 'Name')
|
74
|
+
@post.publish!
|
75
|
+
delete :destroy, :resource => 'post', :id => @post.id
|
76
|
+
assert_redirected_to '/'
|
77
|
+
end
|
78
|
+
|
79
|
+
test "destroy with published resource should unpublish" do
|
80
|
+
@post = create_post(:title => 'Name')
|
81
|
+
@post.publish!
|
82
|
+
delete :destroy, :resource => 'post', :id => @post.id
|
83
|
+
assert_not_nil assigns(:resource)
|
84
|
+
assert_equal @post, assigns(:resource)
|
85
|
+
assert assigns(:resource).unpublished?
|
86
|
+
end
|
87
|
+
|
88
|
+
test "destroy with published resource should set flash" do
|
89
|
+
@post = create_post(:title => 'Name')
|
90
|
+
@post.publish!
|
91
|
+
delete :destroy, :resource => 'post', :id => @post.id
|
92
|
+
assert_not_nil flash[:notice]
|
93
|
+
end
|
94
|
+
|
95
|
+
test "destroy with published resource should accept I18n translations for flash" do
|
96
|
+
I18n.backend.store_translations :en, :flash => { :publications => { :destroy => { :notice => 'Test Message' }}}
|
97
|
+
@post = create_post(:title => 'Name')
|
98
|
+
@post.publish!
|
99
|
+
delete :destroy, :resource => 'post', :id => @post.id
|
100
|
+
assert_equal 'Test Message', flash[:notice]
|
101
|
+
end
|
102
|
+
|
103
|
+
test "destroy with unpublished resource should raise an error" do
|
104
|
+
@post = create_post
|
105
|
+
assert_raise ActiveRecord::RecordNotFound do
|
106
|
+
delete :destroy, :resource => 'post', :id => @post.id
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -3,36 +3,17 @@ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
|
3
3
|
require 'test_help'
|
4
4
|
|
5
5
|
class ActiveSupport::TestCase
|
6
|
-
# Transactional fixtures accelerate your tests by wrapping each test method
|
7
|
-
# in a transaction that's rolled back on completion. This ensures that the
|
8
|
-
# test database remains unchanged so your fixtures don't have to be reloaded
|
9
|
-
# between every test method. Fewer database queries means faster tests.
|
10
|
-
#
|
11
|
-
# Read Mike Clark's excellent walkthrough at
|
12
|
-
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
13
|
-
#
|
14
|
-
# Every Active Record database supports transactions except MyISAM tables
|
15
|
-
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
16
|
-
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
17
|
-
# is recommended.
|
18
|
-
#
|
19
|
-
# The only drawback to using transactional fixtures is when you actually
|
20
|
-
# need to test transactions. Since your test is bracketed by a transaction,
|
21
|
-
# any transactions started in your code will be automatically rolled back.
|
22
6
|
self.use_transactional_fixtures = true
|
23
|
-
|
24
|
-
# Instantiated fixtures are slow, but give you @david where otherwise you
|
25
|
-
# would need people(:david). If you don't want to migrate your existing
|
26
|
-
# test cases which use the @david style and don't mind the speed hit (each
|
27
|
-
# instantiated fixtures translates to a database query per test method),
|
28
|
-
# then set this back to true.
|
29
7
|
self.use_instantiated_fixtures = false
|
30
|
-
|
31
|
-
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
|
32
|
-
#
|
33
|
-
# Note: You'll currently still have to declare fixtures explicitly in integration tests
|
34
|
-
# -- they do not yet inherit this setting
|
35
8
|
fixtures :all
|
36
9
|
|
37
10
|
# Add more helper methods to be used by all tests here...
|
11
|
+
|
12
|
+
def create_post(options = {})
|
13
|
+
Post.create(options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_published_post
|
17
|
+
PublishedPost.create
|
18
|
+
end
|
38
19
|
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class PublicationsHelperTest < ActionView::TestCase
|
4
|
+
def protect_against_forgery?
|
5
|
+
end
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@host = 'http://test.host'
|
9
|
+
@post = create_post(:title => 'Title')
|
10
|
+
@controller = TestController.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def teardown
|
14
|
+
I18n.backend.store_translations :en, :publications => nil
|
15
|
+
end
|
16
|
+
|
17
|
+
[:publish, :unpublish].each do |action|
|
18
|
+
test "#{action} path and url" do
|
19
|
+
path = "/post/#{@post.id}/#{action}"
|
20
|
+
assert_equal path, send("#{action}_path", @post)
|
21
|
+
assert_equal "#{@host}#{path}", send("#{action}_url", @post)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
test "publication links should have a ul container" do
|
26
|
+
html = publication_links(@post)
|
27
|
+
assert_match '<ul class="publication_links">', html
|
28
|
+
end
|
29
|
+
|
30
|
+
test "publication links should return link to publish if unpublished" do
|
31
|
+
html = publication_links(@post)
|
32
|
+
assert_match /<a href="[^"]*".*Publish/i, html
|
33
|
+
end
|
34
|
+
|
35
|
+
test "publication links should return link to unpublish if published" do
|
36
|
+
@post.publish!
|
37
|
+
html = publication_links(@post)
|
38
|
+
assert_match /<a href="[^"]*".*Unpublish/i, html
|
39
|
+
end
|
40
|
+
|
41
|
+
test "publication links should return publish disabled if published" do
|
42
|
+
@post.publish!
|
43
|
+
html = publication_links(@post)
|
44
|
+
assert_match /<li class="publish_disabled">Publish/i, html
|
45
|
+
end
|
46
|
+
|
47
|
+
test "publication links should return unpublish disabled if unpublished" do
|
48
|
+
html = publication_links(@post)
|
49
|
+
assert_match /<li class="unpublish_disabled">Unpublish/i, html
|
50
|
+
end
|
51
|
+
|
52
|
+
test "publication links should accept I18n translations if unpublished" do
|
53
|
+
I18n.backend.store_translations :en, :publications => { :publish => 'Publish Test Message', :unpublish => 'Unpublish Test Message' }
|
54
|
+
html = publication_links(@post)
|
55
|
+
assert_match /<a href="[^"]*".*Publish Test Message/i, html
|
56
|
+
assert_match /<li class="unpublish_disabled">Unpublish Test Message/i, html
|
57
|
+
end
|
58
|
+
|
59
|
+
test "publication links should accept I18n translations if published" do
|
60
|
+
I18n.backend.store_translations :en, :publications => { :publish => 'Publish Test Message', :unpublish => 'Unpublish Test Message' }
|
61
|
+
@post.publish!
|
62
|
+
html = publication_links(@post)
|
63
|
+
assert_match /<a href="[^"]*".*Unpublish Test Message/i, html
|
64
|
+
assert_match /<li class="publish_disabled">Publish Test Message/i, html
|
65
|
+
end
|
66
|
+
|
67
|
+
# Solo Helper
|
68
|
+
test "publication link should return publish if unpublished" do
|
69
|
+
html = publication_link(@post)
|
70
|
+
assert_match /<a href="[^"]*".*Publish/i, html
|
71
|
+
end
|
72
|
+
|
73
|
+
test "publication link should return unpublish if published" do
|
74
|
+
@post.publish!
|
75
|
+
html = publication_link(@post)
|
76
|
+
assert_match /<a href="[^"]*".*Unpublish/i, html
|
77
|
+
end
|
78
|
+
|
79
|
+
test "publication link should accept I18n translations on publish" do
|
80
|
+
I18n.backend.store_translations :en, :publications => { :publish => 'Test Message' }
|
81
|
+
html = publication_link(@post)
|
82
|
+
assert_match /Test Message/i, html
|
83
|
+
end
|
84
|
+
|
85
|
+
test "publication link should accept I18n translations on unpublish" do
|
86
|
+
@post.publish!
|
87
|
+
I18n.backend.store_translations :en, :publications => { :unpublish => 'Test Message' }
|
88
|
+
html = publication_link(@post)
|
89
|
+
assert_match /Test Message/i, html
|
90
|
+
end
|
91
|
+
end
|
@@ -2,15 +2,11 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class PublishedPostTest < ActiveSupport::TestCase
|
4
4
|
def setup
|
5
|
-
@post =
|
5
|
+
@post = create_published_post
|
6
6
|
end
|
7
7
|
|
8
8
|
test "should start published" do
|
9
9
|
assert @post.published?
|
10
10
|
assert !@post.unpublished?
|
11
11
|
end
|
12
|
-
|
13
|
-
def create_post
|
14
|
-
PublishedPost.create
|
15
|
-
end
|
16
12
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aguids-publishable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felipe Doria
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-01 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -38,8 +38,12 @@ files:
|
|
38
38
|
- README.rdoc
|
39
39
|
- Rakefile
|
40
40
|
- VERSION
|
41
|
+
- app/controllers/publications_controller.rb
|
42
|
+
- app/helpers/publications_helper.rb
|
43
|
+
- config/routes.rb
|
41
44
|
- init.rb
|
42
45
|
- lib/publishable.rb
|
46
|
+
- publishable.gemspec
|
43
47
|
- test/rails_root/Rakefile
|
44
48
|
- test/rails_root/app/controllers/application_controller.rb
|
45
49
|
- test/rails_root/app/helpers/application_helper.rb
|
@@ -58,7 +62,6 @@ files:
|
|
58
62
|
- test/rails_root/config/initializers/session_store.rb
|
59
63
|
- test/rails_root/config/locales/en.yml
|
60
64
|
- test/rails_root/config/routes.rb
|
61
|
-
- test/rails_root/db/development.sqlite3
|
62
65
|
- test/rails_root/db/migrate/20090731062231_create_posts.rb
|
63
66
|
- test/rails_root/db/migrate/20090731073912_create_published_posts.rb
|
64
67
|
- test/rails_root/db/schema.rb
|
@@ -84,8 +87,10 @@ files:
|
|
84
87
|
- test/rails_root/script/plugin
|
85
88
|
- test/rails_root/script/runner
|
86
89
|
- test/rails_root/script/server
|
90
|
+
- test/rails_root/test/functional/publications_controller_test.rb
|
87
91
|
- test/rails_root/test/performance/browsing_test.rb
|
88
92
|
- test/rails_root/test/test_helper.rb
|
93
|
+
- test/rails_root/test/unit/helpers/publications_helper_test.rb
|
89
94
|
- test/rails_root/test/unit/post_test.rb
|
90
95
|
- test/rails_root/test/unit/published_post_test.rb
|
91
96
|
has_rdoc: false
|
@@ -134,7 +139,9 @@ test_files:
|
|
134
139
|
- test/rails_root/db/migrate/20090731062231_create_posts.rb
|
135
140
|
- test/rails_root/db/migrate/20090731073912_create_published_posts.rb
|
136
141
|
- test/rails_root/db/schema.rb
|
142
|
+
- test/rails_root/test/functional/publications_controller_test.rb
|
137
143
|
- test/rails_root/test/performance/browsing_test.rb
|
138
144
|
- test/rails_root/test/test_helper.rb
|
145
|
+
- test/rails_root/test/unit/helpers/publications_helper_test.rb
|
139
146
|
- test/rails_root/test/unit/post_test.rb
|
140
147
|
- test/rails_root/test/unit/published_post_test.rb
|
Binary file
|