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

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: 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: