smartdown 0.11.4 → 0.12.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 (37) hide show
  1. data/lib/smartdown/api/date_question.rb +10 -4
  2. data/lib/smartdown/api/node.rb +2 -1
  3. data/lib/smartdown/api/question.rb +2 -1
  4. data/lib/smartdown/engine/interpolator.rb +1 -1
  5. data/lib/smartdown/model/element/{markdown_paragraph.rb → markdown_line.rb} +1 -1
  6. data/lib/smartdown/model/elements.rb +51 -0
  7. data/lib/smartdown/model/node.rb +14 -7
  8. data/lib/smartdown/parser/base.rb +1 -1
  9. data/lib/smartdown/parser/element/conditional.rb +9 -8
  10. data/lib/smartdown/parser/element/front_matter.rb +7 -1
  11. data/lib/smartdown/parser/element/markdown_blank_line.rb +14 -0
  12. data/lib/smartdown/parser/element/markdown_line.rb +14 -0
  13. data/lib/smartdown/parser/node_parser.rb +10 -7
  14. data/lib/smartdown/parser/node_transform.rb +21 -4
  15. data/lib/smartdown/version.rb +1 -1
  16. data/spec/acceptance/parsing_spec.rb +7 -0
  17. data/spec/api/node_spec.rb +4 -4
  18. data/spec/api/question_spec.rb +3 -3
  19. data/spec/engine/conditional_resolver_spec.rb +8 -8
  20. data/spec/engine/interpolator_spec.rb +11 -11
  21. data/spec/engine_spec.rb +12 -12
  22. data/spec/fixtures/acceptance/animal-example-multiple/animal-example-multiple.txt +2 -0
  23. data/spec/fixtures/acceptance/animal-example-simple/animal-example-simple.txt +2 -0
  24. data/spec/fixtures/acceptance/cover-sheet/cover-sheet.txt +5 -0
  25. data/spec/fixtures/acceptance/snippet/snippet.txt +2 -0
  26. data/spec/model/node_spec.rb +1 -1
  27. data/spec/parser/base_spec.rb +2 -2
  28. data/spec/parser/element/conditional_spec.rb +144 -30
  29. data/spec/parser/element/front_matter_spec.rb +3 -3
  30. data/spec/parser/element/markdown_line_spec.rb +28 -0
  31. data/spec/parser/integration/cover_sheet_spec.rb +2 -0
  32. data/spec/parser/node_parser_spec.rb +55 -27
  33. data/spec/support/model_builder.rb +3 -3
  34. data/spec/support_specs/model_builder_spec.rb +12 -12
  35. metadata +25 -23
  36. data/lib/smartdown/parser/element/markdown_paragraph.rb +0 -19
  37. data/spec/parser/element/markdown_paragraph_spec.rb +0 -28
@@ -7,7 +7,7 @@ describe ModelBuilder do
7
7
  let(:node1) {
8
8
  Smartdown::Model::Node.new("check-uk-visa", [
9
9
  Smartdown::Model::Element::MarkdownHeading.new("Check uk visa"),
10
- Smartdown::Model::Element::MarkdownParagraph.new("This is the paragraph"),
10
+ Smartdown::Model::Element::MarkdownLine.new("This is the paragraph"),
11
11
  Smartdown::Model::Element::StartButton.new("what_passport_do_you_have?")
12
12
  ])
13
13
  }
@@ -33,7 +33,7 @@ describe ModelBuilder do
33
33
  model = builder.flow("check-uk-visa") do
34
34
  node("check-uk-visa") do
35
35
  heading("Check uk visa")
36
- paragraph("This is the paragraph")
36
+ line("This is the paragraph")
37
37
  start_button("what_passport_do_you_have?")
38
38
  end
39
39
 
@@ -70,8 +70,8 @@ describe ModelBuilder do
70
70
  let(:expected) {
71
71
  Smartdown::Model::Element::Conditional.new(
72
72
  Smartdown::Model::Predicate::Named.new("pred?"),
73
- [Smartdown::Model::Element::MarkdownParagraph.new("True case")],
74
- [Smartdown::Model::Element::MarkdownParagraph.new("False case")]
73
+ [Smartdown::Model::Element::MarkdownLine.new("True case")],
74
+ [Smartdown::Model::Element::MarkdownLine.new("False case")]
75
75
  )
76
76
  }
77
77
 
@@ -79,10 +79,10 @@ describe ModelBuilder do
79
79
  builder.conditional do
80
80
  named_predicate "pred?"
81
81
  true_case do
82
- paragraph("True case")
82
+ line("True case")
83
83
  end
84
84
  false_case do
85
- paragraph("False case")
85
+ line("False case")
86
86
  end
87
87
  end
88
88
  }
@@ -95,11 +95,11 @@ describe ModelBuilder do
95
95
  let(:expected) {
96
96
  Smartdown::Model::Element::Conditional.new(
97
97
  Smartdown::Model::Predicate::Named.new("pred1?"),
98
- [Smartdown::Model::Element::MarkdownParagraph.new("True case")],
98
+ [Smartdown::Model::Element::MarkdownLine.new("True case")],
99
99
  [Smartdown::Model::Element::Conditional.new(
100
100
  Smartdown::Model::Predicate::Named.new("pred2?"),
101
- [Smartdown::Model::Element::MarkdownParagraph.new("False True case")],
102
- [Smartdown::Model::Element::MarkdownParagraph.new("False False case")]
101
+ [Smartdown::Model::Element::MarkdownLine.new("False True case")],
102
+ [Smartdown::Model::Element::MarkdownLine.new("False False case")]
103
103
  )]
104
104
  )
105
105
  }
@@ -108,16 +108,16 @@ describe ModelBuilder do
108
108
  builder.conditional do
109
109
  named_predicate "pred1?"
110
110
  true_case do
111
- paragraph("True case")
111
+ line("True case")
112
112
  end
113
113
  false_case do
114
114
  conditional do
115
115
  named_predicate "pred2?"
116
116
  true_case do
117
- paragraph("False True case")
117
+ line("False True case")
118
118
  end
119
119
  false_case do
120
- paragraph("False False case")
120
+ line("False False case")
121
121
  end
122
122
  end
123
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-17 00:00:00.000000000 Z
12
+ date: 2015-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parslet
16
- requirement: &13913560 !ruby/object:Gem::Requirement
16
+ requirement: &8259380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.6.1
21
+ version: 1.6.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13913560
24
+ version_requirements: *8259380
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: uk_postcode
27
- requirement: &13912820 !ruby/object:Gem::Requirement
27
+ requirement: &8258580 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *13912820
35
+ version_requirements: *8258580
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &13912040 !ruby/object:Gem::Requirement
38
+ requirement: &8257860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *13912040
46
+ version_requirements: *8257860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &13911540 !ruby/object:Gem::Requirement
49
+ requirement: &8257340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *13911540
57
+ version_requirements: *8257340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: pry
60
- requirement: &13910780 !ruby/object:Gem::Requirement
60
+ requirement: &8256560 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *13910780
68
+ version_requirements: *8256560
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: gem_publisher
71
- requirement: &13910100 !ruby/object:Gem::Requirement
71
+ requirement: &8255920 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *13910100
79
+ version_requirements: *8255920
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: timecop
82
- requirement: &14198380 !ruby/object:Gem::Requirement
82
+ requirement: &8206260 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *14198380
90
+ version_requirements: *8206260
91
91
  description:
92
92
  email: david.heath@digital.cabinet-office.gov.uk
93
93
  executables:
@@ -109,13 +109,14 @@ files:
109
109
  - lib/smartdown/parser/node_parser.rb
110
110
  - lib/smartdown/parser/scenario_sets_interpreter.rb
111
111
  - lib/smartdown/parser/element/date_question.rb
112
+ - lib/smartdown/parser/element/markdown_blank_line.rb
112
113
  - lib/smartdown/parser/element/salary_question.rb
113
114
  - lib/smartdown/parser/element/postcode_question.rb
114
115
  - lib/smartdown/parser/element/conditional.rb
115
- - lib/smartdown/parser/element/markdown_paragraph.rb
116
116
  - lib/smartdown/parser/element/start_button.rb
117
117
  - lib/smartdown/parser/element/front_matter.rb
118
118
  - lib/smartdown/parser/element/country_question.rb
119
+ - lib/smartdown/parser/element/markdown_line.rb
119
120
  - lib/smartdown/parser/element/multiple_choice_question.rb
120
121
  - lib/smartdown/parser/element/next_steps.rb
121
122
  - lib/smartdown/parser/element/markdown_heading.rb
@@ -148,6 +149,7 @@ files:
148
149
  - lib/smartdown/model/scenarios/question.rb
149
150
  - lib/smartdown/model/scenarios/scenario_set.rb
150
151
  - lib/smartdown/model/scenarios/scenario.rb
152
+ - lib/smartdown/model/elements.rb
151
153
  - lib/smartdown/model/flow.rb
152
154
  - lib/smartdown/model/predicate/named.rb
153
155
  - lib/smartdown/model/predicate/set_membership.rb
@@ -173,8 +175,8 @@ files:
173
175
  - lib/smartdown/model/answer/multiple_choice.rb
174
176
  - lib/smartdown/model/answer/text.rb
175
177
  - lib/smartdown/model/element/conditional.rb
176
- - lib/smartdown/model/element/markdown_paragraph.rb
177
178
  - lib/smartdown/model/element/start_button.rb
179
+ - lib/smartdown/model/element/markdown_line.rb
178
180
  - lib/smartdown/model/element/next_steps.rb
179
181
  - lib/smartdown/model/element/markdown_heading.rb
180
182
  - lib/smartdown/model/element/question/date.rb
@@ -205,10 +207,10 @@ files:
205
207
  - spec/parser/element/conditional_spec.rb
206
208
  - spec/parser/element/start_button_parser_spec.rb
207
209
  - spec/parser/element/date_question_spec.rb
208
- - spec/parser/element/markdown_paragraph_spec.rb
209
210
  - spec/parser/element/markdown_heading_spec.rb
210
211
  - spec/parser/element/front_matter_spec.rb
211
212
  - spec/parser/element/salary_question_spec.rb
213
+ - spec/parser/element/markdown_line_spec.rb
212
214
  - spec/parser/element/text_question_spec.rb
213
215
  - spec/parser/option_pairs_transform_spec.rb
214
216
  - spec/parser/node_parser_spec.rb
@@ -301,7 +303,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
301
303
  version: '0'
302
304
  segments:
303
305
  - 0
304
- hash: -4059470595308680197
306
+ hash: -3641220914455318318
305
307
  required_rubygems_version: !ruby/object:Gem::Requirement
306
308
  none: false
307
309
  requirements:
@@ -310,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
312
  version: '0'
311
313
  segments:
312
314
  - 0
313
- hash: -4059470595308680197
315
+ hash: -3641220914455318318
314
316
  requirements: []
315
317
  rubyforge_project:
316
318
  rubygems_version: 1.8.11
@@ -334,10 +336,10 @@ test_files:
334
336
  - spec/parser/element/conditional_spec.rb
335
337
  - spec/parser/element/start_button_parser_spec.rb
336
338
  - spec/parser/element/date_question_spec.rb
337
- - spec/parser/element/markdown_paragraph_spec.rb
338
339
  - spec/parser/element/markdown_heading_spec.rb
339
340
  - spec/parser/element/front_matter_spec.rb
340
341
  - spec/parser/element/salary_question_spec.rb
342
+ - spec/parser/element/markdown_line_spec.rb
341
343
  - spec/parser/element/text_question_spec.rb
342
344
  - spec/parser/option_pairs_transform_spec.rb
343
345
  - spec/parser/node_parser_spec.rb
@@ -1,19 +0,0 @@
1
- require 'smartdown/parser/base'
2
-
3
- module Smartdown
4
- module Parser
5
- module Element
6
- class MarkdownParagraph < Base
7
- rule(:markdown_line) {
8
- optional_space >> whitespace_terminated_string >> optional_space
9
- }
10
-
11
- rule(:markdown_paragraph) {
12
- (markdown_line >> line_ending).repeat(1).as(:p)
13
- }
14
-
15
- root(:markdown_paragraph)
16
- end
17
- end
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- require 'smartdown/parser/element/markdown_paragraph'
2
- require 'smartdown/parser/node_interpreter'
3
-
4
- describe Smartdown::Parser::Element::MarkdownParagraph do
5
-
6
- subject(:parser) { described_class.new }
7
- let(:node_name) { "my_node" }
8
-
9
- it { should parse("My para").as(p: "My para") }
10
- it { should parse("My para\n").as(p: "My para\n") }
11
- it { should parse(" My para").as(p: " My para") }
12
- it { should parse(" My para\nsecond line").as(p: " My para\nsecond line") }
13
- it { should parse(" My para\nsecond line\n").as(p: " My para\nsecond line\n") }
14
- it { should parse(" My para\nsecond line \n").as(p: " My para\nsecond line \n") }
15
- it { should_not parse("Para1\n\nPara2") }
16
-
17
- it { should parse("a b") }
18
-
19
- describe "transformed" do
20
- let(:content) { "My para" }
21
- subject(:transformed) {
22
- Smartdown::Parser::NodeInterpreter.new(node_name, content, parser: parser).interpret
23
- }
24
-
25
- it { should eq(Smartdown::Model::Element::MarkdownParagraph.new(content)) }
26
- end
27
- end
28
-