refinerycms-blog 2.1.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: