liquidscript 0.4.1 → 0.5.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/liquidscript/buffer.rb +2 -2
  3. data/lib/liquidscript/compiler/icr.rb +1 -0
  4. data/lib/liquidscript/compiler/icr/classes.rb +11 -3
  5. data/lib/liquidscript/compiler/icr/expressions.rb +56 -10
  6. data/lib/liquidscript/compiler/icr/functions.rb +7 -6
  7. data/lib/liquidscript/compiler/icr/heredoc.rb +28 -0
  8. data/lib/liquidscript/compiler/icr/literals.rb +102 -9
  9. data/lib/liquidscript/errors.rb +6 -0
  10. data/lib/liquidscript/generator/base.rb +1 -1
  11. data/lib/liquidscript/generator/base/replacements.rb +2 -2
  12. data/lib/liquidscript/generator/javascript.rb +21 -0
  13. data/lib/liquidscript/generator/javascript/exceptions.rb +42 -0
  14. data/lib/liquidscript/generator/javascript/literals.rb +71 -9
  15. data/lib/liquidscript/generator/javascript/metas.rb +14 -13
  16. data/lib/liquidscript/generator/javascript/objects.rb +21 -16
  17. data/lib/liquidscript/icr/set.rb +8 -0
  18. data/lib/liquidscript/scanner/base/lexer.rb +13 -10
  19. data/lib/liquidscript/scanner/liquidscript.rb +95 -17
  20. data/lib/liquidscript/template.rb +1 -2
  21. data/lib/liquidscript/version.rb +1 -1
  22. data/liquidscript.gemspec +1 -0
  23. data/spec/fixtures/class.compile.yml +12 -1
  24. data/spec/fixtures/class.generate.yml +4 -4
  25. data/spec/fixtures/combination.generate.yml +4 -4
  26. data/spec/fixtures/complex.generate.yml +5 -5
  27. data/spec/fixtures/expression.generate.yml +1 -1
  28. data/spec/fixtures/heredoc.generate.yml +9 -0
  29. data/spec/fixtures/literals.generate.yml +9 -1
  30. data/spec/fixtures/loop.generate.yml +16 -0
  31. data/spec/fixtures/main.compile.yml +19 -15
  32. data/spec/fixtures/operator.generate.yml +10 -2
  33. data/spec/fixtures/string.compile.yml +20 -1
  34. data/spec/fixtures/string.generate.yml +1 -1
  35. data/spec/fixtures/underscore.js +28 -0
  36. data/spec/fixtures/underscore.ls +2 -1
  37. data/spec/liquidscript/compiler/icr_spec.rb +2 -0
  38. data/spec/liquidscript/node_spec.rb +21 -0
  39. data/spec/liquidscript/scanner/lexer_spec.rb +23 -2
  40. data/spec/support/matchers/compile.rb +1 -1
  41. data/spec/support/matchers/generate.rb +6 -3
  42. data/spec/support/matchers/run.rb +12 -0
  43. metadata +28 -2
@@ -11,13 +11,15 @@ RSpec::Matchers.define :generate do |v|
11
11
  end
12
12
 
13
13
  failure_message_for_should do |data|
14
- sprintf "expected %{source} to generate %{dest} (got: %{actual}) - %{tree}",
14
+ sprintf "expected: %{dest}\n got: %{actual}",
15
15
  :source => data.inspect,
16
16
  :dest => for_match(v).inspect,
17
17
  :actual => actual.inspect,
18
18
  :tree => tree(data)
19
19
  end
20
20
 
21
+ diffable
22
+
21
23
  def actual
22
24
  @_out
23
25
  end
@@ -26,12 +28,13 @@ RSpec::Matchers.define :generate do |v|
26
28
  @_expected
27
29
  end
28
30
 
29
- diffable
30
-
31
31
  def generator(data)
32
32
  compiler = Compiler::ICR.new(s = Scanner::Liquidscript.new(data))
33
33
  compiler.compile
34
34
  Generator::Javascript.new(compiler.top)
35
+ rescue Liquidscript::UnexpectedError
36
+ puts ICR::Sexp.new(s.each.to_a).output
37
+ raise
35
38
  end
36
39
 
37
40
  def tree(data)
@@ -0,0 +1,12 @@
1
+ RSpec::Matchers.define :run do
2
+ command = Command::Runner.new("node", "")
3
+ match do |data|
4
+ @output = Liquidscript::Template.new(data).render
5
+ @message = command.run({}, :input => @output)
6
+ @message.successful?
7
+ end
8
+
9
+ failure_message_for_should do
10
+ "Expected to run, got:\n#{@message.stderr}"
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquidscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Rodi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-13 00:00:00.000000000 Z
11
+ date: 2014-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: command-runner
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: hashie
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -111,6 +125,7 @@ files:
111
125
  - lib/liquidscript/compiler/icr/expressions.rb
