mist 0.6.2 → 0.6.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/Gemfile.lock
CHANGED
@@ -67,6 +67,7 @@ class Mist::PostsController < ApplicationController
|
|
67
67
|
# POST /posts.json
|
68
68
|
def create
|
69
69
|
redirect_to posts_path and return unless Mist.authorized?(:create_post, self)
|
70
|
+
coerce_date(params[:post], 'published_at')
|
70
71
|
@post = Mist::Post.new(params[:post])
|
71
72
|
|
72
73
|
respond_to do |format|
|
@@ -87,6 +88,7 @@ class Mist::PostsController < ApplicationController
|
|
87
88
|
@post = Mist::Post.find(params[:id])
|
88
89
|
|
89
90
|
respond_to do |format|
|
91
|
+
coerce_date(params[:post], 'published_at')
|
90
92
|
if @post.update_attributes(params[:post])
|
91
93
|
format.html { redirect_to @post, :notice => 'Post was successfully updated.' }
|
92
94
|
format.json { head :ok }
|
@@ -111,6 +113,21 @@ class Mist::PostsController < ApplicationController
|
|
111
113
|
end
|
112
114
|
|
113
115
|
private
|
116
|
+
def coerce_date(hash, key)
|
117
|
+
date = hash[key]
|
118
|
+
unless date.respond_to?(:strftime) || date.blank?
|
119
|
+
if date =~ /^.{2}-.{2}-.{4}$/
|
120
|
+
hash[key] = DateTime.strptime(date, "%m-%d-%Y")
|
121
|
+
elsif date =~ /^.{4}-.{2}-.{2}/
|
122
|
+
hash[key] = DateTime.strptime(date, "%Y-%m-%d")
|
123
|
+
else
|
124
|
+
hash[key] = DateTime.strptime(date, "%a %b %d %H:%M:%S %z %Y")
|
125
|
+
end
|
126
|
+
end
|
127
|
+
rescue
|
128
|
+
raise "Couldn't parse date: #{date.inspect}"
|
129
|
+
end
|
130
|
+
|
114
131
|
def cache_path
|
115
132
|
options = Mist.authorized_actions.inject(ActiveSupport::OrderedHash.new) do |hash, key|
|
116
133
|
hash[key] = true if Mist.authorized?(key, self)
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<%= authorized_links admin_link_separator,
|
8
8
|
[:edit_post, 'Edit', edit_post_path(post.id)],
|
9
|
-
[:destroy_post, 'Destroy', post.id, {:confirm => 'Are you sure?', :method => :delete}] %>
|
9
|
+
[:destroy_post, 'Destroy', post_path(post.id), {:confirm => 'Are you sure?', :method => :delete}] %>
|
10
10
|
</div>
|
11
11
|
|
12
12
|
<%= yield :subcaption %>
|
@@ -9,14 +9,14 @@ Feature: Recent posts
|
|
9
9
|
|
10
10
|
Scenario: Most recent of 7
|
11
11
|
Given I have published these posts:
|
12
|
-
| title |
|
13
|
-
| one |
|
14
|
-
| two |
|
15
|
-
| three |
|
16
|
-
| four |
|
17
|
-
| five |
|
18
|
-
| six |
|
19
|
-
| seven |
|
12
|
+
| title | published_at |
|
13
|
+
| one | 01-01-2011 |
|
14
|
+
| two | 01-02-2011 |
|
15
|
+
| three | 01-03-2011 |
|
16
|
+
| four | 01-04-2011 |
|
17
|
+
| five | 01-05-2011 |
|
18
|
+
| six | 01-06-2011 |
|
19
|
+
| seven | 01-07-2011 |
|
20
20
|
When I go to the posts page
|
21
21
|
Then the "recent posts" sidebar should contain:
|
22
22
|
| title |
|
data/lib/mist/version.rb
CHANGED
@@ -31,27 +31,39 @@ describe Mist::PostsController do
|
|
31
31
|
assigns(:posts).should eq([post])
|
32
32
|
end
|
33
33
|
|
34
|
-
describe "with
|
34
|
+
describe "with posts" do
|
35
35
|
before do
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
post :create, :post => attributes_for(:post, :title => "one", :published_at => '01-26-2012')
|
37
|
+
post :create, :post => attributes_for(:post, :title => "two", :published_at => '01-22-2012')
|
38
|
+
post :create, :post => attributes_for(:post, :title => "three", :published_at => '01-29-2012')
|
39
|
+
post :create, :post => attributes_for(:post, :title => "four", :published_at => nil)
|
40
|
+
post :create, :post => attributes_for(:post, :title => "five", :published_at => '01-30-2012')
|
41
|
+
post :create, :post => attributes_for(:post, :title => "six", :published_at => '01-28-2012')
|
42
|
+
post :create, :post => attributes_for(:post, :title => "seven", :published_at => '01-25-2012')
|
43
|
+
post :create, :post => attributes_for(:post, :title => "eight", :published_at => "09-24-2010")
|
44
|
+
post :create, :post => attributes_for(:post, :title => "nine", :published_at => "01-27-2012")
|
45
|
+
|
46
|
+
@one = Mist::Post.find("one")
|
47
|
+
@two = Mist::Post.find("two")
|
48
|
+
@three = Mist::Post.find("three")
|
49
|
+
@four = Mist::Post.find("four")
|
50
|
+
@five = Mist::Post.find("five")
|
51
|
+
@six = Mist::Post.find("six")
|
52
|
+
@seven = Mist::Post.find("seven")
|
53
|
+
@eight = Mist::Post.find("eight")
|
54
|
+
@nine = Mist::Post.find("nine")
|
43
55
|
end
|
44
56
|
|
45
57
|
it "assigns the posts in order" do
|
46
58
|
get :index, {:use_route => :mist}, valid_session
|
47
|
-
assigns(:posts).collect { |p| p.id }.should eq([@four.id, @five.id, @three.id, @six.id, @one.id, @seven.id, @two.id])
|
59
|
+
assigns(:posts).collect { |p| p.id }.should eq([@four.id, @five.id, @three.id, @six.id, @nine.id, @one.id, @seven.id, @two.id, @eight.id])
|
48
60
|
end
|
49
61
|
|
50
62
|
describe "when not authorized" do
|
51
63
|
before { Mist.authorize { false } }
|
52
64
|
it "assigns the posts in order, omitting unpublished" do
|
53
65
|
get :index, {:use_route => :mist}, valid_session
|
54
|
-
assigns(:posts).collect { |p| p.id }.should eq([@five.id, @three.id, @six.id, @one.id, @seven.id, @two.id])
|
66
|
+
assigns(:posts).collect { |p| p.id }.should eq([@five.id, @three.id, @six.id, @nine.id, @one.id, @seven.id, @two.id, @eight.id])
|
55
67
|
end
|
56
68
|
end
|
57
69
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 3
|
10
|
+
version: 0.6.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Colin MacKenzie IV
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-29 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|