thredded 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 868d81f0b7ff77d6ae58e572377f1001be7131b7
4
- data.tar.gz: f23376c4be14345f85932348d1b9745322ac642a
3
+ metadata.gz: cb9af60f2898343a1404af723bb3dd314807876a
4
+ data.tar.gz: 7b6ac99f8869dc6722671e4c7491997815463cf7
5
5
  SHA512:
6
- metadata.gz: 11bf79cf05bbf641a8c78540d6d07c2522dbb6ba660de178bdbbe1d98a18958b0edbc4360eaf74b71bb6db71f3f60717eb945326791ae03903f0cf64d1fc780e
7
- data.tar.gz: 12b1603c89e6e4660d67fb7a6ed90993c42d2edd408a261d8b15f107e201d1a47dbff2b157ad94628e74713cf9d4607f1ae2a10fcbdbf86b36b49a4dac6a5f95
6
+ metadata.gz: 28a32a71b5e598e03fe027194b96b7577be422cae39f4208b28719e991d740ec78e8580be3f03b202f28b1bf19bb825d936608ecf18968ac1ebe5462c6be0b94
7
+ data.tar.gz: fe05b0331bb1f3fa9d4ed33749dbe78e6e836f5ece7cc53dc864e3ff69792a308e403854a6eb516f21865e7734ca7833cafc009f006a2274f0fe8b9b21b72264
@@ -1,3 +1,16 @@
1
+ # v0.6.2
2
+
3
+ This is a minor bugfix release.
4
+
5
+ ## Fixed
6
+
7
+ * Moderating posts, topics, and users no longer changes their `updated_at` attribute.
8
+ * Posts and topics that are not yet visible to all users no longer appear as last posts / topics in the respective
9
+ topic / messageboard.
10
+ * Cleaned up dependencies.
11
+
12
+ See the full list of changes here: https://github.com/thredded/thredded/compare/v0.6.1...v0.6.2.
13
+
1
14
  # v0.6.1
2
15
 
3
16
  This is a minor bugfix release.
@@ -100,7 +100,7 @@ cp `bundle show thredded`/db/upgrade_migrations/20160501151908_upgrade_v0_4_to_v
100
100
  rake db:migrate
