thredded 0.3.1 → 0.3.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: 6b5574ac2e8dfa7854f79cc64d96192b8b0d071a
4
- data.tar.gz: ae647c742cf56c13d5f6e65c600adef8dc7da725
3
+ metadata.gz: a5b1a2f3452e32092928cdeaa8ccb705e9f2a7d8
4
+ data.tar.gz: ff7a72e796b7dd7b20d0becc114ec3734ead905b
5
5
  SHA512:
6
- metadata.gz: e4a92b070aab8d1eadec6c02ca96b6b579ff5fdc801824af5272d774bdd9c128d15e5884aedbe695b0602d1da110df0490ab9e2411b7fc6a46c36ea6d1d1a3e8
7
- data.tar.gz: 3fcb63ce387ecbf395617425197d41bf37432a915a9582d96f7a9c33ad2d2d4faa263243e7a79daa3c7efbd6494fa010ff27766d8ff9993e2f91c2588dc2d184
6
+ metadata.gz: 9d4db4b55939ec62cc509a46ba8fe1e67c1f919ed826637e2202adf52ed1da8b67d6b4e58943b3d4fff8cef6ed5f7420fdab39a1464cb8eebca5c316be2e79e6
7
+ data.tar.gz: 6b6a9c0faa439d62c8bd53fdc7937efbd51261416e9506f0b67b1eeb659e79b706594f7c06438d447c18bdaa4780a711ed0ffd100a6ddd5941fc9604ea3c462a
data/CHANGELOG.mkdn CHANGED
@@ -1,3 +1,11 @@
1
+ # MASTER
2
+
3
+ ## 0.3.2 - 2016-05-04
4
+
5
+ * Main app routes are delegated correctly when using the standalone layout. [8a2ff56](https://github.com/thredded/thredded/commit/8a2ff56f73afe0d6e8e8ecede9666b8d65817fa3)
6
+ * Posts now have `word-break: break-all` applied to prevent overly long string form breaking the layout. [#267](https://github.com/thredded/thredded/issues/267)
7
+ * I18n for [rails-timeago](https://github.com/jgraichen/rails-timeago). [#270](https://github.com/thredded/thredded/issues/270)
8
+
1
9
  # 0.3.1 - 2016-05-01
2
10
 
3
11
  ## Fixed
data/README.mkdn CHANGED
@@ -48,7 +48,7 @@ while Discourse is a full app.
48
48
  Add the gem to your Gemfile:
49
49
 
50
50
  ```ruby
51
- gem 'thredded', '~> 0.3.1'
51
+ gem 'thredded', '~> 0.3.2'
52
52
  ```
53
53
 
54
54
  Add the Thredded [initializer] to your parent app by running the install generator.
@@ -78,6 +78,45 @@ Mount the thredded engine in your routes file:
78
78
  mount Thredded::Engine => '/forum'
79
79
  ```
80
80
 
81
+ You also may want to add an index to the user name column in your users table.
82
+ Thredded uses it to find @-mentions and perform name prefix autocompletion on the private topic form.
83
+ Add the index in a migration like so:
84
+
85
+ ```ruby
86
+ DbTextSearch::CaseInsensitive.add_index(
87
+ connection, Thredded.user_class.table_name, Thredded.user_name_column, unique: true)
88
+ ```
89
+
90
+ ### Migrating from Forem
91
+
92
+ Using [Forem]? Thredded provides [a migration][forem-to-thredded] to copy all your existing forums from Forem over
93
+ to Thredded.
94
+
95
+ [forem-to-thredded]: https://github.com/thredded/thredded/wiki/Migrate-from-Forem
96
+
97
+ ## Views and other assets
98
+
99
+ ### Standalone layout
100
+
101
+ By default, thredded renders in its own layout.
102
+
103
+ When using the standalone thredded layout, the log in / sign out links will be rendered in the navigation.
104
+ For these links (and only for these links), Thredded makes the assumption that you are using devise as your auth
105
+ library. If you are using something different you need to override the partial at
106
+ `app/views/thredded/shared/nav/_standalone.html.erb` and use the appropriate log in / sign out path URL helpers.
107
+
108
+ You can override the partial by copying it into the app:
109
+
110
+ ```bash
111
+ mkdir -p app/views/thredded/shared/nav && cp "$(bundle show thredded)/$_/_standalone.html.erb" "$_"
112
+ ```
113
+
114
+ ### Application layout
115
+
116
+ You can also use Thredded with the application layout by by setting `Thredded.layout` in the initializer.
117
+
118
+ In this case, you will also need to include Thredded styles and JavaScript into the application styles and JavaScript.
119
+
81
120
  Add thredded styles to your `application.scss` (see below for customizing the styles):
82
121
 
83
122
  ```scss
@@ -90,23 +129,23 @@ Include thredded JavaScripts in your `application.js`:
90
129
  //= require thredded
91
130
  ```
92
131
 
93
- You also may want to add an index to the user name column in your users table.
94
- Thredded uses it to find @-mentions and perform name prefix autocompletion on the private topic form.
95
- Add the index in a migration like so:
96
-
97
- ```ruby
98
- DbTextSearch::CaseInsensitive.add_index(
99
- connection, Thredded.user_class.table_name, Thredded.user_name_column, unique: true)
100
- ```
132
+ Thredded views also provide two `content_tag`s available to yield - `:thredded_page_title` and `:thredded_page_id`.
133
+ The views within Thredded pass those up through to your layout if you would like to use them.
101
134
 
102
- [initializer]: https://github.com/thredded/thredded/blob/master/lib/generators/thredded/install/templates/initializer.rb
135
+ ### Customizing views
103
136
 
104
- ### Migrating from Forem
137
+ You can also override any views and assets by placing them in the same path in your application as they are in the gem.
138
+ This uses the [standard Rails mechanism](http://guides.rubyonrails.org/engines.html#overriding-views) for overriding
139
+ engine views. For example, to copy the post view for customization:
105
140
 
106
- Using [Forem]? Thredded provides [a migration][forem-to-thredded] to copy all your existing forums from Forem over
107
- to Thredded.
141
+ ```bash
142
+ # Copy the post view into the application to customize it:
143
+ mkdir -p app/views/thredded/posts && cp "$(bundle show thredded)/$_/_post.html.erb" "$_"
144
+ ```
108
145
 
109
- [forem-to-thredded]: https://github.com/thredded/thredded/wiki/Migrate-from-Forem
146
+ **NB:** Overriding the views like this means that on every update of the thredded gem you have to check that your
147
+ customizations are still compatible with the new version of thredded. This is difficult and error-prone.
148
+ Whenever possible, use the styles and i18n to customize Thredded to your needs.
110
149
 
111
150
  ## Theming
112
151
 
@@ -144,27 +183,6 @@ any duplicate CSS.
144
183
  [select2-rails]: https://github.com/argerim/select2-rails
145
184
  [thredded-scss-base]: https://github.com/thredded/thredded/blob/master/app/assets/stylesheets/thredded/_base.scss
146
185
 
147
- ### Views and other assets
148
-
149
- By default, thredded renders in its own layout, but you can easily override this by setting `Thredded.layout` in the
150
- initializer.
151
-
152
- You can also override any views and assets by placing them in the same path in your application as they are in the gem.
153
- This uses the [standard Rails mechanism](http://guides.rubyonrails.org/engines.html#overriding-views) for overriding
154
- engine views. For example, to copy the post view for customization:
155
-
156
- ```bash
157
- # Copy the post view into the application to customize it:
158
- mkdir -p app/views/thredded/posts && cp "$(bundle show thredded)/$_/_post.html.erb" "$_"
159
- ```
160
-
161
- **NB:** Overriding the views like this means that on every update of the thredded gem you have to check that your
162
- customizations are still compatible with the new version of thredded. This is difficult and error-prone.
163
- Whenever possible, use the styles and i18n to customize Thredded to your needs.
164
-
165
- Thredded views also provide two content_tags available to yield - `:thredded_page_title` and `:thredded_page_id`.
166
- The views within Thredded pass those up through to your layout if you would like to use them.
167
-
168
186
  ### Emails
169
187
 
170
188
  Thredded sends several notification emails to the users. You can override in the same way as the views.
@@ -173,6 +191,19 @@ If you use [Rails Email Preview], you can include Thredded emails into the list
173
191
 
174
192
  [Rails Email Preview]: https://github.com/glebm/rails_email_preview
175
193
 
194
+ ## I18n
195
+
196
+ Thredded is mostly internationalized. It is currently available in English and Brazilian Portuguese. We welcome PRs
197
+ adding support for new languages.
198
+
199
+ If you use thredded in languages other than English, you probably want to add `rails-i18n` to your Gemfile.
200
+ Additionally, you will need to require the translations for rails-timeago in you JavaScript,
201
+ e.g. for Brazilian Portuguese:
202
+
203
+ ```js
204
+ //= require locales/jquery.timeago.pt-br
205
+ ```
206
+
176
207
  ## Permissions
177
208
 
178
209
  Thredded comes with a flexible permissions system that can be configured per messageboard/user.
@@ -402,3 +433,4 @@ docker-compose run web bundle exec rake
402
433
 
403
434
  The docker container uses PostgreSQL.
404
435
 
436
+ [initializer]: https://github.com/thredded/thredded/blob/master/lib/generators/thredded/install/templates/initializer.rb
@@ -57,6 +57,7 @@
57
57
  &--post--content {
58
58
  font-size: 1.063rem; // 17px
59
59
  line-height: 1.65;
60
+ word-break: break-all;
60
61
  a {
61
62
  @extend %thredded--link;
62
63
  }
@@ -59,7 +59,7 @@ module Thredded
59
59
  end
60
60
 
61
61
  def say(message)
62
- puts message unless Rails.env.test?
62
+ Rails.logger.info message unless Rails.env.test?
63
63
  end
64
64
  end
65
65
  end
@@ -2,7 +2,7 @@
2
2
  module Thredded
3
3
  class NotifyPrivateTopicUsers
4
4
  def initialize(private_topic)
5
- @post = private_topic.posts.first || Post.new
5
+ @post = private_topic.posts.order_oldest_first.first
6
6
  @private_topic = private_topic
7
7
  end
8
8
 
@@ -3,6 +3,9 @@ module Thredded
3
3
  class PrivateTopicForm
4
4
  include ActiveModel::Model
5
5
 
6
+ delegate :id,
7
+ to: :private_topic
8
+
6
9
  attr_accessor \
7
10
  :title,
8
11
  :category_ids,
@@ -31,10 +34,6 @@ module Thredded
31
34
  Thredded::PrivateTopic.model_name
32
35
  end
33
36
 
34
- def id
35
- private_topic.id
36
- end
37
-
38
37
  def save
39
38
  return false unless valid?
40
39
 
@@ -45,12 +45,14 @@ module Thredded
45
45
  def user_messageboard_preference
46
46
  return nil unless @messageboard
47
47
  @user_messageboard_preference ||=
48
- user_preference.messageboard_preferences.where(messageboard_id: @messageboard.id).first_or_initialize
48
+ user_preference.messageboard_preferences.find_or_initialize_by(messageboard_id: @messageboard.id)
49
49
  end
50
50
 
51
51
  def validate_children
52
52
  promote_errors(user_preference.errors) if user_preference.invalid?
53
- promote_errors(user_messageboard_preference.errors, :messageboard) if messageboard && user_messageboard_preference.invalid?
53
+ if messageboard && user_messageboard_preference.invalid?
54
+ promote_errors(user_messageboard_preference.errors, :messageboard)
55
+ end
54
56
  end
55
57
 
56
58
  def promote_errors(child_errors, prefix = nil)
@@ -20,7 +20,7 @@ module Thredded
20
20
  # @param datetime [DateTime]
21
21
  # @return [String] html_safe datetime presentation
22
22
  def time_ago(datetime)
23
- render partial: 'thredded/shared/time_ago', locals: { datetime: datetime }
23
+ timeago_tag datetime, lang: I18n.locale.to_s.downcase, date_only: false, nojs: true
24
24
  end
25
25
 
26
26
  def paginate(collection, args = {})
@@ -6,15 +6,14 @@ module Thredded
6
6
  def perform(user_id, messageboard_id)
7
7
  now = Time.current
8
8
 
9
- user_detail = Thredded::UserDetail.where(user_id: user_id).first_or_initialize
9
+ user_detail = Thredded::UserDetail.find_or_initialize_by(user_id: user_id)
10
10
  user_detail.update!(last_seen_at: now)
11
11
 
12
12
  Thredded::MessageboardUser
13
- .where(
13
+ .find_or_initialize_by(
14
14
  thredded_messageboard_id: messageboard_id,
15
15
  thredded_user_detail_id: user_detail.id
16
16
  )
17
- .first_or_initialize
18
17
  .update!(last_seen_at: now)
19
18
  end
20
19
  end
@@ -12,10 +12,9 @@ module Thredded
12
12
  scope :order_recently_updated_first, -> { order(updated_at: :desc, id: :desc) }
13
13
  scope :on_page, -> page_num { page(page_num).per(30) }
14
14
 
15
- validates_presence_of :hash_id
16
- validates_presence_of :last_user_id
17
- validates_numericality_of :posts_count
18
- validates_uniqueness_of :hash_id
15
+ validates :hash_id, presence: true, uniqueness: true
16
+ validates :last_user_id, presence: true
17
+ validates :posts_count, numericality: true
19
18
 
20
19
  before_validation do
21
20
  self.hash_id = SecureRandom.hex(10) if hash_id.nil?
@@ -21,7 +21,7 @@ module Thredded
21
21
  # TODO: Switch to upsert once Travis supports PostgreSQL 9.5.
22
22
  # Travis issue: https://github.com/travis-ci/travis-ci/issues/4264
23
23
  # Upsert gem: https://github.com/seamusabshere/upsert
24
- state = where(user_id: user_id, postable_id: topic_id).first_or_initialize
24
+ state = find_or_initialize_by(user_id: user_id, postable_id: topic_id)
25
25
  fail ArgumentError, "expected post_page >= 1, given #{post_page.inspect}" if post_page < 1
26
26
  return unless !state.read_at? || state.read_at < post.updated_at
27
27
  state.update!(read_at: post.updated_at, page: post_page)
@@ -3,22 +3,8 @@ module Thredded
3
3
  class Stats
4
4
  include ActionView::Helpers::NumberHelper
5
5
 
6
- class << self
7
- def messageboards_count
8
- new.messageboards_count
9
- end
10
-
11
- def topics_count
12
- new.topics_count
13
- end
14
-
15
- def posts_count
16
- new.posts_count
17
- end
18
- end
19
-
20
6
  def messageboards_count
21
- messageboards.count
7
+ number_to_human(messageboards.count, precision: 4)
22
8
  end
23
9
 
24
10
  def topics_count
@@ -29,7 +29,7 @@ module Thredded
29
29
  counter_cache: true,
30
30
  touch: true,
31
31
  inverse_of: :topics
32
- validates_presence_of :messageboard_id
32
+ validates :messageboard_id, presence: true
33
33
 
34
34
  belongs_to :user_detail,
35
35
  primary_key: :user_id,
@@ -14,7 +14,7 @@ module Thredded
14
14
  validates :messageboard_id, presence: true
15
15
 
16
16
  def self.in(messageboard)
17
- where(messageboard_id: messageboard.id).first_or_initialize
17
+ find_or_initialize_by(messageboard_id: messageboard.id)
18
18
  end
19
19
  end
20
20
  end
@@ -47,7 +47,7 @@ module Thredded
47
47
  module ClassMethods
48
48
  def from_user(topic, user)
49
49
  read_state = if user && !user.thredded_anonymous?
50
- topic.association(:user_read_states).klass.where(user_id: user.id, postable_id: topic.id).first
50
+ topic.association(:user_read_states).klass.find_by(user_id: user.id, postable_id: topic.id)
51
51
  end
52
52
  new(topic, read_state, Pundit.policy!(user, topic))
53
53
  end
@@ -35,6 +35,7 @@ module Thredded
35
35
 
36
36
  def cache_key
37
37
  [
38
+ I18n.locale,
38
39
  @post,
39
40
  @post.user,
40
41
  [can_update?, can_destroy?].map { |p| p ? '+' : '-' } * ''
@@ -1,4 +1,7 @@
1
1
  # frozen_string_literal: true
2
+ # rubocop:disable Metrics/ClassLength
3
+ # rubocop:disable Metrics/MethodLength
4
+ # rubocop:disable Metrics/LineLength
2
5
  class CreateThredded < ActiveRecord::Migration
3
6
  def change
4
7
  unless table_exists?(:friendly_id_slugs)
@@ -167,3 +170,6 @@ class CreateThredded < ActiveRecord::Migration
167
170
  end
168
171
  end
169
172
  end
173
+ # rubocop:enable Metrics/LineLength
174
+ # rubocop:enable Metrics/MethodLength
175
+ # rubocop:enable Metrics/ClassLength
data/db/seeds.rb CHANGED
@@ -44,10 +44,7 @@ module Thredded
44
44
  end
45
45
 
46
46
  def create_first_user
47
- @user ||= begin
48
- ::User.first ||
49
- ::User.create(name: 'Joe', email: 'joe@example.com')
50
- end
47
+ @user ||= ::User.first || ::User.create(name: 'Joe', email: 'joe@example.com')
51
48
  end
52
49
 
53
50
  def create_users(count: 5)
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
+ # rubocop:disable Metrics/MethodLength
3
+ # rubocop:disable Metrics/LineLength
2
4
  class UpgradeV02ToV03 < ActiveRecord::Migration
3
5
  def up
4
6
  remove_index :thredded_notification_preferences, name: :index_thredded_notification_preferences_on_messageboard_id
@@ -57,3 +59,5 @@ class UpgradeV02ToV03 < ActiveRecord::Migration
57
59
  remove_column :thredded_user_preferences, :notify_on_message
58
60
  end
59
61
  end
62
+ # rubocop:enable Metrics/LineLength
63
+ # rubocop:enable Metrics/MethodLength
data/heroku.gemfile CHANGED
@@ -15,6 +15,8 @@ gem 'pg'
15
15
  gem 'rails_email_preview', '>= 1.0.3'
16
16
  gem 'jquery-turbolinks'
17
17
  gem 'turbolinks'
18
+ gem 'rails-i18n'
19
+ gem 'http_accept_language'
18
20
  gem 'factory_girl_rails'
19
21
  gem 'faker', '>= 1.6.2'
20
22
 
data/heroku.gemfile.lock CHANGED
@@ -17,7 +17,7 @@ GIT
17
17
  PATH
18
18
  remote: .
19
19
  specs:
20
- thredded (0.3.0)
20
+ thredded (0.3.2)
21
21
  active_record_union (>= 1.1.1)
22
22
  autoprefixer-rails
23
23
  autosize-rails
@@ -103,7 +103,7 @@ GEM
103
103
  coffee-script-source
104
104
  execjs
105
105
  coffee-script-source (1.10.0)
106
- concurrent-ruby (1.0.1)
106
+ concurrent-ruby (1.0.2)
107
107
  crass (1.0.2)
108
108
  dalli (2.7.6)
109
109
  db_text_search (0.2.0)
@@ -131,8 +131,9 @@ GEM
131
131
  html-pipeline-youtube (0.1.2)
132
132
  html-pipeline (~> 2.0)
133
133
  htmlentities (4.3.4)
134
+ http_accept_language (2.0.5)
134
135
  i18n (0.7.0)
135
- inline_svg (0.6.4)
136
+ inline_svg (0.7.0)
136
137
  activesupport (>= 4.0.4)
137
138
  loofah (>= 2.0)
138
139
  nokogiri (~> 1.6)
@@ -155,7 +156,7 @@ GEM
155
156
  mime-types-data (3.2016.0221)
156
157
  mini_portile2 (2.0.0)
157
158
  minitest (5.8.4)
158
- multi_json (1.11.3)
159
+ multi_json (1.12.0)
159
160
  newrelic_rpm (3.15.2.317)
160
161
  nio4r (1.2.1)
161
162
  nokogiri (1.6.7.2)
@@ -193,6 +194,9 @@ GEM
193
194
  rails-deprecated_sanitizer (>= 1.0.1)
194
195
  rails-html-sanitizer (1.0.3)
195
196
  loofah (~> 2.0)
197
+ rails-i18n (4.0.2)
198
+ i18n (~> 0.6)
199
+ rails (>= 4.0)
196
200
  rails-timeago (2.13.0)
197
201
  actionpack (>= 3.1)
198
202
  activesupport (>= 3.1)
@@ -212,7 +216,7 @@ GEM
212
216
  ref (2.0.0)
213
217
  request_store (1.3.1)
214
218
  rinku (1.7.3)
215
- rollbar (2.10.0)
219
+ rollbar (2.11.1)
216
220
  multi_json
217
221
  sanitize (4.0.1)
218
222
  crass (~> 1.0.2)
@@ -260,6 +264,7 @@ DEPENDENCIES
260
264
  dalli
261
265
  factory_girl_rails
262
266
  faker (>= 1.6.2)
267
+ http_accept_language
263
268
  jquery-turbolinks
264
269
  kaminari!
265
270
  newrelic_rpm
@@ -267,6 +272,7 @@ DEPENDENCIES
267
272
  puma
268
273
  rack-canonical-host
269
274
  rails (~> 5.0.0.beta4)
275
+ rails-i18n
270
276
  rails_email_preview (>= 1.0.3)
271
277
  rollbar
272
278
  therubyracer
@@ -277,4 +283,4 @@ RUBY VERSION
277
283
  ruby 2.3.1p112
278
284
 
279
285
  BUNDLED WITH
280
- 1.12.0
286
+ 1.12.1
@@ -19,10 +19,8 @@ module Thredded
19
19
  Thredded.user_class.send(:include, Thredded::UserExtender)
20
20
  end
21
21
 
22
- unless Thredded.standalone_layout?
23
- # Delegate all main_app routes to allow calling them directly.
24
- ::Thredded::ApplicationController.helper ::Thredded::MainAppRouteDelegator
25
- end
22
+ # Delegate all main_app routes to allow calling them directly.
23
+ ::Thredded::ApplicationController.helper ::Thredded::MainAppRouteDelegator
26
24
  end
27
25
 
28
26
  initializer 'thredded.setup_assets' do
@@ -20,16 +20,15 @@ module Thredded
20
20
  keyword_scan = @query.scan(regex)
21
21
  @query = @query.gsub(regex, '')
22
22
 
23
- if keyword_scan.present?
24
- keyword_scan.each do |term|
25
- keyword_term = term.delete(' ').split(':')
23
+ next unless keyword_scan.present?
24
+ keyword_scan.each do |term|
25
+ keyword_term = term.delete(' ').split(':')
26
26
 
27
- if found_terms_hash[keyword].nil?
28
- found_terms_hash[keyword] = []
29
- end
30
-
31
- found_terms_hash[keyword] << keyword_term[1]
27
+ if found_terms_hash[keyword].nil?
28
+ found_terms_hash[keyword] = []
32
29
  end
30
+
31
+ found_terms_hash[keyword] << keyword_term[1]
33
32
  end
34
33
  end
35
34
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Thredded
3
- VERSION = '0.3.1'
3
+ VERSION = '0.3.2'
4
4
  end
data/thredded.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.description = 'A messageboard engine for Rails 4.2+ apps'
16
16
 
17
17
  s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|script)/|^\.}) } -
18
- %w(Dockerfile docker-compose.yml Rakefile Gemfile shared.gemfile)
18
+ %w(Dockerfile docker-compose.yml Rakefile Gemfile shared.gemfile)
19
19
 
20
20
  # backend
21
21
  s.add_dependency 'bbcoder', '~> 1.0'
@@ -59,6 +59,8 @@ Gem::Specification.new do |s|
59
59
  s.add_development_dependency 'test-unit'
60
60
 
61
61
  # dummy app dependencies
62
+ s.add_development_dependency 'rails-i18n'
63
+ s.add_development_dependency 'http_accept_language'
62
64
  s.add_development_dependency 'mysql2'
63
65
  s.add_development_dependency 'pg'
64
66
  s.add_development_dependency 'sqlite3'
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.3.1
4
+ version: 0.3.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-05-01 00:00:00.000000000 Z
12
+ date: 2016-05-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bbcoder
@@ -473,6 +473,34 @@ dependencies:
473
473
  - - ">="
474
474
  - !ruby/object:Gem::Version
475
475
  version: '0'
476
+ - !ruby/object:Gem::Dependency
477
+ name: rails-i18n
478
+ requirement: !ruby/object:Gem::Requirement
479
+ requirements:
480
+ - - ">="
481
+ - !ruby/object:Gem::Version
482
+ version: '0'
483
+ type: :development
484
+ prerelease: false
485
+ version_requirements: !ruby/object:Gem::Requirement
486
+ requirements:
487
+ - - ">="
488
+ - !ruby/object:Gem::Version
489
+ version: '0'
490
+ - !ruby/object:Gem::Dependency
491
+ name: http_accept_language
492
+ requirement: !ruby/object:Gem::Requirement
493
+ requirements:
494
+ - - ">="
495
+ - !ruby/object:Gem::Version
496
+ version: '0'
497
+ type: :development
498
+ prerelease: false
499
+ version_requirements: !ruby/object:Gem::Requirement
500
+ requirements:
501
+ - - ">="
502
+ - !ruby/object:Gem::Version
503
+ version: '0'
476
504
  - !ruby/object:Gem::Dependency
477
505
  name: mysql2
478
506
  requirement: !ruby/object:Gem::Requirement
@@ -768,7 +796,6 @@ files:
768
796
  - app/views/thredded/shared/_header.html.erb
769
797
  - app/views/thredded/shared/_nav.html.erb
770
798
  - app/views/thredded/shared/_page.html.erb
771
- - app/views/thredded/shared/_time_ago.html.erb
772
799
  - app/views/thredded/shared/nav/_notification_preferences.html.erb
773
800
  - app/views/thredded/shared/nav/_private_topics.html.erb
774
801
  - app/views/thredded/shared/nav/_standalone.html.erb
@@ -831,7 +858,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
831
858
  version: '0'
832
859
  requirements: []
833
860
  rubyforge_project:
834
- rubygems_version: 2.6.4
861
+ rubygems_version: 2.5.1
835
862
  signing_key:
836
863
  specification_version: 4
837
864
  summary: A messageboard engine
@@ -1,7 +0,0 @@
1
- <% if datetime.nil? %>
2
- <abbr>a little while ago</abbr>
3
- <% else %>
4
- <abbr class="timeago" title="<%= datetime.getutc.iso8601 %>">
5
- <%= datetime.to_s %>
6
- </abbr>
7
- <% end %>