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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -23
  3. data/Gemfile +15 -7
  4. data/Rakefile +0 -1
  5. data/app/assets/javascripts/refinery/blog/backend.js +18 -59
  6. data/app/assets/stylesheets/refinery/blog/backend.css.scss +4 -55
  7. data/app/assets/stylesheets/refinery/blog/frontend.css.scss +2 -2
  8. data/app/controllers/refinery/blog/admin/categories_controller.rb +6 -0
  9. data/app/controllers/refinery/blog/admin/posts_controller.rb +25 -3
  10. data/app/controllers/refinery/blog/blog_controller.rb +31 -5
  11. data/app/controllers/refinery/blog/categories_controller.rb +10 -3
  12. data/app/controllers/refinery/blog/posts_controller.rb +16 -6
  13. data/app/helpers/refinery/blog/controller_helper.rb +1 -22
  14. data/app/models/refinery/blog/categorization.rb +0 -1
  15. data/app/models/refinery/blog/category.rb +3 -6
  16. data/app/models/refinery/blog/comment.rb +15 -17
  17. data/app/models/refinery/blog/post.rb +44 -43
  18. data/app/views/refinery/blog/admin/_submenu.html.erb +1 -3
  19. data/app/views/refinery/blog/admin/categories/_category.html.erb +14 -5
  20. data/app/views/refinery/blog/admin/posts/_form.html.erb +13 -6
  21. data/app/views/refinery/blog/admin/posts/_form_part.html.erb +1 -1
  22. data/app/views/refinery/blog/admin/posts/_post.html.erb +12 -5
  23. data/app/views/refinery/blog/admin/posts/_teaser_part.html.erb +1 -1
  24. data/app/views/refinery/blog/posts/index.html.erb +2 -2
  25. data/app/views/refinery/blog/shared/_categories.html.erb +3 -3
  26. data/app/views/refinery/shared/admin/_autocomplete.html.erb +45 -0
  27. data/bin/rails +5 -0
  28. data/bin/refinerycms +62 -0
  29. data/changelog.md +4 -1
  30. data/config/locales/cs.yml +2 -2
  31. data/config/locales/en.yml +3 -0
  32. data/config/locales/fr.yml +6 -4
  33. data/config/locales/nb.yml +154 -14
  34. data/config/locales/nl.yml +21 -0
  35. data/config/locales/pl.yml +2 -2
  36. data/config/locales/ru.yml +25 -14
  37. data/config/locales/zh-CN.yml +32 -1
  38. data/config/locales/zh-TW.yml +160 -0
  39. data/config/routes.rb +6 -3
  40. data/db/migrate/20110803223522_create_blog_structure.rb +4 -4
  41. data/db/migrate/20120531113632_delete_cached_slugs.rb +2 -2
  42. data/db/migrate/20140622132537_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  43. data/db/migrate/20140622132538_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  44. data/db/seeds.rb +4 -4
  45. data/lib/refinery/blog.rb +1 -1
  46. data/lib/refinery/blog/configuration.rb +1 -1
  47. data/lib/refinery/blog/engine.rb +8 -3
  48. data/readme.md +21 -6
  49. data/refinerycms-blog.gemspec +9 -7
  50. data/script/rails +1 -3
  51. data/spec/controllers/refinery/blog/admin/comments_controller_spec.rb +23 -19
  52. data/spec/controllers/refinery/blog/admin/posts_controller_spec.rb +35 -0
  53. data/spec/controllers/refinery/blog/posts_controller_spec.rb +3 -3
  54. data/spec/factories/blog_posts.rb +1 -1
  55. data/spec/factories/user.rb +27 -0
  56. data/spec/features/refinery/blog/admin/categories_spec.rb +106 -104
  57. data/spec/features/refinery/blog/admin/comments_spec.rb +18 -18
  58. data/spec/features/refinery/blog/admin/menu_spec.rb +14 -8
  59. data/spec/features/refinery/blog/admin/posts_spec.rb +99 -86
  60. data/spec/features/refinery/blog/categories_spec.rb +20 -18
  61. data/spec/features/refinery/blog/posts_spec.rb +128 -124
  62. data/spec/helpers/refinery/blog/posts_helper_spec.rb +13 -13
  63. data/spec/lib/refinery/blog/engine_spec.rb +1 -11
  64. data/spec/models/refinery/blog/category_spec.rb +10 -10
  65. data/spec/models/refinery/blog/comment_spec.rb +3 -3
  66. data/spec/models/refinery/blog/post_spec.rb +59 -33
  67. data/spec/spec_helper.rb +2 -3
  68. metadata +75 -50
  69. data/app/assets/images/refinery/blog/icons/add.png +0 -0
  70. data/app/assets/images/refinery/blog/icons/cog.png +0 -0
  71. data/app/assets/images/refinery/blog/icons/comment.png +0 -0
  72. data/app/assets/images/refinery/blog/icons/comment_cross.png +0 -0
  73. data/app/assets/images/refinery/blog/icons/comment_tick.png +0 -0
  74. data/app/assets/images/refinery/blog/icons/comments.png +0 -0
  75. data/app/assets/images/refinery/blog/icons/down.gif +0 -0
  76. data/app/assets/images/refinery/blog/icons/folder.png +0 -0
  77. data/app/assets/images/refinery/blog/icons/folder_add.png +0 -0
  78. data/app/assets/images/refinery/blog/icons/folder_edit.png +0 -0
  79. data/app/assets/images/refinery/blog/icons/page.png +0 -0
  80. data/app/assets/images/refinery/blog/icons/page_add.png +0 -0
  81. data/app/assets/images/refinery/blog/icons/page_copy.png +0 -0
  82. data/app/assets/images/refinery/blog/icons/up.gif +0 -0
  83. data/spec/helpers/refinery/blog/controller_helper_spec.rb +0 -27
  84. 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(:refinery_user) { FactoryGirl.create(:refinery_user) }
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 => "").should_not be_valid
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).should_not be_valid
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.should respond_to(:posts)
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 => refinery_user })
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 => refinery_user })
33
+ :author => author })
34
34
 
35
- category.posts.first.should == latest_post
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.should == 2
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.should_not be_nil
10
+ expect(comment).not_to be_nil
11
11
  end
12
12
 
13
13
  it "has a blog post" do
14
- comment.post.should_not be_nil
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 => "").should_not be_valid
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).should_not be_valid
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).should_not be_valid
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.should respond_to(:comments)
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).should be_empty
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.should respond_to(:categories)
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.should respond_to(:tag_list)
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.should include("refinery")
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).should include(:author)
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.should be == 2
71
- described_class.by_month(Time.parse(date)).should == [@post2, @post1]
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).should eq(expected)
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.count.should be == 2
99
- described_class.live.should == [@post2, @post1]
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.should include @uncategorized_post
113
- described_class.uncategorized.should_not include @categorized_post
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).should be_live
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).should_not be_live
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)).should_not be_live
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.should == @post
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.should == @post
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?.should be_true
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?.should be_false
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').should be_valid
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?.should be_true
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?.should be_false
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.should be_valid
207
- p.source_url.should include('google')
208
- p.source_url_title.should include('author')
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.any_instance.should_receive(:resolve_redirects_verify_url).
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.should include('www')
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.should_not include('www')
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
@@ -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
- Capybara.javascript_driver = :selenium
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: 2.1.0
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: 2013-10-22 00:00:00.000000000 Z
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: 2.1.0
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: 2.1.0
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: 2.1.0
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: 2.1.0
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: 1.4.0
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: 1.4.0
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.0.7
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.0.7
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: 4.0.4
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: 4.0.4
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.1.0
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: