roda-i18n 0.3.0 → 0.4.0

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: 7c49e1ba809caf572d5d75f55cbe48bedf855f80
4
- data.tar.gz: eb86ad5e8c25b9c152ae1a4c56d7cbcfac084f46
3
+ metadata.gz: 9c2738c4186efd7bb356272c3fad656bd1a79237
4
+ data.tar.gz: 72a1cb79f9dbc234b12411d58e7801e935933a7e
5
5
  SHA512:
6
- metadata.gz: 5d31eee8bb80bc0e147e8b94901c1be53b32c6684eb9471156e4841e3f6cbeff8234e3258f569093e26fa3276606d4d99eecbfd7d3656f7f91fa45c75ea20038
7
- data.tar.gz: d9351ab146c07cd61a0c29f5b234966f5b18deeaf55aecafe7d1018e53f503a6efe54f3b002e2af74a3c24442e5f4affef48015c68b6f9d5986924a179951878
6
+ metadata.gz: 941708ff91f4da8c9da9d03e2dafe545d1845e9e679d0e66d249408832c8aa3ecd53dbc2dbde3b56e756b5c2091eeb0e0eb529a305154fb0857f4b8972ab6b6d
7
+ data.tar.gz: 4781db341bd8d1fa1154dcc68d0ca45b56f7ccb76a9a4b3be103e066a26ea521472ff7af9a7e5515bed4d11e4d0e64de0812be79d89f77a9baca7597488590b7
@@ -1,6 +1,59 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## 0.4.0 (2018-05-08)
5
+
6
+ * Merge pull request #4 from adam12/yield-matched-locale - Yield matched locale to block
7
+
8
+ > Yield the matched locale to the block, similar to a normal Roda route.
9
+
10
+ * Merge pull request #5 from adam12/no-session-setting - Don't set session (BREAKING CHANGE)
11
+
12
+ I think setting the session should be done by the user inside the yielded block, using the value yielded from the match in #4, if they want that value to be set in the first place.
13
+
14
+ ```ruby
15
+ r.locale do |locale|
16
+ session[:locale] ||= locale
17
+ end
18
+ ```
19
+
20
+ If we assume that a session exists, this plugin can't be used where there is no session - ie. a Roda app that performs mailing only.
21
+
22
+ ```ruby
23
+ class Mailer < Roda
24
+ plugin :mailer
25
+ plugin :i18n
26
+
27
+ route do |r|
28
+ r.locale do
29
+ r.mail "/some-path" {}
30
+ end
31
+ end
32
+ end
33
+
34
+ Mailer.sendmail("/en/some-path") # FAILS! No Rack::Session available
35
+ ```
36
+
37
+ This is likely a breaking change for anybody relying on this functionality.
38
+
39
+ * Merge pull request #6 from adam12/fix-nil - Cast potentially matched locale to string
40
+
41
+ > Without this cast, a `root` block below the `locale` block will never be reached due to an exception of calling `downcase` on `nil`.
42
+
43
+ > I didn't add a new spec as moving the `r.root` call to the bottom of the block was enough to trigger the failure.
44
+
45
+ * Merge pull request #7 from zaidan/update/roda-3 - Making routes behind #locale block work
46
+
47
+ * Fix deprecated use of placeholders in string matchers
48
+ * Fix missing dependency on `r18n-core` < `2.2.0`
49
+ * Fix spec failures caused by unexpected order of `available_locales`
50
+ * Update dependency `roda` to `3.7`
51
+ * Update development dependency `rack-test` to `1.0`
52
+ * Update dependency `r18n-core` to `3.0.x`
53
+ * Update development dependency `rake` to `12.3`
54
+ * Remove noop check for exception
55
+
56
+
4
57
  ## 0.3.0 (2016-08-11)
5
58
 
6
59
  * Merged PR #3 by @jonduarte - Making routes behind #locale block work
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Roda-i18n
2
2
 
3
- [![Build Status](https://travis-ci.org/kematzy/roda-i18n.svg?branch=master)](https://travis-ci.org/kematzy/roda-i18n)
3
+ [![Gem Version](https://badge.fury.io/rb/roda-i18n.svg)](https://badge.fury.io/rb/roda-i18n) [![Build Status](https://travis-ci.org/kematzy/roda-i18n.svg?branch=master)](https://travis-ci.org/kematzy/roda-i18n)
4
+
4
5
 
5
6
  Add Internationalisation (i18n) and localisation support to your [Roda](http://roda.jeremyevans.net/)
6
7
  apps, based upon the [R18n](https://github.com/ai/r18n) gem.
@@ -1,7 +1,7 @@
1
1
  class Roda
2
2
 
3
3
  module I18n
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
6
6
 
7
7
  end
@@ -272,7 +272,7 @@ class Roda
272
272
  # This custom matcher allows us to have other routes below the r.locale .. declaration
273
273
  def _match_available_locales_only
274
274
  lambda do
275
- locale = remaining_path.split("/").reject(&:empty?).first
275
+ locale = remaining_path.split("/").reject(&:empty?).first.to_s
276
276
  if ::R18n.available_locales.map(&:code).map(&:downcase).include?(locale.downcase)
277
277
  @captures.push(locale)
278
278
  @remaining_path = remaining_path.sub("/#{locale}", "")
@@ -291,14 +291,14 @@ class Roda
291
291
  # t.posts.header # use translations or locales
292
292
  # end
293
293
  # end
294
+ # r.get(:about) { erb(:about) }
294
295
  # end
295
296
  #
296
297
  def locale(opts = {}, &blk)
297
298
  on(_match_available_locales_only, opts) do |l|
298
299
  loc = l || Roda.opts[:locale]
299
- session[:locale] = loc unless session[:locale]
300
300
  ::R18n.set(loc)
301
- yield if block_given?
301
+ yield loc if block_given?
302
302
  return # NB!! needed to enable routes below to work
303
303
  end
304
304
  end
@@ -32,19 +32,18 @@ Gem::Specification.new do |spec|
32
32
  spec.extra_rdoc_files = ['README.md', "MIT-LICENSE"]
33
33
  spec.rdoc_options += ['--quiet', '--line-numbers', '--inline-source', '--title', 'Roda-i18n: internationalisation plugin', '--main', 'README.md']
34
34
 
35
- spec.add_runtime_dependency 'roda', '~> 2.5', '>= 2.5.0'
35
+ spec.add_runtime_dependency 'roda', '~> 3.7'
36
36
  spec.add_runtime_dependency 'tilt'
37
- spec.add_runtime_dependency 'r18n-core', '~> 2.0', '>= 2.1.4'
37
+ spec.add_runtime_dependency 'r18n-core', '~> 3.0'
38
38
 
39
39
  spec.add_development_dependency 'bundler', "~> 1.10"
40
- spec.add_development_dependency 'rake', "~> 10.0"
40
+ spec.add_development_dependency 'rake', "~> 12.3"
41
41
  spec.add_development_dependency 'erubis'
42
42
  spec.add_development_dependency 'kramdown'
43
43
  spec.add_development_dependency 'minitest', '~> 5.7', '>= 5.7.0'
44
- spec.add_development_dependency 'minitest-assert_errors'
45
44
  spec.add_development_dependency 'minitest-hooks', '~> 1.1', '>= 1.1.0'
46
45
  spec.add_development_dependency 'minitest-rg'
47
- spec.add_development_dependency 'rack-test', '~> 0.6.3'
46
+ spec.add_development_dependency 'rack-test', '~> 1.0'
48
47
  spec.add_development_dependency 'nokogiri'
49
48
  spec.add_development_dependency 'simplecov'
50
49
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roda-i18n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kematzy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-11 00:00:00.000000000 Z
11
+ date: 2018-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: roda
@@ -16,20 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.5'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 2.5.0
19
+ version: '3.7'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '2.5'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 2.5.0
26
+ version: '3.7'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: tilt
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -50,20 +44,14 @@ dependencies:
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '2.0'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 2.1.4
47
+ version: '3.0'
57
48
  type: :runtime
58
49
  prerelease: false
59
50
  version_requirements: !ruby/object:Gem::Requirement
60
51
  requirements:
61
52
  - - "~>"
62
53
  - !ruby/object:Gem::Version
63
- version: '2.0'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 2.1.4
54
+ version: '3.0'
67
55
  - !ruby/object:Gem::Dependency
68
56
  name: bundler
69
57
  requirement: !ruby/object:Gem::Requirement
@@ -84,14 +72,14 @@ dependencies:
84
72
  requirements:
85
73
  - - "~>"
86
74
  - !ruby/object:Gem::Version
87
- version: '10.0'
75
+ version: '12.3'
88
76
  type: :development
89
77
  prerelease: false
90
78
  version_requirements: !ruby/object:Gem::Requirement
91
79
  requirements:
92
80
  - - "~>"
93
81
  - !ruby/object:Gem::Version
94
- version: '10.0'
82
+ version: '12.3'
95
83
  - !ruby/object:Gem::Dependency
96
84
  name: erubis
97
85
  requirement: !ruby/object:Gem::Requirement
@@ -140,20 +128,6 @@ dependencies:
140
128
  - - ">="
141
129
  - !ruby/object:Gem::Version
142
130
  version: 5.7.0
143
- - !ruby/object:Gem::Dependency
144
- name: minitest-assert_errors
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: '0'
157
131
  - !ruby/object:Gem::Dependency
158
132
  name: minitest-hooks
159
133
  requirement: !ruby/object:Gem::Requirement
@@ -194,14 +168,14 @@ dependencies:
194
168
  requirements:
195
169
  - - "~>"
196
170
  - !ruby/object:Gem::Version
197
- version: 0.6.3
171
+ version: '1.0'
198
172
  type: :development
199
173
  prerelease: false
200
174
  version_requirements: !ruby/object:Gem::Requirement
201
175
  requirements:
202
176
  - - "~>"
203
177
  - !ruby/object:Gem::Version
204
- version: 0.6.3
178
+ version: '1.0'
205
179
  - !ruby/object:Gem::Dependency
206
180
  name: nokogiri
207
181
  requirement: !ruby/object:Gem::Requirement
@@ -278,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
252
  version: '0'
279
253
  requirements: []
280
254
  rubyforge_project:
281
- rubygems_version: 2.5.1
255
+ rubygems_version: 2.5.2
282
256
  signing_key:
283
257
  specification_version: 4
284
258
  summary: Roda Internationalisation plugin