flavour_saver 2.0.0 → 2.0.1

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
  SHA256:
3
- metadata.gz: 003f6b787316f313dc1a044deb52b4fcc9a87ef0b00819784ab364dca840d567
4
- data.tar.gz: 5b9fd6980a44472f106e7e37b046d5abc896198f169896dedb8b58f41416986d
3
+ metadata.gz: 84400b205e22ad2023904cb71e30cab4812d79c966fd111fe3c0d880e3af0c66
4
+ data.tar.gz: 624ec57f20ed02bcaca7b4f2ff64854688f360e4736b70b179099ac6f8ecc397
5
5
  SHA512:
6
- metadata.gz: 243f501f9280e5394bcb861bf1689e365a9e43b925ab332fad4e1050c8c2aad9e03a6d76d86fb41e9273d4f935e2775fa7d2d5119b7cd938772daaa4ce6e9271
7
- data.tar.gz: 936b3241cd8bad53c819e02bfc6cac334433207ead739628eaeafd619d36544c60f71da9b6a888c218a83afb292b639eb8246b07efed84d4d436868936950c7a
6
+ metadata.gz: deb3fb00ba1a49c1749311fce614a3fa9f004c0ef1d483d5023fd5357c4fbed5d3d1c38ebe558dbf59b94e69ee260fdfef103e5982fcade8532259c60c55c828
7
+ data.tar.gz: e2155e1ee69d3cbc6b686b1f826db302731164240eb03188e9f6f9392628c6c995196e481c3ec334ee4174ea949d74083a9e81760f3f11f1068de12cd3c85d0a
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.0.1]
11
+
12
+ ### Fixed
13
+
14
+ * Ability to dereference arrays at a specific index (#57)
15
+
10
16
  ## [2.0.0]
11
17
 
12
18
  ### Breaking Changes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flavour_saver (2.0.0)
4
+ flavour_saver (2.0.1)
5
5
  rltk (~> 2.2.0)
6
6
  tilt
7
7
 
@@ -128,8 +128,8 @@ module FlavourSaver
128
128
  clause('argument_list WHITE hash') { |e0,_,e1| e0 + [e1] }
129
129
  clause('hash') { |e| [e] }
130
130
  end
131
-
132
- nonempty_list(:argument_list, [:object_path,:lit, :subexpr], :WHITE)
131
+
132
+ nonempty_list(:argument_list, [:object_path, :lit, :subexpr], :WHITE)
133
133
 
134
134
  production(:lit) do
135
135
  clause('string') { |e| e }
@@ -167,7 +167,17 @@ module FlavourSaver
167
167
  clause('FWSL') { |_| }
168
168
  end
169
169
 
170
- nonempty_list(:object_path, :object, :object_sep)
170
+ production(:object_path) do
171
+ clause('object') { |e| [e] }
172
+ clause('object_path object_sep object') { |e0,_,e1| e0 + [e1] }
173
+
174
+ # Accomodates objects dereferenced with a number like foo.0.text
175
+ clause('object_path object_sep number_object') { |e0,_,e1| e0 + [e1] }
176
+ end
177
+
178
+ production(:number_object) do
179
+ clause('NUMBER') { |e| LiteralCallNode.new(e, []) }
180
+ end
171
181
 
172
182
  production(:object) do
173
183
  clause('AT IDENT') { |_,e| LocalVarNode.new(e) }
@@ -1,3 +1,3 @@
1
1
  module FlavourSaver
2
- VERSION = "2.0.0"
2
+ VERSION = "2.0.1"
3
3
  end
@@ -406,6 +406,21 @@ describe FlavourSaver do
406
406
  end
407
407
  end
408
408
 
409
+ describe 'array with numeric dereference' do
410
+ let(:template) {"{{goodbyes.0.text}} cruel {{world}}!"}
411
+
412
+ it 'properly inserts the referenced element' do
413
+ goodbyes = []
414
+ goodbyes << double(:goodbye)
415
+ expect(goodbyes[0]).to receive(:text).and_return('goodbye')
416
+
417
+ allow(context).to receive(:goodbyes).and_return(goodbyes)
418
+ allow(context).to receive(:world).and_return('world')
419
+
420
+ expect(subject).to eq "goodbye cruel world!"
421
+ end
422
+ end
423
+
409
424
  describe 'empty block' do
410
425
  let(:template) { "{{#goodbyes}}{{/goodbyes}}cruel {{world}}!" }
411
426
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flavour_saver
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clayton Passmore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-02-17 00:00:00.000000000 Z
12
+ date: 2022-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake