refinerycms-blog 2.1.0 → 3.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/.travis.yml +9 -23
- data/Gemfile +15 -7
- data/Rakefile +0 -1
- data/app/assets/javascripts/refinery/blog/backend.js +18 -59
- data/app/assets/stylesheets/refinery/blog/backend.css.scss +4 -55
- data/app/assets/stylesheets/refinery/blog/frontend.css.scss +2 -2
- data/app/controllers/refinery/blog/admin/categories_controller.rb +6 -0
- data/app/controllers/refinery/blog/admin/posts_controller.rb +25 -3
- data/app/controllers/refinery/blog/blog_controller.rb +31 -5
- data/app/controllers/refinery/blog/categories_controller.rb +10 -3
- data/app/controllers/refinery/blog/posts_controller.rb +16 -6
- data/app/helpers/refinery/blog/controller_helper.rb +1 -22
- data/app/models/refinery/blog/categorization.rb +0 -1
- data/app/models/refinery/blog/category.rb +3 -6
- data/app/models/refinery/blog/comment.rb +15 -17
- data/app/models/refinery/blog/post.rb +44 -43
- data/app/views/refinery/blog/admin/_submenu.html.erb +1 -3
- data/app/views/refinery/blog/admin/categories/_category.html.erb +14 -5
- data/app/views/refinery/blog/admin/posts/_form.html.erb +13 -6
- data/app/views/refinery/blog/admin/posts/_form_part.html.erb +1 -1
- data/app/views/refinery/blog/admin/posts/_post.html.erb +12 -5
- data/app/views/refinery/blog/admin/posts/_teaser_part.html.erb +1 -1
- data/app/views/refinery/blog/posts/index.html.erb +2 -2
- data/app/views/refinery/blog/shared/_categories.html.erb +3 -3
- data/app/views/refinery/shared/admin/_autocomplete.html.erb +45 -0
- data/bin/rails +5 -0
- data/bin/refinerycms +62 -0
- data/changelog.md +4 -1
- data/config/locales/cs.yml +2 -2
- data/config/locales/en.yml +3 -0
- data/config/locales/fr.yml +6 -4
- data/config/locales/nb.yml +154 -14
- data/config/locales/nl.yml +21 -0
- data/config/locales/pl.yml +2 -2
- data/config/locales/ru.yml +25 -14
- data/config/locales/zh-CN.yml +32 -1
- data/config/locales/zh-TW.yml +160 -0
- data/config/routes.rb +6 -3
- data/db/migrate/20110803223522_create_blog_structure.rb +4 -4
- data/db/migrate/20120531113632_delete_cached_slugs.rb +2 -2
- data/db/migrate/20140622132537_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
- data/db/migrate/20140622132538_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
- data/db/seeds.rb +4 -4
- data/lib/refinery/blog.rb +1 -1
- data/lib/refinery/blog/configuration.rb +1 -1
- data/lib/refinery/blog/engine.rb +8 -3
- data/readme.md +21 -6
- data/refinerycms-blog.gemspec +9 -7
- data/script/rails +1 -3
- data/spec/controllers/refinery/blog/admin/comments_controller_spec.rb +23 -19
- data/spec/controllers/refinery/blog/admin/posts_controller_spec.rb +35 -0
- data/spec/controllers/refinery/blog/posts_controller_spec.rb +3 -3
- data/spec/factories/blog_posts.rb +1 -1
- data/spec/factories/user.rb +27 -0
- data/spec/features/refinery/blog/admin/categories_spec.rb +106 -104
- data/spec/features/refinery/blog/admin/comments_spec.rb +18 -18
- data/spec/features/refinery/blog/admin/menu_spec.rb +14 -8
- data/spec/features/refinery/blog/admin/posts_spec.rb +99 -86
- data/spec/features/refinery/blog/categories_spec.rb +20 -18
- data/spec/features/refinery/blog/posts_spec.rb +128 -124
- data/spec/helpers/refinery/blog/posts_helper_spec.rb +13 -13
- data/spec/lib/refinery/blog/engine_spec.rb +1 -11
- data/spec/models/refinery/blog/category_spec.rb +10 -10
- data/spec/models/refinery/blog/comment_spec.rb +3 -3
- data/spec/models/refinery/blog/post_spec.rb +59 -33
- data/spec/spec_helper.rb +2 -3
- metadata +75 -50
- data/app/assets/images/refinery/blog/icons/add.png +0 -0
- data/app/assets/images/refinery/blog/icons/cog.png +0 -0
- data/app/assets/images/refinery/blog/icons/comment.png +0 -0
- data/app/assets/images/refinery/blog/icons/comment_cross.png +0 -0
- data/app/assets/images/refinery/blog/icons/comment_tick.png +0 -0
- data/app/assets/images/refinery/blog/icons/comments.png +0 -0
- data/app/assets/images/refinery/blog/icons/down.gif +0 -0
- data/app/assets/images/refinery/blog/icons/folder.png +0 -0
- data/app/assets/images/refinery/blog/icons/folder_add.png +0 -0
- data/app/assets/images/refinery/blog/icons/folder_edit.png +0 -0
- data/app/assets/images/refinery/blog/icons/page.png +0 -0
- data/app/assets/images/refinery/blog/icons/page_add.png +0 -0
- data/app/assets/images/refinery/blog/icons/page_copy.png +0 -0
- data/app/assets/images/refinery/blog/icons/up.gif +0 -0
- data/spec/helpers/refinery/blog/controller_helper_spec.rb +0 -27
- data/todo.md +0 -5
@@ -2,37 +2,37 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Refinery
|
4
4
|
module Blog
|
5
|
-
describe Category do
|
5
|
+
describe Category, type: :model do
|
6
6
|
let(:category) { FactoryGirl.create(:blog_category) }
|
7
|
-
let(:
|
7
|
+
let(:author) { FactoryGirl.create(:authentication_devise_refinery_user) }
|
8
8
|
|
9
9
|
describe "validations" do
|
10
10
|
it "requires title" do
|
11
|
-
FactoryGirl.build(:blog_category, :title => "").
|
11
|
+
expect(FactoryGirl.build(:blog_category, :title => "")).not_to be_valid
|
12
12
|
end
|
13
13
|
|
14
14
|
it "won't allow duplicate titles" do
|
15
|
-
FactoryGirl.build(:blog_category, :title => category.title).
|
15
|
+
expect(FactoryGirl.build(:blog_category, :title => category.title)).not_to be_valid
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "blog posts association" do
|
20
20
|
it "has a posts attribute" do
|
21
|
-
category.
|
21
|
+
expect(category).to respond_to(:posts)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "returns posts by published_at date in descending order" do
|
25
25
|
first_post = category.posts.create!({ :title => "Breaking News: Joe Sak is hot stuff you guys!!",
|
26
26
|
:body => "True story.",
|
27
27
|
:published_at => Time.now.yesterday,
|
28
|
-
:author =>
|
28
|
+
:author => author })
|
29
29
|
|
30
30
|
latest_post = category.posts.create!({ :title => "parndt is p. okay",
|
31
31
|
:body => "For a Kiwi.",
|
32
32
|
:published_at => Time.now,
|
33
|
-
:author =>
|
33
|
+
:author => author })
|
34
34
|
|
35
|
-
category.posts.first.
|
35
|
+
expect(category.posts.newest_first.first).to eq(latest_post)
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
@@ -42,9 +42,9 @@ module Refinery
|
|
42
42
|
2.times do
|
43
43
|
category.posts << FactoryGirl.create(:blog_post)
|
44
44
|
end
|
45
|
-
category.post_count.
|
45
|
+
expect(category.post_count).to eq(2)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
50
|
-
end
|
50
|
+
end
|
@@ -2,16 +2,16 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Refinery
|
4
4
|
module Blog
|
5
|
-
describe Comment do
|
5
|
+
describe Comment, type: :model do
|
6
6
|
context "wiring up" do
|
7
7
|
let(:comment) { FactoryGirl.create(:blog_comment) }
|
8
8
|
|
9
9
|
it "saves" do
|
10
|
-
comment.
|
10
|
+
expect(comment).not_to be_nil
|
11
11
|
end
|
12
12
|
|
13
13
|
it "has a blog post" do
|
14
|
-
comment.post.
|
14
|
+
expect(comment.post).not_to be_nil
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -2,56 +2,56 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Refinery
|
4
4
|
module Blog
|
5
|
-
describe Post do
|
5
|
+
describe Post, type: :model do
|
6
6
|
let(:post) { FactoryGirl.create(:blog_post) }
|
7
7
|
|
8
8
|
describe "validations" do
|
9
9
|
it "requires title" do
|
10
|
-
FactoryGirl.build(:blog_post, :title => "").
|
10
|
+
expect(FactoryGirl.build(:blog_post, :title => "")).not_to be_valid
|
11
11
|
end
|
12
12
|
|
13
13
|
it "won't allow duplicate titles" do
|
14
|
-
FactoryGirl.build(:blog_post, :title => post.title).
|
14
|
+
expect(FactoryGirl.build(:blog_post, :title => post.title)).not_to be_valid
|
15
15
|
end
|
16
16
|
|
17
17
|
it "requires body" do
|
18
|
-
FactoryGirl.build(:blog_post, :body => nil).
|
18
|
+
expect(FactoryGirl.build(:blog_post, :body => nil)).not_to be_valid
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
describe "comments association" do
|
23
23
|
|
24
24
|
it "have a comments attribute" do
|
25
|
-
post.
|
25
|
+
expect(post).to respond_to(:comments)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "destroys associated comments" do
|
29
29
|
FactoryGirl.create(:blog_comment, :blog_post_id => post.id)
|
30
30
|
post.destroy
|
31
|
-
Blog::Comment.where(:blog_post_id => post.id).
|
31
|
+
expect(Blog::Comment.where(:blog_post_id => post.id)).to be_empty
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
describe "categories association" do
|
36
36
|
it "have categories attribute" do
|
37
|
-
post.
|
37
|
+
expect(post).to respond_to(:categories)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "tags" do
|
42
42
|
it "acts as taggable" do
|
43
|
-
post.
|
43
|
+
expect(post).to respond_to(:tag_list)
|
44
44
|
|
45
45
|
post.tag_list = "refinery, cms"
|
46
46
|
post.save!
|
47
47
|
|
48
|
-
post.tag_list.
|
48
|
+
expect(post.tag_list).to include("refinery")
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "authors" do
|
53
53
|
it "are authored" do
|
54
|
-
described_class.instance_methods.map(&:to_sym).
|
54
|
+
expect(described_class.instance_methods.map(&:to_sym)).to include(:author)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -67,8 +67,8 @@ module Refinery
|
|
67
67
|
it "returns all posts from specified month" do
|
68
68
|
#check for this month
|
69
69
|
date = "03/2011"
|
70
|
-
described_class.by_month(Time.parse(date)).count.
|
71
|
-
described_class.by_month(Time.parse(date)).
|
70
|
+
expect(described_class.by_month(Time.parse(date)).count).to eq(2)
|
71
|
+
expect(described_class.by_month(Time.parse(date))).to eq([@post2, @post1])
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -82,7 +82,7 @@ module Refinery
|
|
82
82
|
it "returns all published dates older than the argument" do
|
83
83
|
expected = [@post2.published_at, @post1.published_at]
|
84
84
|
|
85
|
-
described_class.published_dates_older_than(5.minutes.ago).
|
85
|
+
expect(described_class.published_dates_older_than(5.minutes.ago)).to eq(expected)
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -95,8 +95,10 @@ module Refinery
|
|
95
95
|
end
|
96
96
|
|
97
97
|
it "returns all posts which aren't in draft and pub date isn't in future" do
|
98
|
-
described_class.live
|
99
|
-
|
98
|
+
live_posts = described_class.live
|
99
|
+
expect(live_posts.count).to eq(2)
|
100
|
+
expect(live_posts).to include(@post2)
|
101
|
+
expect(live_posts).to include(@post1)
|
100
102
|
end
|
101
103
|
end
|
102
104
|
|
@@ -109,22 +111,22 @@ module Refinery
|
|
109
111
|
end
|
110
112
|
|
111
113
|
it "returns uncategorized posts if they exist" do
|
112
|
-
described_class.uncategorized.
|
113
|
-
described_class.uncategorized.
|
114
|
+
expect(described_class.uncategorized).to include @uncategorized_post
|
115
|
+
expect(described_class.uncategorized).not_to include @categorized_post
|
114
116
|
end
|
115
117
|
end
|
116
118
|
|
117
119
|
describe "#live?" do
|
118
120
|
it "returns true if post is not in draft and it's published" do
|
119
|
-
FactoryGirl.build(:blog_post).
|
121
|
+
expect(FactoryGirl.build(:blog_post)).to be_live
|
120
122
|
end
|
121
123
|
|
122
124
|
it "returns false if post is in draft" do
|
123
|
-
FactoryGirl.build(:blog_post, :draft => true).
|
125
|
+
expect(FactoryGirl.build(:blog_post, :draft => true)).not_to be_live
|
124
126
|
end
|
125
127
|
|
126
128
|
it "returns false if post pub date is in future" do
|
127
|
-
FactoryGirl.build(:blog_post, :published_at => Time.now.advance(:minutes => 1)).
|
129
|
+
expect(FactoryGirl.build(:blog_post, :published_at => Time.now.advance(:minutes => 1))).not_to be_live
|
128
130
|
end
|
129
131
|
end
|
130
132
|
|
@@ -135,7 +137,7 @@ module Refinery
|
|
135
137
|
end
|
136
138
|
|
137
139
|
it "returns next article when called on current article" do
|
138
|
-
described_class.last.next.
|
140
|
+
expect(described_class.newest_first.last.next).to eq(@post)
|
139
141
|
end
|
140
142
|
end
|
141
143
|
|
@@ -146,7 +148,7 @@ module Refinery
|
|
146
148
|
end
|
147
149
|
|
148
150
|
it "returns previous article when called on current article" do
|
149
|
-
described_class.first.prev.
|
151
|
+
expect(described_class.first.prev).to eq(@post)
|
150
152
|
end
|
151
153
|
end
|
152
154
|
|
@@ -157,7 +159,7 @@ module Refinery
|
|
157
159
|
end
|
158
160
|
|
159
161
|
it "should be true" do
|
160
|
-
described_class.comments_allowed
|
162
|
+
expect(described_class.comments_allowed?).to be_truthy
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|
@@ -167,14 +169,14 @@ module Refinery
|
|
167
169
|
end
|
168
170
|
|
169
171
|
it "should be false" do
|
170
|
-
described_class.comments_allowed
|
172
|
+
expect(described_class.comments_allowed?).to be_falsey
|
171
173
|
end
|
172
174
|
end
|
173
175
|
end
|
174
176
|
|
175
177
|
describe "custom teasers" do
|
176
178
|
it "should allow a custom teaser" do
|
177
|
-
FactoryGirl.create(:blog_post, :custom_teaser => 'This is some custom content').
|
179
|
+
expect(FactoryGirl.create(:blog_post, :custom_teaser => 'This is some custom content')).to be_valid
|
178
180
|
end
|
179
181
|
end
|
180
182
|
|
@@ -185,7 +187,7 @@ module Refinery
|
|
185
187
|
end
|
186
188
|
|
187
189
|
it "should be true" do
|
188
|
-
described_class.teasers_enabled
|
190
|
+
expect(described_class.teasers_enabled?).to be_truthy
|
189
191
|
end
|
190
192
|
end
|
191
193
|
|
@@ -195,7 +197,7 @@ module Refinery
|
|
195
197
|
end
|
196
198
|
|
197
199
|
it "should be false" do
|
198
|
-
described_class.teasers_enabled
|
200
|
+
expect(described_class.teasers_enabled?).to be_falsey
|
199
201
|
end
|
200
202
|
end
|
201
203
|
end
|
@@ -203,9 +205,9 @@ module Refinery
|
|
203
205
|
describe "source url" do
|
204
206
|
it "should allow a source url and title" do
|
205
207
|
p = FactoryGirl.create(:blog_post, :source_url => 'google.com', :source_url_title => 'author')
|
206
|
-
p.
|
207
|
-
p.source_url.
|
208
|
-
p.source_url_title.
|
208
|
+
expect(p).to be_valid
|
209
|
+
expect(p.source_url).to include('google')
|
210
|
+
expect(p.source_url_title).to include('author')
|
209
211
|
end
|
210
212
|
end
|
211
213
|
|
@@ -215,10 +217,10 @@ module Refinery
|
|
215
217
|
Refinery::Blog.validate_source_url = true
|
216
218
|
end
|
217
219
|
it "should have canonical url" do
|
218
|
-
UrlValidator.
|
220
|
+
expect_any_instance_of(UrlValidator).to receive(:resolve_redirects_verify_url).
|
219
221
|
and_return('http://www.google.com')
|
220
222
|
p = FactoryGirl.create(:blog_post, :source_url => 'google.com', :source_url_title => 'google')
|
221
|
-
p.source_url.
|
223
|
+
expect(p.source_url).to include('www')
|
222
224
|
end
|
223
225
|
end
|
224
226
|
context "with Refinery::Blog.validate_source_url set to false" do
|
@@ -227,7 +229,31 @@ module Refinery
|
|
227
229
|
end
|
228
230
|
it "should have original url" do
|
229
231
|
p = FactoryGirl.create(:blog_post, :source_url => 'google.com', :source_url_title => 'google')
|
230
|
-
p.source_url.
|
232
|
+
expect(p.source_url).not_to include('www')
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
describe "#should_generate_new_friendly_id?" do
|
238
|
+
context "when custom_url changes" do
|
239
|
+
it "regenerates slug upon save" do
|
240
|
+
post = FactoryGirl.create(:blog_post, :custom_url => "Test Url")
|
241
|
+
|
242
|
+
post.custom_url = "Test Url 2"
|
243
|
+
post.save!
|
244
|
+
|
245
|
+
expect(post.slug).to eq("test-url-2")
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
context "when title changes" do
|
250
|
+
it "regenerates slug upon save" do
|
251
|
+
post = FactoryGirl.create(:blog_post, :title => "Test Title")
|
252
|
+
|
253
|
+
post.title = "Test Title 2"
|
254
|
+
post.save!
|
255
|
+
|
256
|
+
expect(post.slug).to eq("test-title-2")
|
231
257
|
end
|
232
258
|
end
|
233
259
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -7,19 +7,18 @@ require File.expand_path("../dummy/config/environment", __FILE__)
|
|
7
7
|
|
8
8
|
require 'rspec/rails'
|
9
9
|
require 'capybara/rspec'
|
10
|
-
require 'factory_girl_rails'
|
11
10
|
|
12
11
|
Rails.backtrace_cleaner.remove_silencers!
|
13
12
|
|
14
13
|
RSpec.configure do |config|
|
15
14
|
config.mock_with :rspec
|
16
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
17
15
|
config.filter_run :focus => true
|
18
16
|
config.run_all_when_everything_filtered = true
|
19
17
|
end
|
20
18
|
|
21
19
|
# set javascript driver for capybara
|
22
|
-
|
20
|
+
require 'capybara/poltergeist'
|
21
|
+
Capybara.javascript_driver = :poltergeist
|
23
22
|
|
24
23
|
# Requires supporting files with custom matchers and macros, etc,
|
25
24
|
# in ./support/ and its subdirectories including factories.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Arndt
|
@@ -10,106 +10,140 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: refinerycms-core
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - ~>
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - ~>
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
28
|
+
version: 3.0.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: refinerycms-settings
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 3.0.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 3.0.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: filters_spam
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ~>
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0.2'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - ~>
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0.2'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: acts-as-taggable-on
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: seo_meta
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- - ~>
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 2.0.0.rc.1
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- - ~>
|
82
|
+
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
84
|
+
version: 2.0.0.rc.1
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rails_autolink
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- - ~>
|
89
|
+
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 1.
|
91
|
+
version: 1.1.3
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- - ~>
|
96
|
+
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 1.
|
98
|
+
version: 1.1.3
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: friendly_id
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- - ~>
|
103
|
+
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
105
|
+
version: 5.1.0
|
106
106
|
type: :runtime
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
|
-
- - ~>
|
110
|
+
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
112
|
+
version: 5.1.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: globalize
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 4.0.0
|
120
|
+
- - "<"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '5.2'
|
123
|
+
type: :runtime
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 4.0.0
|
130
|
+
- - "<"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '5.2'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: jquery-ui-rails
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 5.0.0
|
140
|
+
type: :runtime
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 5.0.0
|
113
147
|
description: A really straightforward open source Ruby on Rails blog engine designed
|
114
148
|
for integration with Refinery CMS.
|
115
149
|
email: info@refinerycms.com
|
@@ -117,25 +151,11 @@ executables: []
|
|
117
151
|
extensions: []
|
118
152
|
extra_rdoc_files: []
|
119
153
|
files:
|
120
|
-
- .gitignore
|
121
|
-
- .rspec
|
122
|
-
- .travis.yml
|
154
|
+
- ".gitignore"
|
155
|
+
- ".rspec"
|
156
|
+
- ".travis.yml"
|
123
157
|
- Gemfile
|
124
158
|
- Rakefile
|
125
|
-
- app/assets/images/refinery/blog/icons/add.png
|
126
|
-
- app/assets/images/refinery/blog/icons/cog.png
|
127
|
-
- app/assets/images/refinery/blog/icons/comment.png
|
128
|
-
- app/assets/images/refinery/blog/icons/comment_cross.png
|
129
|
-
- app/assets/images/refinery/blog/icons/comment_tick.png
|
130
|
-
- app/assets/images/refinery/blog/icons/comments.png
|
131
|
-
- app/assets/images/refinery/blog/icons/down.gif
|
132
|
-
- app/assets/images/refinery/blog/icons/folder.png
|
133
|
-
- app/assets/images/refinery/blog/icons/folder_add.png
|
134
|
-
- app/assets/images/refinery/blog/icons/folder_edit.png
|
135
|
-
- app/assets/images/refinery/blog/icons/page.png
|
136
|
-
- app/assets/images/refinery/blog/icons/page_add.png
|
137
|
-
- app/assets/images/refinery/blog/icons/page_copy.png
|
138
|
-
- app/assets/images/refinery/blog/icons/up.gif
|
139
159
|
- app/assets/images/refinery/blog/rss-feed.png
|
140
160
|
- app/assets/javascripts/refinery/blog/backend.js
|
141
161
|
- app/assets/javascripts/refinery/blog/frontend.js
|
@@ -214,6 +234,8 @@ files:
|
|
214
234
|
- app/views/refinery/blog/shared/_tags.html.erb
|
215
235
|
- app/views/refinery/blog/widgets/_blog_archive.html.erb
|
216
236
|
- app/views/refinery/shared/admin/_autocomplete.html.erb
|
237
|
+
- bin/rails
|
238
|
+
- bin/refinerycms
|
217
239
|
- changelog.md
|
218
240
|
- config/initializers/url_validator.rb
|
219
241
|
- config/locales/bg.yml
|
@@ -232,6 +254,7 @@ files:
|
|
232
254
|
- config/locales/sk.yml
|
233
255
|
- config/locales/sv.yml
|
234
256
|
- config/locales/zh-CN.yml
|
257
|
+
- config/locales/zh-TW.yml
|
235
258
|
- config/routes.rb
|
236
259
|
- db/migrate/20110803223522_create_blog_structure.rb
|
237
260
|
- db/migrate/20110803223523_add_user_id_to_blog_posts.rb
|
@@ -246,6 +269,8 @@ files:
|
|
246
269
|
- db/migrate/20120530102901_create_blog_translations.rb
|
247
270
|
- db/migrate/20120531113632_delete_cached_slugs.rb
|
248
271
|
- db/migrate/20120601151114_create_category_translations.rb
|
272
|
+
- db/migrate/20140622132537_add_missing_unique_indices.acts_as_taggable_on_engine.rb
|
273
|
+
- db/migrate/20140622132538_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
|
249
274
|
- db/seeds.rb
|
250
275
|
- lib/generators/refinery/blog/blog_generator.rb
|
251
276
|
- lib/generators/refinery/blog/templates/config/initializers/refinery/blog.rb.erb
|
@@ -258,17 +283,18 @@ files:
|
|
258
283
|
- refinerycms-blog.gemspec
|
259
284
|
- script/rails
|
260
285
|
- spec/controllers/refinery/blog/admin/comments_controller_spec.rb
|
286
|
+
- spec/controllers/refinery/blog/admin/posts_controller_spec.rb
|
261
287
|
- spec/controllers/refinery/blog/posts_controller_spec.rb
|
262
288
|
- spec/factories/blog_categories.rb
|
263
289
|
- spec/factories/blog_comments.rb
|
264
290
|
- spec/factories/blog_posts.rb
|
291
|
+
- spec/factories/user.rb
|
265
292
|
- spec/features/refinery/blog/admin/categories_spec.rb
|
266
293
|
- spec/features/refinery/blog/admin/comments_spec.rb
|
267
294
|
- spec/features/refinery/blog/admin/menu_spec.rb
|
268
295
|
- spec/features/refinery/blog/admin/posts_spec.rb
|
269
296
|
- spec/features/refinery/blog/categories_spec.rb
|
270
297
|
- spec/features/refinery/blog/posts_spec.rb
|
271
|
-
- spec/helpers/refinery/blog/controller_helper_spec.rb
|
272
298
|
- spec/helpers/refinery/blog/posts_helper_spec.rb
|
273
299
|
- spec/lib/refinery/blog/engine_spec.rb
|
274
300
|
- spec/models/refinery/blog/category_spec.rb
|
@@ -276,7 +302,6 @@ files:
|
|
276
302
|
- spec/models/refinery/blog/post_spec.rb
|
277
303
|
- spec/spec_helper.rb
|
278
304
|
- tasks/rspec.rake
|
279
|
-
- todo.md
|
280
305
|
homepage: http://refinerycms.com/blog
|
281
306
|
licenses:
|
282
307
|
- MIT
|
@@ -287,37 +312,37 @@ require_paths:
|
|
287
312
|
- lib
|
288
313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
289
314
|
requirements:
|
290
|
-
- -
|
315
|
+
- - ">="
|
291
316
|
- !ruby/object:Gem::Version
|
292
317
|
version: '0'
|
293
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
294
319
|
requirements:
|
295
|
-
- -
|
320
|
+
- - ">="
|
296
321
|
- !ruby/object:Gem::Version
|
297
322
|
version: '0'
|
298
323
|
requirements: []
|
299
324
|
rubyforge_project:
|
300
|
-
rubygems_version: 2.
|
325
|
+
rubygems_version: 2.6.13
|
301
326
|
signing_key:
|
302
327
|
specification_version: 4
|
303
328
|
summary: Ruby on Rails blogging engine for Refinery CMS.
|
304
329
|
test_files:
|
305
330
|
- spec/controllers/refinery/blog/admin/comments_controller_spec.rb
|
331
|
+
- spec/controllers/refinery/blog/admin/posts_controller_spec.rb
|
306
332
|
- spec/controllers/refinery/blog/posts_controller_spec.rb
|
307
333
|
- spec/factories/blog_categories.rb
|
308
334
|
- spec/factories/blog_comments.rb
|
309
335
|
- spec/factories/blog_posts.rb
|
336
|
+
- spec/factories/user.rb
|
310
337
|
- spec/features/refinery/blog/admin/categories_spec.rb
|
311
338
|
- spec/features/refinery/blog/admin/comments_spec.rb
|
312
339
|
- spec/features/refinery/blog/admin/menu_spec.rb
|
313
340
|
- spec/features/refinery/blog/admin/posts_spec.rb
|
314
341
|
- spec/features/refinery/blog/categories_spec.rb
|
315
342
|
- spec/features/refinery/blog/posts_spec.rb
|
316
|
-
- spec/helpers/refinery/blog/controller_helper_spec.rb
|
317
343
|
- spec/helpers/refinery/blog/posts_helper_spec.rb
|
318
344
|
- spec/lib/refinery/blog/engine_spec.rb
|
319
345
|
- spec/models/refinery/blog/category_spec.rb
|
320
346
|
- spec/models/refinery/blog/comment_spec.rb
|
321
347
|
- spec/models/refinery/blog/post_spec.rb
|
322
348
|
- spec/spec_helper.rb
|
323
|
-
has_rdoc:
|