thredded 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml 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 %>