prismic.io 1.0.0.preview.2 → 1.0.0.preview.3

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: 70b17b4fc1bdb46920e3ffb4fd498bfee2b104aa
4
- data.tar.gz: 817d91632efa91c0a7473ab3aaf982a0589f0ffc
3
+ metadata.gz: 7115c0e2648174904a54f5b9eca2dee638c334a6
4
+ data.tar.gz: a6d17ff3c181ae1a273cbdc8956f114262854354
5
5
  SHA512:
6
- metadata.gz: aeedce9389e490287de28bae3cd068a864ee6fccc840692581c3939d33c6ec7bf5024bbd7302003146722c977488008a86df61f3a3fad2a7b6b9afc6b0b02513
7
- data.tar.gz: cb48dfa12ff2548695f13e1d73d923d6303eda650c430e30b07c7f2ada659a2396bb1b3124f0751ad5a64f09a01d8f45810fe4c67a270fcf93a476f336668787
6
+ metadata.gz: 5316b6aac4442b9a90f505a7d949ca07f6b0ca970700e081837c618f10a5a41e280ac86aec1a9214a70e04b4631c41fa233063e86cdde89338a2195448259a62
7
+ data.tar.gz: 98666ce830de416b0327a009cbb182df89acbe533eaf048a8d723b56fcbdd88ec303251c23771d28397295fc77347159bfa2beb1bfc86adc74ab57c646edb205
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- prismic.io (1.0.0.preview.2)
4
+ prismic.io (1.0.0.preview.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/prismic.rb CHANGED
@@ -32,10 +32,10 @@ module Prismic
32
32
  class SearchForm
33
33
  attr_accessor :api, :form, :data
34
34
 
35
- def initialize(api, form, data=form.default_data)
35
+ def initialize(api, form, data={})
36
36
  @api = api
37
37
  @form = form
38
- @data = data
38
+ @data = form.default_data.merge(data)
39
39
  end
40
40
 
41
41
  def name
@@ -93,10 +93,9 @@ module Prismic
93
93
  end
94
94
 
95
95
  def query(query)
96
- strip_brakets = Proc.new {|str| str.strip[1, str.strip.length - 2]}
97
-
98
- previous_query = (not form.fields['q'].nil?) ? form.fields['q'].default.to_s : ''
99
- data['q'] = "[#{strip_brakets.call(previous_query)}#{strip_brakets.call(query)}]"
96
+ strip_brakets = ->(str) { str =~ /^\[(.*)\]$/ ? $1 : str }
97
+ previous_query = form.fields['q'] ? form.fields['q'].default.to_s : ''
98
+ data['q'] = "[%s%s]" % [strip_brakets.(previous_query), strip_brakets.(query)]
100
99
  self
101
100
  end
102
101
 
@@ -8,7 +8,7 @@ module Prismic
8
8
  end
9
9
 
10
10
  def as_html(link_resolver=nil)
11
- %(<span class="text">#@value</span>)
11
+ %(<span class="text">#{CGI::escapeHTML(@value)}</span>)
12
12
  end
13
13
  end
14
14
  end
@@ -106,7 +106,7 @@ module Prismic
106
106
  closing = end_spans[i].map {|span|
107
107
  span.end_html(link_resolver)
108
108
  }
109
- opening + closing + [c]
109
+ opening + closing + [CGI::escapeHTML(c)]
110
110
  }.flatten.join("")
111
111
  end
112
112
 
@@ -8,7 +8,7 @@ module Prismic
8
8
  end
9
9
 
10
10
  def as_html(link_resolver=nil)
11
- %(<span class="text">#@value</span>)
11
+ %(<span class="text">#{CGI::escapeHTML(@value)}</span>)
12
12
  end
13
13
  end
14
14
  end
@@ -1,5 +1,5 @@
1
1
  module Prismic
2
2
 
3
- VERSION = "1.0.0.preview.2"
3
+ VERSION = "1.0.0.preview.3"
4
4
 
5
5
  end
@@ -65,6 +65,11 @@ describe 'Text' do
65
65
  it "returns a HTML element whose content is the value" do
66
66
  Nokogiri::XML(@text.as_html).child.content.should == 'my_value'
67
67
  end
68
+
69
+ it "espaces HTML content" do
70
+ @text = Prismic::Fragments::Text.new('&my <value> #abcde')
71
+ @text.as_html.should =~ /^<[^>]+>&amp;my &lt;value&gt; #abcde<[^>]+>$/
72
+ end
68
73
  end
69
74
  end
70
75
 
@@ -85,6 +90,11 @@ describe 'Select' do
85
90
  it "returns a HTML element whose content is the value" do
86
91
  Nokogiri::XML(@select.as_html).child.content.should == 'my_value'
87
92
  end
93
+
94
+ it "escapes HTML" do
95
+ @select = Prismic::Fragments::Select.new('&my <value> #abcde')
96
+ @select.as_html(nil).should =~ %r{^<[^>]+>&amp;my &lt;value&gt; #abcde<[^>]+>$}
97
+ end
88
98
  end
89
99
  end
90
100
 
@@ -355,6 +365,15 @@ describe 'StructuredText::Paragraph' do
355
365
  it 'generates valid html' do
356
366
  @block.as_html(nil).should == "<p>This <em>is</em> <b>a</b> simple test.</p>"
357
367
  end
368
+ it "espaces HTML content" do
369
+ @text = '&my <value> #abcde'
370
+ @spans = [
371
+ Prismic::Fragments::StructuredText::Span::Em.new(4, 11),
372
+ Prismic::Fragments::StructuredText::Span::Strong.new(0, 1),
373
+ ]
374
+ @block = Prismic::Fragments::StructuredText::Block::Paragraph.new(@text, @spans)
375
+ @block.as_html(nil).should =~ %r{^<[^>]+><b>&amp;</b>my <em>&lt;value&gt;</em> #abcde<[^>]+>$}
376
+ end
358
377
  end
359
378
 
360
379
  describe 'StructuredText::Preformatted' do
data/spec/prismic_spec.rb CHANGED
@@ -257,5 +257,13 @@ describe 'SearchForm' do
257
257
  @form = Prismic::SearchForm.new(@api, Prismic::Form.new('form1', {'q' => @field}, nil, nil, nil, nil), {})
258
258
  @form.query('[foo]').should == @form
259
259
  end
260
+
261
+ it "merge user defined params into default ones" do
262
+ field = ->(value){ Prismic::Field.new('String', value) }
263
+ default_params = {'param1' => field.('a'), 'param2' => field.('b')}
264
+ user_params = {'param1' => 'a2'}
265
+ @form = Prismic::SearchForm.new(@api, Prismic::Form.new('form1', default_params, nil, nil, nil, nil), user_params)
266
+ @form.data.should == {'param1' => 'a2', 'param2' => 'b'}
267
+ end
260
268
  end
261
269
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prismic.io
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.preview.2
4
+ version: 1.0.0.preview.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Étienne Vallette d'Osia
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-12 00:00:00.000000000 Z
12
+ date: 2013-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -141,3 +141,4 @@ test_files:
141
141
  - spec/responses_mocks/structured_text_heading.json
142
142
  - spec/responses_mocks/structured_text_paragraph.json
143
143
  - spec/spec_helper.rb
144
+ has_rdoc: