ungulate 0.0.12 → 0.0.13
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.
- data/VERSION +1 -1
- data/lib/ungulate.rb +1 -2
- data/lib/ungulate/file_upload.rb +1 -1
- data/lib/ungulate/view_helpers.rb +25 -11
- data/spec/spec.opts +1 -0
- data/spec/ungulate/view_helpers_spec.rb +44 -12
- data/ungulate.gemspec +2 -2
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.13
|
data/lib/ungulate.rb
CHANGED
@@ -4,8 +4,7 @@ require 'ungulate/server'
|
|
4
4
|
module Ungulate
|
5
5
|
end
|
6
6
|
|
7
|
-
if defined?
|
8
|
-
return if ActionView::Base.instance_methods.include_method? :ungulate_upload_form_for
|
7
|
+
if defined? ActionView::Base
|
9
8
|
require 'ungulate/view_helpers'
|
10
9
|
ActionView::Base.send :include, ViewHelpers
|
11
10
|
end
|
data/lib/ungulate/file_upload.rb
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
module ViewHelpers
|
2
2
|
def ungulate_upload_form_for(upload, &block)
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
open_form = <<HTML
|
4
|
+
<form action="#{upload.bucket_url}" enctype="multipart/form-data" method="post">
|
5
|
+
<div>
|
6
|
+
<input name="key" type="hidden" value="#{upload.key}" />
|
7
|
+
<input name="AWSAccessKeyId" type="hidden" value="#{upload.access_key_id}" />
|
8
|
+
<input name="acl" type="hidden" value="#{upload.acl}" />
|
9
|
+
<input name="policy" type="hidden" value="#{upload.policy}" />
|
10
|
+
<input name="signature" type="hidden" value="#{upload.signature}" />
|
11
|
+
<input name="success_action_redirect" type="hidden" value="#{upload.success_action_redirect}" />
|
12
|
+
HTML
|
13
|
+
|
14
|
+
close_form = "\n</div>\n</form>\n"
|
15
|
+
|
16
|
+
if respond_to?(:safe_concat)
|
17
|
+
debugger if $debug
|
18
|
+
content = capture(&block)
|
19
|
+
output = ActiveSupport::SafeBuffer.new
|
20
|
+
output.safe_concat(open_form.html_safe)
|
21
|
+
output << content
|
22
|
+
output.safe_concat(close_form.html_safe)
|
23
|
+
else
|
24
|
+
concat(open_form)
|
25
|
+
yield
|
26
|
+
concat(close_form)
|
27
|
+
end
|
14
28
|
end
|
15
29
|
end
|
data/spec/spec.opts
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
require 'ungulate/view_helpers'
|
3
|
+
require 'active_support/all'
|
3
4
|
|
4
|
-
class
|
5
|
+
class Rails2Includer
|
5
6
|
include ViewHelpers
|
6
7
|
attr_accessor :output_buffer
|
7
8
|
|
@@ -10,13 +11,13 @@ class Includer
|
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
14
|
+
class Rails3Includer
|
15
|
+
include ViewHelpers
|
16
|
+
end
|
17
|
+
|
13
18
|
module Ungulate
|
14
19
|
describe ViewHelpers do
|
15
20
|
describe "ungulate_upload_form_for" do
|
16
|
-
def helper
|
17
|
-
@helper ||= Includer.new
|
18
|
-
end
|
19
|
-
|
20
21
|
before do
|
21
22
|
@file_upload = mock('Ungulate::FileUpload',
|
22
23
|
:access_key_id => 'awsaccesskeyid',
|
@@ -26,14 +27,22 @@ module Ungulate
|
|
26
27
|
:policy => 'thepolicy',
|
27
28
|
:signature => 'thesignature',
|
28
29
|
:success_action_redirect => '/some/place')
|
29
|
-
helper.output_buffer = ''
|
30
|
-
helper.ungulate_upload_form_for(@file_upload) do
|
31
|
-
helper.concat('text in the middle')
|
32
|
-
end
|
33
30
|
end
|
34
31
|
|
35
|
-
|
36
|
-
helper
|
32
|
+
context "rails 2.3.x style" do
|
33
|
+
def helper
|
34
|
+
@helper ||= Rails2Includer.new
|
35
|
+
end
|
36
|
+
|
37
|
+
before do
|
38
|
+
helper.output_buffer = ''
|
39
|
+
helper.ungulate_upload_form_for(@file_upload) do
|
40
|
+
helper.concat('text in the middle')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have a complete form" do
|
45
|
+
helper.output_buffer.should == <<-HTML
|
37
46
|
<form action="http://static.test.s3.amazonaws.com/" enctype="multipart/form-data" method="post">
|
38
47
|
<div>
|
39
48
|
<input name="key" type="hidden" value="some/key" />
|
@@ -45,7 +54,30 @@ module Ungulate
|
|
45
54
|
text in the middle
|
46
55
|
</div>
|
47
56
|
</form>
|
48
|
-
HTML
|
57
|
+
HTML
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "rails 3 style" do
|
62
|
+
def helper
|
63
|
+
@helper ||= Rails3Includer.new
|
64
|
+
end
|
65
|
+
|
66
|
+
before do
|
67
|
+
helper.stub(:respond_to?).with(:safe_concat).and_return(true)
|
68
|
+
helper.stub(:capture)
|
69
|
+
@safe_buffer = mock('SafeBuffer', :<< => nil, :safe_concat => nil)
|
70
|
+
ActiveSupport::SafeBuffer.stub(:new).and_return(@safe_buffer)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should use a SafeBuffer" do
|
74
|
+
@safe_buffer.should_receive(:safe_concat).ordered
|
75
|
+
@safe_buffer.should_receive(:<<).ordered
|
76
|
+
@safe_buffer.should_receive(:safe_concat).ordered
|
77
|
+
helper.ungulate_upload_form_for(@file_upload) do
|
78
|
+
helper.safe_concat('text in the middle')
|
79
|
+
end
|
80
|
+
end
|
49
81
|
end
|
50
82
|
end
|
51
83
|
end
|
data/ungulate.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ungulate}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.13"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andrew Bruce"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-29}
|
13
13
|
s.default_executable = %q{ungulate_server.rb}
|
14
14
|
s.description = %q{WIP}
|
15
15
|
s.email = %q{andrew@camelpunch.com}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ungulate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 13
|
10
|
+
version: 0.0.13
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Bruce
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-29 00:00:00 +00:00
|
19
19
|
default_executable: ungulate_server.rb
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|