101
101
  ```
102
102
 
103
- Note that for guaranteed best results you will want to run this with the gem checked out with v0.5.0
103
+ Note that for guaranteed best results you will want to run this with the gem checked out with v0.5.0.
104
104
 
105
105
  ### Migrating from Forem
106
106
 
@@ -16,20 +16,32 @@ module Thredded
16
16
  moderation_state: moderation_state,
17
17
  )
18
18
  if post.user_id && post.user_detail.pending_moderation?
19
- post.user_detail.update!(moderation_state: moderation_state)
19
+ update_without_timestamping!(post.user_detail, moderation_state: moderation_state)
20
20
  end
21
21
  if post.postable.first_post == post
22
- post.postable.update!(moderation_state: moderation_state)
22
+ update_without_timestamping!(post.postable, moderation_state: moderation_state)
23
23
  if moderation_state == :blocked
24
24
  # When blocking the first post of a topic, also block all the other posts in the topic by this user.
25
25
  post.postable.posts.where(user_id: post.user.id).where.not(id: post.id).each do |a_post|
26
- a_post.update!(moderation_state: moderation_state)
26
+ update_without_timestamping!(a_post, moderation_state: moderation_state)
27
27
  end
28
28
  end
29
29
  end
30
- post.update!(moderation_state: moderation_state)
30
+ update_without_timestamping!(post, moderation_state: moderation_state)
31
31
  post_moderation_record
32
32
  end
33
33
  end
34
+
35
+ # @param record [ActiveRecord]
36
+ # @api private
37
+ def update_without_timestamping!(record, *attr)
38
+ record_timestamps_was = record.record_timestamps
39
+ begin
40
+ record.record_timestamps = false
41
+ record.update!(*attr)
42
+ ensure
43
+ record.record_timestamps = record_timestamps_was
44
+ end
45
+ end
34
46
  end
35
47
  end
@@ -10,18 +10,12 @@ module Thredded
10
10
  included do
11
11
  before_validation :set_default_moderation_state, on: :create
12
12
 
13
+ scope :moderation_state_visible_to_all, -> { where(visible_to_all_arel_node) }
14
+
13
15
  scope :moderation_state_visible_to_user, (lambda do |user|
16
+ visible = visible_to_all_arel_node
14
17
  # @type [Arel::Table]
15
18
  table = arel_table
16
- # @type [Arel::Nodes::Node]
17
- visible =
18
- if Thredded.content_visible_while_pending_moderation
19
- # All non-blocked content
20
- table[:moderation_state].not_eq(moderation_states[:blocked])
21
- else
22
- # Only approved content
23
- table[:moderation_state].eq(moderation_states[:approved])
24
- end
25
19
  if user && !user.thredded_anonymous?
26
20
  # Own content
27
21
  visible = visible.or(table[:user_id].eq(user.id))
@@ -33,6 +27,18 @@ module Thredded
33
27
  end
34
28
  where(visible)
35
29
  end)
30
+
31
+ # @return [Arel::Nodes::Node]
32
+ # @api private
33
+ def self.visible_to_all_arel_node
34
+ if Thredded.content_visible_while_pending_moderation
35
+ # All non-blocked content
36
+ arel_table[:moderation_state].not_eq(moderation_states[:blocked])
37
+ else
38
+ # Only approved content
39
+ arel_table[:moderation_state].eq(moderation_states[:approved])
40
+ end
41
+ end
36
42
  end
37
43
 
38
44
  # Whether this is visible to anyone based on the moderation state.
@@ -15,8 +15,6 @@ module Thredded
15
15
 
16
16
  scope :order_oldest_first, -> { order(id: :asc) }
17
17
  scope :order_newest_first, -> { order(id: :desc) }
18
-
19
- after_commit :update_parent_last_user_and_timestamp, on: [:create, :destroy]
20
18
  end
21
19
 
22
20
  def avatar_url
@@ -28,17 +26,5 @@ module Thredded
28
26
  def filtered_content(view_context, users_provider: -> (names) { readers_from_user_names(names) })
29
27
  Thredded::ContentFormatter.new(view_context, users_provider: users_provider).format_content(content)
30
28
  end
31
-
32
- private
33
-
34
- def update_parent_last_user_and_timestamp
35
- return if postable.destroyed?
36
- last_post = if destroyed?
37
- postable.posts.order_oldest_first.select(:user_id, :created_at).last
38
- else
39
- self
40
- end
41
- postable.update!(last_user_id: last_post.user_id, updated_at: last_post.created_at)
42
- end
43
29
  end
44
30
  end
@@ -26,6 +26,7 @@ module Thredded
26
26
 
27
27
  validates :messageboard_id, presence: true
28
28
 
29
+ after_commit :update_parent_last_user_and_timestamp, on: [:create, :destroy]
29
30
  after_commit :auto_follow_and_notify, on: [:create, :update]
30
31
 
31
32
  # @param [Integer] per_page
@@ -50,6 +51,8 @@ module Thredded
50
51
  .in(user_names)
51
52
  end
52
53
 
54
+ private
55
+
53
56
  def auto_follow_and_notify
54
57
  return unless user
55
58
  # need to do this in-process so that it appears to them immediately
@@ -57,5 +60,19 @@ module Thredded
57
60
  # everything else can happen later
58
61
  AutoFollowAndNotifyJob.perform_later(id)
59
62
  end
63
+
64
+ def update_parent_last_user_and_timestamp
65
+ return if postable.destroyed?
66
+ last_post = if destroyed? || !moderation_state_visible_to_all?
67
+ postable.posts.order_oldest_first.moderation_state_visible_to_all.select(:user_id, :updated_at).last
68
+ else
69
+ self
70
+ end
71
+ if last_post
72
+ postable.update_columns(last_user_id: last_post.user_id, updated_at: last_post.updated_at)
73
+ else
74
+ postable.update_columns(last_user_id: nil, updated_at: postable.created_at)
75
+ end
76
+ end
60
77
  end
61
78
  end
@@ -15,6 +15,7 @@ module Thredded
15
15
  primary_key: :user_id,
16
16
  foreign_key: :user_id
17
17
 
18
+ after_commit :update_parent_last_user_and_timestamp, on: [:create, :destroy]
18
19
  after_commit :notify_users, on: [:create]
19
20
 
20
21
  # @param [Integer] per_page
@@ -37,8 +38,20 @@ module Thredded
37
38
  .in(user_names)
38
39
  end
39
40
 
41
+ private
42
+
40
43
  def notify_users
41
44
  Thredded::NotifyPrivateTopicUsersJob.perform_later(id)
42
45
  end
46
+
47
+ def update_parent_last_user_and_timestamp
48
+ return if postable.destroyed?
49
+ last_post = if destroyed?
50
+ postable.posts.order_oldest_first.select(:user_id, :updated_at).last
51
+ else
52
+ self
53
+ end
54
+ postable.update_columns(last_user_id: last_post.user_id, updated_at: last_post.updated_at)
55
+ end
43
56
  end
44
57
  end
@@ -125,12 +125,12 @@ module Thredded
125
125
 
126
126
  def update_messageboard_last_topic
127
127
  return if messageboard.destroyed?
128
- last_topic = if destroyed?
129
- messageboard.topics.order_recently_updated_first.select(:id).first
128
+ last_topic = if destroyed? || !moderation_state_visible_to_all?
129
+ messageboard.topics.order_recently_updated_first.moderation_state_visible_to_all.select(:id).first
130
130
  else
131
131
  self
132
132
  end
133
- messageboard.update!(last_topic_id: last_topic.try(:id))
133
+ messageboard.update_columns(last_topic_id: last_topic.try(:id))
134
134
  end
135
135
  end
136
136
  end
@@ -49,7 +49,10 @@ module Thredded
49
49
 
50
50
  def create_users(count:)
51
51
  log "Creating #{count} users..."
52
- @users = [user] + FactoryGirl.create_list(:user, count, *(%i(approved) if rand > 0.1))
52
+ approved_users_count = (count * 0.97).round
53
+ @users = [user] +
54
+ FactoryGirl.create_list(:user, approved_users_count, :approved) +
55
+ FactoryGirl.create_list(:user, count - approved_users_count)
53
56
  end
54
57
 
55
58
  def create_messageboard
@@ -5,15 +5,17 @@ ruby '2.3.1'
5
5
  gem 'thredded', path: File.dirname(__FILE__)
6
6
 
7
7
  # Rails 5
8
- gem 'rails', '~> 5.0.0.racecar1'
9
- gem 'active_record_union', git: 'https://github.com/glebm/active_record_union', branch: 'rails-5-test-harness'
8
+ gem 'rails', '~> 5.0.0.rc2'
9
+ gem 'active_record_union', '>= 1.2.0'
10
10
 
11
11
  # Make these gems available in production
12
12
  gem 'puma'
13
13
  gem 'pg'
14
14
  gem 'rails_email_preview', '>= 1.0.3'
15
15
  gem 'jquery-turbolinks'
16
- gem 'turbolinks'
16
+ # TODO: upgrade once Turbolinks 5 is supported by jquery-turbolinks:
17
+ # https://github.com/kossnocorp/jquery.turbolinks/pull/58
18
+ gem 'turbolinks', '~> 2.5'
17
19
  gem 'rails-i18n'
18
20
  gem 'http_accept_language'
19
21
  gem 'factory_girl_rails'
@@ -1,16 +1,8 @@
1
- GIT
2
- remote: https://github.com/glebm/active_record_union
3
- revision: fde21fb8fe7d5d3cc24f1dc5d6627d92c30f10e5
4
- branch: rails-5-test-harness
5
- specs:
6
- active_record_union (1.1.1)
7
- activerecord (>= 4.0)
8
-
9
1
  PATH
10
2
  remote: .
11
3
  specs:
12
- thredded (0.6.1)
13
- active_record_union (>= 1.1.1)
4
+ thredded (0.6.2)
5
+ active_record_union (>= 1.2.0)
14
6
  autoprefixer-rails
15
7
  autosize-rails
16
8
  bbcoder (~> 1.0)
@@ -38,39 +30,41 @@ PATH
38
30
  GEM
39
31
  remote: https://rubygems.org/
40
32
  specs:
41
- actioncable (5.0.0.rc1)
42
- actionpack (= 5.0.0.rc1)
33
+ actioncable (5.0.0.rc2)
34
+ actionpack (= 5.0.0.rc2)
43
35
  nio4r (~> 1.2)
44
36
  websocket-driver (~> 0.6.1)
45
- actionmailer (5.0.0.rc1)
46
- actionpack (= 5.0.0.rc1)
47
- actionview (= 5.0.0.rc1)
48
- activejob (= 5.0.0.rc1)
37
+ actionmailer (5.0.0.rc2)
38
+ actionpack (= 5.0.0.rc2)
39
+ actionview (= 5.0.0.rc2)
40
+ activejob (= 5.0.0.rc2)
49
41
  mail (~> 2.5, >= 2.5.4)
50
42
  rails-dom-testing (~> 1.0, >= 1.0.5)
51
- actionpack (5.0.0.rc1)
52
- actionview (= 5.0.0.rc1)
53
- activesupport (= 5.0.0.rc1)
43
+ actionpack (5.0.0.rc2)
44
+ actionview (= 5.0.0.rc2)
45
+ activesupport (= 5.0.0.rc2)
54
46
  rack (~> 2.x)
55
47
  rack-test (~> 0.6.3)
56
48
  rails-dom-testing (~> 1.0, >= 1.0.5)
57
49
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
58
- actionview (5.0.0.rc1)
59
- activesupport (= 5.0.0.rc1)
50
+ actionview (5.0.0.rc2)
51
+ activesupport (= 5.0.0.rc2)
60
52
  builder (~> 3.1)
61
53
  erubis (~> 2.7.0)
62
54
  rails-dom-testing (~> 1.0, >= 1.0.5)
63
55
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
64
- activejob (5.0.0.rc1)
65
- activesupport (= 5.0.0.rc1)
56
+ active_record_union (1.2.0)
57
+ activerecord (>= 4.0)
58
+ activejob (5.0.0.rc2)
59
+ activesupport (= 5.0.0.rc2)
66
60
  globalid (>= 0.3.6)
67
- activemodel (5.0.0.rc1)
68
- activesupport (= 5.0.0.rc1)
69
- activerecord (5.0.0.rc1)
70
- activemodel (= 5.0.0.rc1)
71
- activesupport (= 5.0.0.rc1)
61
+ activemodel (5.0.0.rc2)
62
+ activesupport (= 5.0.0.rc2)
63
+ activerecord (5.0.0.rc2)
64
+ activemodel (= 5.0.0.rc2)
65
+ activesupport (= 5.0.0.rc2)
72
66
  arel (~> 7.0)
73
- activesupport (5.0.0.rc1)
67
+ activesupport (5.0.0.rc2)
74
68
  concurrent-ruby (~> 1.0, >= 1.0.2)
75
69
  i18n (~> 0.7)
76
70
  minitest (~> 5.1)
@@ -87,9 +81,9 @@ GEM
87
81
  execjs (~> 2.0)
88
82
  bbcoder (1.1.1)
89
83
  builder (3.2.2)
90
- coffee-rails (4.1.1)
84
+ coffee-rails (4.2.1)
91
85
  coffee-script (>= 2.2.0)
92
- railties (>= 4.0.0, < 5.1.x)
86
+ railties (>= 4.0.0, < 5.2.x)
93
87
  coffee-script (2.4.1)
94
88
  coffee-script-source
95
89
  execjs
@@ -124,7 +118,7 @@ GEM
124
118
  htmlentities (4.3.4)
125
119
  http_accept_language (2.0.5)
126
120
  i18n (0.7.0)
127
- inline_svg (0.8.0)
121
+ inline_svg (0.9.0)
128
122
  activesupport (>= 4.0.4)
129
123
  loofah (>= 2.0)
130
124
  nokogiri (~> 1.6)
@@ -135,7 +129,6 @@ GEM
135
129
  jquery-turbolinks (2.1.0)
136
130
  railties (>= 3.1.0)
137
131
  turbolinks
138
- json (1.8.3)
139
132
  kaminari (0.17.0)
140
133
  actionpack (>= 3.0.0)
141
134
  activesupport (>= 3.0.0)
@@ -151,7 +144,7 @@ GEM
151
144
  mini_portile2 (2.1.0)
152
145
  minitest (5.9.0)
153
146
  multi_json (1.12.1)
154
- newrelic_rpm (3.15.2.317)
147
+ newrelic_rpm (3.16.0.318)
155
148
  nio4r (1.2.1)
156
149
  nokogiri (1.6.8)
157
150
  mini_portile2 (~> 2.1.0)
@@ -163,24 +156,23 @@ GEM
163
156
  puma (3.4.0)
164
157
  pundit (1.1.0)
165
158
  activesupport (>= 3.0.0)
166
- rack (2.0.0.rc1)
167
- json
159
+ rack (2.0.1)
168
160
  rack-canonical-host (0.2.2)
169
161
  addressable (> 0, < 3)
170
162
  rack (>= 1.0.0, < 3)
171
163
  rack-test (0.6.3)
172
164
  rack (>= 1.0)
173
- rails (5.0.0.rc1)
174
- actioncable (= 5.0.0.rc1)
175
- actionmailer (= 5.0.0.rc1)
176
- actionpack (= 5.0.0.rc1)
177
- actionview (= 5.0.0.rc1)
178
- activejob (= 5.0.0.rc1)
179
- activemodel (= 5.0.0.rc1)
180
- activerecord (= 5.0.0.rc1)
181
- activesupport (= 5.0.0.rc1)
165
+ rails (5.0.0.rc2)
166
+ actioncable (= 5.0.0.rc2)
167
+ actionmailer (= 5.0.0.rc2)
168
+ actionpack (= 5.0.0.rc2)
169
+ actionview (= 5.0.0.rc2)
170
+ activejob (= 5.0.0.rc2)
171
+ activemodel (= 5.0.0.rc2)
172
+ activerecord (= 5.0.0.rc2)
173
+ activesupport (= 5.0.0.rc2)
182
174
  bundler (>= 1.3.0, < 2.0)
183
- railties (= 5.0.0.rc1)
175
+ railties (= 5.0.0.rc2)
184
176
  sprockets-rails (>= 2.0.0)
185
177
  rails-deprecated_sanitizer (1.0.3)
186
178
  activesupport (>= 4.2.0.alpha)
@@ -193,7 +185,7 @@ GEM
193
185
  rails-i18n (4.0.2)
194
186
  i18n (~> 0.6)
195
187
  rails (>= 4.0)
196
- rails-timeago (2.13.0)
188
+ rails-timeago (2.14.0)
197
189
  actionpack (>= 3.1)
198
190
  activesupport (>= 3.1)
199
191
  rails_email_preview (2.0.1)
@@ -201,9 +193,9 @@ GEM
201
193
  request_store
202
194
  sass-rails
203
195
  turbolinks
204
- railties (5.0.0.rc1)
205
- actionpack (= 5.0.0.rc1)
206
- activesupport (= 5.0.0.rc1)
196
+ railties (5.0.0.rc2)
197
+ actionpack (= 5.0.0.rc2)
198
+ activesupport (= 5.0.0.rc2)
207
199
  method_source
208
200
  rake (>= 0.8.7)
209
201
  thor (>= 0.18.1, < 2.0)
@@ -211,7 +203,7 @@ GEM
211
203
  rb-gravatar (1.0.5)
212
204
  ref (2.0.0)
213
205
  request_store (1.3.1)
214
- rollbar (2.11.5)
206
+ rollbar (2.12.0)
215
207
  multi_json
216
208
  sanitize (4.0.1)
217
209
  crass (~> 1.0.2)
@@ -226,14 +218,14 @@ GEM
226
218
  tilt (>= 1.1, < 3)
227
219
  select2-rails (3.5.10)
228
220
  thor (~> 0.14)
229
- sprockets (3.6.1)
221
+ sprockets (3.6.2)
230
222
  concurrent-ruby (~> 1.0)
231
223
  rack (> 1, < 3)
232
224
  sprockets-es6 (0.9.0)
233
225
  babel-source (>= 5.8.11)
234
226
  babel-transpiler
235
227
  sprockets (>= 3.0.0)
236
- sprockets-rails (3.0.4)
228
+ sprockets-rails (3.1.1)
237
229
  actionpack (>= 4.0)
238
230
  activesupport (>= 4.0)
239
231
  sprockets (>= 3.0.0)
@@ -255,7 +247,7 @@ PLATFORMS
255
247
  ruby
256
248
 
257
249
  DEPENDENCIES
258
- active_record_union!
250
+ active_record_union (>= 1.2.0)
259
251
  dalli
260
252
  factory_girl_rails
261
253
  faker (>= 1.6.2)
@@ -265,16 +257,16 @@ DEPENDENCIES
265
257
  pg
266
258
  puma
267
259
  rack-canonical-host
268
- rails (~> 5.0.0.racecar1)
260
+ rails (~> 5.0.0.rc2)
269
261
  rails-i18n
270
262
  rails_email_preview (>= 1.0.3)
271
263
  rollbar
272
264
  therubyracer
273
265
  thredded!
274
- turbolinks
266
+ turbolinks (~> 2.5)
275
267
 
276
268
  RUBY VERSION
277
269
  ruby 2.3.1p112
278
270
 
279
271
  BUNDLED WITH
280
- 1.12.3
272
+ 1.12.5
@@ -64,7 +64,9 @@ module Thredded
64
64
  def format_content(content)
65
65
  pipeline = HTML::Pipeline.new(content_pipeline_filters, content_pipeline_options.merge(@pipeline_options))
66
66
  result = pipeline.call(content, view_context: @view_context)
67
+ # rubocop:disable Rails/OutputSafety
67
68
  result[:output].to_s.html_safe
69
+ # rubocop:enable Rails/OutputSafety
68
70
  end
69
71
 
70
72
  protected
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Thredded
3
- VERSION = '0.6.1'
3
+ VERSION = '0.6.2'
4
4
  end
@@ -10,17 +10,20 @@ Gem::Specification.new do |s|
10
10
  s.authors = ['Joel Oliveira', 'Gleb Mazovetskiy']
11
11
  s.email = ['joel@thredded.com', 'glex.spb@gmail.com']
12
12
  s.homepage = 'https://www.thredded.com'
13
- s.summary = 'A messageboard engine'
13
+ s.summary = 'The best Rails forums engine ever.'
14
14
  s.license = 'MIT'
15
- s.description = 'A messageboard engine for Rails 4.2+ apps'
15
+ s.description = 'The best Rails 4.2+ forums engine ever. Its goal is to be as simple and feature rich as possible.
16
+ Thredded works with SQLite, MySQL (v5.6.4+), and PostgreSQL. See the demo at https://thredded.org/.'
16
17
 
17
18
  s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|script)/|^\.}) } -
18
19
  %w(Dockerfile docker-compose.yml Rakefile Gemfile shared.gemfile)
19
20
 
21
+ s.required_ruby_version = '~> 2.1'
22
+
20
23
  # backend
21
24
  s.add_dependency 'bbcoder', '~> 1.0'
22
25
  s.add_dependency 'pundit', '>= 1.1.0'
23
- s.add_dependency 'active_record_union', '>= 1.1.1'
26
+ s.add_dependency 'active_record_union', '>= 1.2.0'
24
27
  s.add_dependency 'db_text_search', '~> 0.2.0'
25
28
  s.add_dependency 'friendly_id'
26
29
  s.add_dependency 'html-pipeline'
@@ -69,5 +72,7 @@ Gem::Specification.new do |s|
69
72
 
70
73
  # dummy app frontend
71
74
  s.add_development_dependency 'jquery-turbolinks'
72
- s.add_development_dependency 'turbolinks'
75
+ # TODO: upgrade once Turbolinks 5 is supported by jquery-turbolinks:
76
+ # https://github.com/kossnocorp/jquery.turbolinks/pull/58
77
+ s.add_development_dependency 'turbolinks', '~> 2.5'
73
78
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thredded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Oliveira
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-06-18 00:00:00.000000000 Z
12
+ date: 2016-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bbcoder
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 1.1.1
48
+ version: 1.2.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.1.1
55
+ version: 1.2.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: db_text_search
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -589,17 +589,19 @@ dependencies:
589
589
  name: turbolinks
590
590
  requirement: !ruby/object:Gem::Requirement
591
591
  requirements:
592
- - - ">="
592
+ - - "~>"
593
593
  - !ruby/object:Gem::Version
594
- version: '0'
594
+ version: '2.5'
595
595
  type: :development
596
596
  prerelease: false
597
597
  version_requirements: !ruby/object:Gem::Requirement
598
598
  requirements:
599
- - - ">="
599
+ - - "~>"
600
600
  - !ruby/object:Gem::Version
601
- version: '0'
602
- description: A messageboard engine for Rails 4.2+ apps
601
+ version: '2.5'
602
+ description: |-
603
+ The best Rails 4.2+ forums engine ever. Its goal is to be as simple and feature rich as possible.
604
+ Thredded works with SQLite, MySQL (v5.6.4+), and PostgreSQL. See the demo at https://thredded.org/.
603
605
  email:
604
606
  - joel@thredded.com
605
607
  - glex.spb@gmail.com
@@ -607,10 +609,10 @@ executables: []
607
609
  extensions: []
608
610
  extra_rdoc_files: []
609
611
  files:
610
- - CHANGELOG.mkdn
612
+ - CHANGELOG.md
611
613
  - MIT-LICENSE
612
614
  - Procfile
613
- - README.mkdn
615
+ - README.md
614
616
  - app/assets/images/thredded/breadcrumb-chevron.svg
615
617
  - app/assets/images/thredded/moderation.svg
616
618
  - app/assets/images/thredded/private-messages.svg
@@ -876,9 +878,9 @@ require_paths:
876
878
  - lib
877
879
  required_ruby_version: !ruby/object:Gem::Requirement
878
880
  requirements:
879
- - - ">="
881
+ - - "~>"
880
882
  - !ruby/object:Gem::Version
881
- version: '0'
883
+ version: '2.1'
882
884
  required_rubygems_version: !ruby/object:Gem::Requirement
883
885
  requirements:
884
886
  - - ">="
@@ -889,5 +891,5 @@ rubyforge_project:
889
891
  rubygems_version: 2.5.1
890
892
  signing_key:
891
893
  specification_version: 4
892
- summary: A messageboard engine
894
+ summary: The best Rails forums engine ever.
893
895
  test_files: []