alephant-renderer 2.0.3 → 3.0.0

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: 6500409f7ed7d93417ea6768be36cd7f23c43135
4
- data.tar.gz: be8935bf286156e5c0bcef479003942303c0e9fe
3
+ metadata.gz: d9591905fd45c75107c668cd11a21c8beb281d83
4
+ data.tar.gz: 411a4f3a3b03a1f6adaf3aa78068bbeeb15b1e63
5
5
  SHA512:
6
- metadata.gz: d41d682050384b8a91b2c921c854c6ce182ae4ce029d4708cd8f5c61f3535a0cfa5aebbfefc22717a1e2b388f5be503312c5fd03e5fe989decd2b4e63e560b89
7
- data.tar.gz: 156b79084867ba84b812be0ef52cd83621166127ace67b870a790e260ded3d324773a4e641f454e06632d2926e530ad9a90193c1bd632254021656adca72f7b1
6
+ metadata.gz: f568b783142251a21023d92f44daf86821c396c5c23b16baa5b2c512953a8fdb31a8dd364b1762cfaee8e6be4b984a41abd8f009ba63fd10a1deb999f27500e6
7
+ data.tar.gz: a7c27d89826d706bb0b414e7490b35cedf0f2811940106cd95377b93b938a75884539b9d2f37a69cc593438173df313c90b913dbd9534fbe43f1728e2c9a583c
data/README.md CHANGED
@@ -134,11 +134,13 @@ For each translation, a seperate model and view is needed.
134
134
 
135
135
  #### Model
136
136
 
137
- All that's needed in the model is to override the LOCALE constant:
137
+ A model should override the `locale` method:
138
138
 
139
139
  ```ruby
140
- class TestModel < Alephant::Views::Base
141
- LOCALE = :cy
140
+ class TestModel < Alephant::Views::HTML
141
+ def locale
142
+ :cy
143
+ end
142
144
  end
143
145
  ```
144
146
 
@@ -178,20 +180,76 @@ en:
178
180
  key: 'A translation!'
179
181
  ```
180
182
 
181
- ##### Default
183
+ ##### Other options
182
184
 
183
- By default, if the translation key doesn't exist then the translation key is used as the translation.
185
+ The `t()` method takes a second hash argument for accessing other I18n features. Below are a few of the more common uses of this argument.
184
186
 
185
- You can override this behaviour and provide a default:
187
+ By default, if the translation key doesn't exist then the translation key is used as the translation. You can override this behaviour and provide an explicit default:
186
188
 
187
189
  ```ruby
188
190
  def my_translation
189
- t 'missing_key', :default => 'Some default'
191
+ t 'missing_key', default: 'Some default'
190
192
  end
193
+ ```
191
194
 
195
+ Plurality can also be handled, including support for languages with multiple pluralities. You would define your translation in the yaml file like this:
196
+
197
+ ```yaml
198
+ en:
199
+ test_template:
200
+ pluralized_key:
201
+ one: 'Singular string'
202
+ other: 'Plural string'
203
+ ```
204
+ and the code would look like:
205
+ ```ruby
206
+ t 'pluralized_key', count: @num_of_things
192
207
  ```
193
208
 
194
- So if the key doesn't exists, then 'Some default' is the translation.
209
+ You can force it to use a different locale if you need:
210
+ ```ruby
211
+ t 'some_key', locale: :cy
212
+ ```
213
+
214
+ You can use strings from another subsection of the translations. E.g. if your renderer was currently _myRenderer_ and your translations yaml looked like this:
215
+ ```yaml
216
+ en:
217
+ myRenderer:
218
+ 'some_key': 'some string'
219
+ general:
220
+ 'another_key': 'another string'
221
+ ```
222
+ You can do this in code:
223
+ ```ruby
224
+ t 'another_key', scope: 'general'
225
+ ```
226
+
227
+ You can do simple variable substitution, as often dynamic data can be in a different position in different strings. Your yaml might look like:
228
+ ```yaml
229
+ en:
230
+ myRenderer:
231
+ 'some_key': 'some %{insert} string'
232
+ ```
233
+ and the code looks like:
234
+ ```ruby
235
+ t 'some_key', insert: 'text inserted into a'
236
+ ```
237
+
238
+ ## Templates
239
+
240
+ The template engine is built into the Alephant::Views::HTML class. Create methods that correspond to variables, and they will become available to the template.
241
+
242
+ ### Paths
243
+
244
+ There are two template paths in Alephant, the template path and the partials path. By default in HTML renderers, the template path is `../templates/` from your model, and the partials path is `../../lib/templates` from your model. You can change either of these pathing strategies by overridding the default renderer_engine instantiation.
245
+
246
+ ```ruby
247
+ def renderer_engine
248
+ partial_path = File.join(base_path, 'templates/')
249
+ Alephant::Renderer::Engine::Mustache.new(base_path, template_name, partial_path)
250
+ end
251
+ ```
252
+ In the above example, base_path is the parent of the current model folder, so this will make the partials path equal to the template path.
195
253
 
196
254
 
197
255
  ## Contributing
@@ -32,4 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.add_runtime_dependency "mustache", "~> 0.99.5"
33
33
  spec.add_runtime_dependency "alephant-logger"
34
34
  spec.add_runtime_dependency "hashie"
35
+ spec.add_runtime_dependency "listen", "~> 3.0.0"
35
36
  end
@@ -0,0 +1,42 @@
1
+ require 'mustache'
2
+
3
+ module Alephant
4
+ module Renderer
5
+ module Engine
6
+ class Mustache
7
+ def initialize(base_path, namespace, partials_path = nil)
8
+ @namespace = namespace
9
+ @base_path = base_path
10
+ @partial_path = partials_path || default_shared_partial_path
11
+ end
12
+
13
+ def render(data)
14
+ mustache.template_path = @partial_path
15
+ mustache.render(template, data)
16
+ end
17
+
18
+ def default_shared_partial_path
19
+ File.join(@base_path, '../lib/templates')
20
+ end
21
+
22
+ def template_path
23
+ File.join(@base_path, 'templates')
24
+ end
25
+
26
+ private
27
+
28
+ def template_file
29
+ File.join(template_path, "#{@namespace}.#{::Mustache.template_extension}")
30
+ end
31
+
32
+ def template
33
+ @template_string ||= File.open(template_file).read
34
+ end
35
+
36
+ def mustache
37
+ ::Mustache
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,53 @@
1
+ require 'i18n'
2
+
3
+ module Alephant
4
+ module Renderer
5
+ module I18n
6
+ class LocaleComponentYaml
7
+ def initialize(locale, namespace, translations_path = nil)
8
+ @translations_path = translations_path
9
+ @locale = locale
10
+ @namespace = namespace
11
+
12
+ load_translations
13
+ end
14
+
15
+ def t(key, params = {})
16
+ i18n_lib.locale = @locale
17
+ params[:default] = key unless params[:default]
18
+ params[:scope] = @namespace unless params[:scope]
19
+ i18n_lib.translate(key, params)
20
+ end
21
+
22
+ private
23
+
24
+ def load_translations
25
+ return unless i18n_lib.available_locales.empty?
26
+ i18n_lib.backend.load_translations(translations_files)
27
+ end
28
+
29
+ def translations_files
30
+ Dir[translation_filename]
31
+ .flatten
32
+ .uniq
33
+ end
34
+
35
+ def translation_filename
36
+ File.join(
37
+ translations_path,
38
+ '*.yml')
39
+ end
40
+
41
+ def translations_path
42
+ @translations_path || './components/lib/locales'
43
+ end
44
+
45
+ def i18n_lib
46
+ i18n_lib = ::I18n
47
+ i18n_lib.enforce_available_locales = false
48
+ i18n_lib
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -1,5 +1,5 @@
1
1
  module Alephant
2
2
  module Renderer
3
- VERSION = "2.0.3"
3
+ VERSION = '3.0.0'.freeze
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
- require "alephant/renderer/views"
2
- require "hashie"
3
- require "pathname"
1
+ require 'alephant/renderer/views'
2
+ require 'hashie'
3
+ require 'pathname'
4
4
 
5
5
  module Alephant
6
6
  module Renderer
@@ -38,8 +38,8 @@ module Alephant
38
38
  attr_accessor :base_path
39
39
 
40
40
  def inherited(subclass)
41
- current_dir = File.dirname(caller.first[/\/[^:]+/])
42
- dir_path = Pathname.new(File.join(current_dir, "..")).realdirpath
41
+ current_dir = File.dirname(caller.first[%r{/[^:]+}])
42
+ dir_path = Pathname.new(File.join(current_dir, '..')).realdirpath
43
43
 
44
44
  subclass.base_path = dir_path.to_s
45
45
 
@@ -1,64 +1,57 @@
1
- require "alephant/renderer/views/base"
2
- require "mustache"
3
- require "i18n"
1
+ require 'alephant/renderer/views/base'
2
+ require 'alephant/renderer/engine/mustache'
3
+ require 'alephant/renderer/i18n/locale_component_yaml'
4
4
 
5
5
  module Alephant
6
6
  module Renderer
7
7
  module Views
8
- class Html < Mustache
8
+ class Html
9
9
  include ::Alephant::Renderer::Views::Base
10
10
 
11
+ class << self
12
+ # FIXME: remove this when we've gotten rid of all of the `self.template_path` directives
13
+ attr_accessor :template_path
14
+ end
15
+
11
16
  def setup
12
- @content_type = "text/html"
13
- load_translations_from base_path
17
+ @content_type = 'text/html'
18
+ @translator = translator
19
+ @renderer = renderer_engine
14
20
  end
15
21
 
16
- def locale
17
- :en
22
+ def render
23
+ @renderer.render self
18
24
  end
19
25
 
20
26
  private
21
27
 
22
- def load_translations_from(base_path)
23
- if I18n.load_path.empty?
24
- I18n.config.enforce_available_locales = false
25
- I18n.load_path = i18n_load_path_from(base_path)
26
- I18n.backend.load_translations
27
- end
28
+ def translator
29
+ Alephant::Renderer::I18n::LocaleComponentYaml.new(
30
+ locale,
31
+ template_name,
32
+ translations_path)
28
33
  end
29
34
 
30
- def i18n_load_path_from(base_path)
31
- Dir[
32
- File.join(
33
- Pathname.new(base_path).parent,
34
- "locale",
35
- "*.yml")
36
- ]
37
- .flatten
38
- .uniq
35
+ def translations_path
36
+ File.join(
37
+ Pathname.new(base_path).parent,
38
+ 'locale')
39
39
  end
40
40
 
41
- def t(key, params = {})
42
- I18n.locale = locale
43
- prefix = /\/([^\/]+)\.mustache/.match(template_file)[1]
44
- params.merge! :default => key unless params[:default]
45
- translation = I18n.translate("#{prefix}.#{key}", params)
41
+ def renderer_engine
42
+ Alephant::Renderer::Engine::Mustache.new(base_path, template_name)
46
43
  end
47
44
 
48
- def template
49
- @template_string ||= File.open(template_file).read
45
+ def t(key, params = {})
46
+ @translator.t(key, params)
50
47
  end
51
48
 
52
- def template_name
53
- Mustache.underscore(self.class.to_s).split("/").last
49
+ def locale
50
+ :en
54
51
  end
55
52
 
56
- def template_file
57
- File.join(
58
- base_path,
59
- "templates",
60
- "#{template_name}.#{template_extension}"
61
- )
53
+ def template_name
54
+ Mustache.underscore(self.class.to_s).split('/').last
62
55
  end
63
56
  end
64
57
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alephant::Renderer::Engine::Mustache do
4
+ let(:base_path) { File.join(File.dirname(__FILE__), 'fixtures') }
5
+ let(:namespace) { 'sample' }
6
+
7
+ subject { described_class.new(base_path, namespace) }
8
+
9
+ describe 'Renders a template' do
10
+ it 'should render some data to a template' do
11
+ data = {
12
+ item1: 'AAA',
13
+ item2: 'bbb'
14
+ }
15
+ expect(subject.render(data)).to eq('<span>AAA</span><span>bbb</span>')
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ {{module_type}} shared module template
@@ -0,0 +1,3 @@
1
+ en:
2
+ translating_module:
3
+ module_type: "modern"
@@ -0,0 +1,8 @@
1
+ module MyApp
2
+ class LegacyModule < Alephant::Renderer::Views::Html
3
+ self.template_path = '/ignored/path/to/templates'
4
+ def module_type
5
+ 'legacy'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module MyApp
2
+ class LegacySharedModule < Alephant::Renderer::Views::Html
3
+ self.template_path = '/ignored/path/to/shared/templates'
4
+ def module_type
5
+ 'legacy'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module MyApp
2
+ class TranslatingModule < Alephant::Renderer::Views::Html
3
+ def module_type
4
+ t 'module_type'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1 @@
1
+ {{module_type}} module template
@@ -0,0 +1 @@
1
+ <span>{{item1}}</span><span>{{item2}}</span>
@@ -0,0 +1,9 @@
1
+ en:
2
+ my_namespace:
3
+ some_string: "some string"
4
+
5
+ cy:
6
+ other_namespace:
7
+ some_string:
8
+ one: "another string"
9
+ other: "another %{count} strings"
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alephant::Renderer::I18n::LocaleComponentYaml do
4
+ let(:template_path) { File.join(File.dirname(__FILE__), 'fixtures') }
5
+ let(:locale) { 'en' }
6
+ let(:namespace) { 'my_namespace' }
7
+
8
+ subject { described_class.new(locale, namespace, template_path) }
9
+
10
+ describe 'Performs a translation' do
11
+ it 'should return a translated string in 1 locale' do
12
+ expect(subject.t(:some_string)).to eq('some string')
13
+ end
14
+ end
15
+
16
+ describe 'Overridding parameters' do
17
+ it 'should return a translation from a different locale/component' do
18
+ params = {
19
+ locale: 'cy',
20
+ scope: 'other_namespace',
21
+ count: 1
22
+ }
23
+ expect(subject.t(:some_string, params)).to eq('another string')
24
+ end
25
+
26
+ it 'should return a pluralized translation with variable substitution' do
27
+ params = {
28
+ locale: 'cy',
29
+ scope: 'other_namespace',
30
+ count: 2
31
+ }
32
+ expect(subject.t(:some_string, params)).to eq('another 2 strings')
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ require_relative 'fixtures/components/test-renderer/models/legacy_module'
3
+ require_relative 'fixtures/components/test-renderer/models/legacy_shared_module'
4
+ require_relative 'fixtures/components/test-renderer/models/translating_module'
5
+
6
+ describe Alephant::Renderer::Views::Html do
7
+ let(:data) { nil }
8
+ let(:test_renderer) { MyApp::LegacyModule }
9
+
10
+ subject { test_renderer.new(data) }
11
+
12
+ describe 'Interface tests (backwards compatibility)' do
13
+ it 'should accept self.template_path calls' do
14
+ expect(subject.class.template_path).to eq('/ignored/path/to/templates')
15
+ end
16
+
17
+ it 'should render from a local template (with template_path set)' do
18
+ expect(subject.render).to eq('legacy module template')
19
+ end
20
+
21
+ describe 'Shared template test' do
22
+ let(:test_renderer) { MyApp::LegacySharedModule }
23
+
24
+ it 'should render a local template that points to a shared template (with template_path set)' do
25
+ expect(subject.render).to eq('legacy shared module template')
26
+ end
27
+ end
28
+ end
29
+
30
+ describe 'Interface tests' do
31
+ describe 'Translation test' do
32
+ before(:all) do
33
+ ::I18n.backend = I18n::Backend::Simple.new
34
+ end
35
+
36
+ let(:test_renderer) { MyApp::TranslatingModule }
37
+
38
+ it 'should render a template with a translated string' do
39
+ expect(subject.render).to eq('modern shared module template')
40
+ end
41
+ end
42
+ end
43
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- $: << File.join(File.dirname(__FILE__),"..", "lib")
1
+ $LOAD_PATH << File.join(File.dirname(__FILE__),"..", "lib")
2
2
 
3
3
  require "pry"
4
4
  require "json"
metadata CHANGED
@@ -1,211 +1,225 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BBC News
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-10 00:00:00.000000000 Z
11
+ date: 2016-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
14
20
  requirement: !ruby/object:Gem::Requirement
15
21
  requirements:
16
22
  - - '>='
17
23
  - !ruby/object:Gem::Version
18
24
  version: '0'
19
- name: rspec
20
25
  prerelease: false
21
26
  type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-nc
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - '>='
25
32
  - !ruby/object:Gem::Version
26
33
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
36
  - - '>='
31
37
  - !ruby/object:Gem::Version
32
38
  version: '0'
33
- name: rspec-nc
34
39
  prerelease: false
35
40
  type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: guard
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
45
  - - '>='
39
46
  - !ruby/object:Gem::Version
40
47
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
48
  requirement: !ruby/object:Gem::Requirement
43
49
  requirements:
44
50
  - - '>='
45
51
  - !ruby/object:Gem::Version
46
52
  version: '0'
47
- name: guard
48
53
  prerelease: false
49
54
  type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard-rspec
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
62
  requirement: !ruby/object:Gem::Requirement
57
63
  requirements:
58
64
  - - '>='
59
65
  - !ruby/object:Gem::Version
60
66
  version: '0'
61
- name: guard-rspec
62
67
  prerelease: false
63
68
  type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
64
71
  version_requirements: !ruby/object:Gem::Requirement
65
72
  requirements:
66
73
  - - '>='
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
76
  requirement: !ruby/object:Gem::Requirement
71
77
  requirements:
72
78
  - - '>='
73
79
  - !ruby/object:Gem::Version
74
80
  version: '0'
75
- name: pry
76
81
  prerelease: false
77
82
  type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-remote
78
85
  version_requirements: !ruby/object:Gem::Requirement
79
86
  requirements:
80
87
  - - '>='
81
88
  - !ruby/object:Gem::Version
82
89
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
90
  requirement: !ruby/object:Gem::Requirement
85
91
  requirements:
86
92
  - - '>='
87
93
  - !ruby/object:Gem::Version
88
94
  version: '0'
89
- name: pry-remote
90
95
  prerelease: false
91
96
  type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-nav
92
99
  version_requirements: !ruby/object:Gem::Requirement
93
100
  requirements:
94
101
  - - '>='
95
102
  - !ruby/object:Gem::Version
96
103
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
104
  requirement: !ruby/object:Gem::Requirement
99
105
  requirements:
100
106
  - - '>='
101
107
  - !ruby/object:Gem::Version
102
108
  version: '0'
103
- name: pry-nav
104
109
  prerelease: false
105
110
  type: :development
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
106
113
  version_requirements: !ruby/object:Gem::Requirement
107
114
  requirements:
108
- - - '>='
115
+ - - ~>
109
116
  - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
117
+ version: '1.5'
112
118
  requirement: !ruby/object:Gem::Requirement
113
119
  requirements:
114
120
  - - ~>
115
121
  - !ruby/object:Gem::Version
116
122
  version: '1.5'
117
- name: bundler
118
123
  prerelease: false
119
124
  type: :development
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
120
127
  version_requirements: !ruby/object:Gem::Requirement
121
128
  requirements:
122
- - - ~>
129
+ - - '>='
123
130
  - !ruby/object:Gem::Version
124
- version: '1.5'
125
- - !ruby/object:Gem::Dependency
131
+ version: '0'
126
132
  requirement: !ruby/object:Gem::Requirement
127
133
  requirements:
128
134
  - - '>='
129
135
  - !ruby/object:Gem::Version
130
136
  version: '0'
131
- name: rake
132
137
  prerelease: false
133
138
  type: :development
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake-rspec
134
141
  version_requirements: !ruby/object:Gem::Requirement
135
142
  requirements:
136
143
  - - '>='
137
144
  - !ruby/object:Gem::Version
138
145
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
146
  requirement: !ruby/object:Gem::Requirement
141
147
  requirements:
142
148
  - - '>='
143
149
  - !ruby/object:Gem::Version
144
150
  version: '0'
145
- name: rake-rspec
146
151
  prerelease: false
147
152
  type: :development
153
+ - !ruby/object:Gem::Dependency
154
+ name: i18n
148
155
  version_requirements: !ruby/object:Gem::Requirement
149
156
  requirements:
150
157
  - - '>='
151
158
  - !ruby/object:Gem::Version
152
159
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
160
  requirement: !ruby/object:Gem::Requirement
155
161
  requirements:
156
162
  - - '>='
157
163
  - !ruby/object:Gem::Version
158
164
  version: '0'
159
- name: i18n
160
165
  prerelease: false
161
166
  type: :runtime
167
+ - !ruby/object:Gem::Dependency
168
+ name: mustache
162
169
  version_requirements: !ruby/object:Gem::Requirement
163
170
  requirements:
164
- - - '>='
171
+ - - ~>
165
172
  - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
173
+ version: 0.99.5
168
174
  requirement: !ruby/object:Gem::Requirement
169
175
  requirements:
170
176
  - - ~>
171
177
  - !ruby/object:Gem::Version
172
178
  version: 0.99.5
173
- name: mustache
174
179
  prerelease: false
175
180
  type: :runtime
181
+ - !ruby/object:Gem::Dependency
182
+ name: alephant-logger
176
183
  version_requirements: !ruby/object:Gem::Requirement
177
184
  requirements:
178
- - - ~>
185
+ - - '>='
179
186
  - !ruby/object:Gem::Version
180
- version: 0.99.5
181
- - !ruby/object:Gem::Dependency
187
+ version: '0'
182
188
  requirement: !ruby/object:Gem::Requirement
183
189
  requirements:
184
190
  - - '>='
185
191
  - !ruby/object:Gem::Version
186
192
  version: '0'
187
- name: alephant-logger
188
193
  prerelease: false
189
194
  type: :runtime
195
+ - !ruby/object:Gem::Dependency
196
+ name: hashie
190
197
  version_requirements: !ruby/object:Gem::Requirement
191
198
  requirements:
192
199
  - - '>='
193
200
  - !ruby/object:Gem::Version
194
201
  version: '0'
195
- - !ruby/object:Gem::Dependency
196
202
  requirement: !ruby/object:Gem::Requirement
197
203
  requirements:
198
204
  - - '>='
199
205
  - !ruby/object:Gem::Version
200
206
  version: '0'
201
- name: hashie
202
207
  prerelease: false
203
208
  type: :runtime
209
+ - !ruby/object:Gem::Dependency
210
+ name: listen
204
211
  version_requirements: !ruby/object:Gem::Requirement
205
212
  requirements:
206
- - - '>='
213
+ - - ~>
207
214
  - !ruby/object:Gem::Version
208
- version: '0'
215
+ version: 3.0.0
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ~>
219
+ - !ruby/object:Gem::Version
220
+ version: 3.0.0
221
+ prerelease: false
222
+ type: :runtime
209
223
  description:
210
224
  email:
211
225
  - FutureMediaNewsRubyGems@bbc.co.uk
@@ -223,7 +237,9 @@ files:
223
237
  - Rakefile
224
238
  - alephant-renderer.gemspec
225
239
  - lib/alephant/renderer.rb
240
+ - lib/alephant/renderer/engine/mustache.rb
226
241
  - lib/alephant/renderer/error/invalid_path.rb
242
+ - lib/alephant/renderer/i18n/locale_component_yaml.rb
227
243
  - lib/alephant/renderer/response.rb
228
244
  - lib/alephant/renderer/version.rb
229
245
  - lib/alephant/renderer/view_mapper.rb
@@ -234,13 +250,25 @@ files:
234
250
  - spec/fixtures/components/foo-renderer/models/BAR_ABC.rb
235
251
  - spec/fixtures/components/foo-renderer/models/foo_xyz.rb
236
252
  - spec/fixtures/components/foo-renderer/models/json.rb
253
+ - spec/integration/engine_mustache_spec.rb
254
+ - spec/integration/fixtures/components/lib/templates/legacy_shared_template.mustache
255
+ - spec/integration/fixtures/components/locale/translations.yml
256
+ - spec/integration/fixtures/components/test-renderer/models/legacy_module.rb
257
+ - spec/integration/fixtures/components/test-renderer/models/legacy_shared_module.rb
258
+ - spec/integration/fixtures/components/test-renderer/models/translating_module.rb
259
+ - spec/integration/fixtures/components/test-renderer/templates/legacy_module.mustache
260
+ - spec/integration/fixtures/components/test-renderer/templates/legacy_shared_module.mustache
261
+ - spec/integration/fixtures/components/test-renderer/templates/translating_module.mustache
262
+ - spec/integration/fixtures/templates/sample.mustache
263
+ - spec/integration/fixtures/translations.yml
264
+ - spec/integration/i18n_locale_component_yaml_spec.rb
237
265
  - spec/integration/spec_helper.rb
266
+ - spec/integration/views_html_spec.rb
238
267
  - spec/renderer_spec.rb
239
268
  - spec/response_spec.rb
240
269
  - spec/spec_helper.rb
241
270
  - spec/view_mapper_spec.rb
242
271
  - spec/views_json_spec.rb
243
- - trans.yml
244
272
  homepage: ''
245
273
  licenses:
246
274
  - MIT
@@ -269,7 +297,20 @@ test_files:
269
297
  - spec/fixtures/components/foo-renderer/models/BAR_ABC.rb
270
298
  - spec/fixtures/components/foo-renderer/models/foo_xyz.rb
271
299
  - spec/fixtures/components/foo-renderer/models/json.rb
300
+ - spec/integration/engine_mustache_spec.rb
301
+ - spec/integration/fixtures/components/lib/templates/legacy_shared_template.mustache
302
+ - spec/integration/fixtures/components/locale/translations.yml
303
+ - spec/integration/fixtures/components/test-renderer/models/legacy_module.rb
304
+ - spec/integration/fixtures/components/test-renderer/models/legacy_shared_module.rb
305
+ - spec/integration/fixtures/components/test-renderer/models/translating_module.rb
306
+ - spec/integration/fixtures/components/test-renderer/templates/legacy_module.mustache
307
+ - spec/integration/fixtures/components/test-renderer/templates/legacy_shared_module.mustache
308
+ - spec/integration/fixtures/components/test-renderer/templates/translating_module.mustache
309
+ - spec/integration/fixtures/templates/sample.mustache
310
+ - spec/integration/fixtures/translations.yml
311
+ - spec/integration/i18n_locale_component_yaml_spec.rb
272
312
  - spec/integration/spec_helper.rb
313
+ - spec/integration/views_html_spec.rb
273
314
  - spec/renderer_spec.rb
274
315
  - spec/response_spec.rb
275
316
  - spec/spec_helper.rb
data/trans.yml DELETED
@@ -1,2 +0,0 @@
1
- en:
2
- test: 'Hello!'