112
126
  - lib/liquidscript/compiler/icr/functions.rb
113
127
  - lib/liquidscript/compiler/icr/helpers.rb
128
+ - lib/liquidscript/compiler/icr/heredoc.rb
114
129
  - lib/liquidscript/compiler/icr/literals.rb
115
130
  - lib/liquidscript/errors.rb
116
131
  - lib/liquidscript/generator.rb
@@ -119,6 +134,7 @@ files:
119
134
  - lib/liquidscript/generator/base/replacements.rb
120
135
  - lib/liquidscript/generator/context.rb
121
136
  - lib/liquidscript/generator/javascript.rb
137
+ - lib/liquidscript/generator/javascript/exceptions.rb
122
138
  - lib/liquidscript/generator/javascript/literals.rb
123
139
  - lib/liquidscript/generator/javascript/metas.rb
124
140
  - lib/liquidscript/generator/javascript/objects.rb
@@ -148,12 +164,15 @@ files:
148
164
  - spec/fixtures/expression.generate.yml
149
165
  - spec/fixtures/function.generate.yml
150
166
  - spec/fixtures/get.generate.yml
167
+ - spec/fixtures/heredoc.generate.yml
151
168
  - spec/fixtures/literals.generate.yml
169
+ - spec/fixtures/loop.generate.yml
152
170
  - spec/fixtures/main.compile.yml
153
171
  - spec/fixtures/operator.generate.yml
154
172
  - spec/fixtures/set.generate.yml
155
173
  - spec/fixtures/string.compile.yml
156
174
  - spec/fixtures/string.generate.yml
175
+ - spec/fixtures/underscore.js
157
176
  - spec/fixtures/underscore.ls
158
177
  - spec/liquidscript/buffer_spec.rb
159
178
  - spec/liquidscript/compiler/icr_spec.rb
@@ -161,6 +180,7 @@ files:
161
180
  - spec/liquidscript/icr/code_spec.rb
162
181
  - spec/liquidscript/icr/context_spec.rb
163
182
  - spec/liquidscript/icr/set_spec.rb
183
+ - spec/liquidscript/node_spec.rb
164
184
  - spec/liquidscript/scanner/lexer_spec.rb
165
185
  - spec/liquidscript/scanner/token_spec.rb
166
186
  - spec/liquidscript/scanner_spec.rb
@@ -169,6 +189,7 @@ files:
169
189
  - spec/support/matchers/be_token.rb
170
190
  - spec/support/matchers/compile.rb
171
191
  - spec/support/matchers/generate.rb
192
+ - spec/support/matchers/run.rb
172
193
  homepage: https://github.com/redjazz96/liquidscript
173
194
  licenses:
174
195
  - MIT
@@ -201,12 +222,15 @@ test_files:
201
222
  - spec/fixtures/expression.generate.yml
202
223
  - spec/fixtures/function.generate.yml
203
224
  - spec/fixtures/get.generate.yml
225
+ - spec/fixtures/heredoc.generate.yml
204
226
  - spec/fixtures/literals.generate.yml
227
+ - spec/fixtures/loop.generate.yml
205
228
  - spec/fixtures/main.compile.yml
206
229
  - spec/fixtures/operator.generate.yml
207
230
  - spec/fixtures/set.generate.yml
208
231
  - spec/fixtures/string.compile.yml
209
232
  - spec/fixtures/string.generate.yml
233
+ - spec/fixtures/underscore.js
210
234
  - spec/fixtures/underscore.ls
211
235
  - spec/liquidscript/buffer_spec.rb
212
236
  - spec/liquidscript/compiler/icr_spec.rb
@@ -214,6 +238,7 @@ test_files:
214
238
  - spec/liquidscript/icr/code_spec.rb
215
239
  - spec/liquidscript/icr/context_spec.rb
216
240
  - spec/liquidscript/icr/set_spec.rb
241
+ - spec/liquidscript/node_spec.rb
217
242
  - spec/liquidscript/scanner/lexer_spec.rb
218
243
  - spec/liquidscript/scanner/token_spec.rb
219
244
  - spec/liquidscript/scanner_spec.rb
@@ -222,4 +247,5 @@ test_files:
222
247
  - spec/support/matchers/be_token.rb
223
248
  - spec/support/matchers/compile.rb
224
249
  - spec/support/matchers/generate.rb
250
+ - spec/support/matchers/run.rb
225
251
  has_rdoc: