zendesk_api 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zendesk_api (0.1.0)
4
+ zendesk_api (0.1.2)
5
5
  faraday (>= 0.8.0)
6
6
  faraday_middleware (>= 0.8.7)
7
7
  hashie
@@ -16,7 +16,7 @@ GEM
16
16
  addressable (2.2.8)
17
17
  crack (0.3.1)
18
18
  diff-lcs (1.1.3)
19
- faraday (0.8.1)
19
+ faraday (0.8.2)
20
20
  multipart-post (~> 1.1)
21
21
  faraday_middleware (0.8.8)
22
22
  faraday (>= 0.7.4, < 0.9)
@@ -29,12 +29,16 @@ module ZendeskAPI
29
29
  end
30
30
 
31
31
  case file
32
- when File
32
+ when File, Tempfile
33
33
  path = file.path
34
34
  when String
35
35
  path = file
36
36
  else
37
- warn "WARNING: Passed invalid filename #{file} of type #{file.class} to upload"
37
+ if defined?(ActionDispatch) && file.is_a?(ActionDispatch::Http::UploadedFile)
38
+ path = file.tempfile.path
39
+ else
40
+ warn "WARNING: Passed invalid filename #{file} of type #{file.class} to upload"
41
+ end
38
42
  end
39
43
 
40
44
  if path
@@ -45,7 +49,12 @@ module ZendeskAPI
45
49
 
46
50
  mime_type = MIME::Types.type_for(path).first || "application/octet-stream"
47
51
 
48
- hash[:filename] ||= File.basename(path)
52
+ hash[:filename] ||= if file.respond_to?(:original_filename)
53
+ file.original_filename
54
+ else
55
+ File.basename(path)
56
+ end
57
+
49
58
  hash[:uploaded_data] = Faraday::UploadIO.new(path, mime_type)
50
59
  end
51
60
  end
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'tempfile'
2
3
 
3
4
  describe ZendeskAPI::Middleware::Request::Upload do
4
5
  subject { ZendeskAPI::Middleware::Request::Upload.new(lambda {|env| env}) }
@@ -44,6 +45,56 @@ describe ZendeskAPI::Middleware::Request::Upload do
44
45
  end
45
46
  end
46
47
 
48
+ begin
49
+ require 'action_dispatch'
50
+ rescue LoadError
51
+ warn "Could not load ActionDispatch; not running ActionDispatch::Http::UploadedFile tests"
52
+ end
53
+
54
+ if defined?(ActionDispatch)
55
+ class String
56
+ def encoding_aware?; false; end
57
+ end
58
+
59
+ context "with an ActionDispatch::Http::UploadedFile" do
60
+ before(:each) do
61
+ @upload = ActionDispatch::Http::UploadedFile.new(:filename => "hello", :tempfile => Tempfile.new(filename))
62
+ @env = subject.call(:body => { :file => @upload })
63
+ end
64
+
65
+ it "should convert file string to UploadIO" do
66
+ @env[:body][:uploaded_data].should be_instance_of(Faraday::UploadIO)
67
+ end
68
+
69
+ it "should remove file string" do
70
+ @env[:body][:file].should be_nil
71
+ end
72
+
73
+ it "should add filename if none exist" do
74
+ @env[:body][:filename].should == "hello"
75
+ end
76
+ end
77
+ end
78
+
79
+ context "with a Tempfile" do
80
+ before(:each) do
81
+ @tempfile = Tempfile.new(filename)
82
+ @env = subject.call(:body => { :file => @tempfile })
83
+ end
84
+
85
+ it "should convert file string to UploadIO" do
86
+ @env[:body][:uploaded_data].should be_instance_of(Faraday::UploadIO)
87
+ end
88
+
89
+ it "should remove file string" do
90
+ @env[:body][:file].should be_nil
91
+ end
92
+
93
+ it "should add filename if none exist" do
94
+ @env[:body][:filename].should == File.basename(@tempfile.path)
95
+ end
96
+ end
97
+
47
98
  context "with file instance" do
48
99
  context "top-level" do
49
100
  before(:each) do
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.name = "zendesk_api"
9
9
  s.version = ZendeskAPI::VERSION
10
10
  s.platform = Gem::Platform::RUBY
11
- s.authors = ["Steven Davidovitz"]
12
- s.email = ["sdavidovitz@zendesk.com"]
11
+ s.authors = ["Steven Davidovitz", "Michael Grosser"]
12
+ s.email = ["support@zendesk.com"]
13
13
  s.homepage = "http://developer.zendesk.com"
14
14
  s.summary = %q{Zendesk REST API Client}
15
15
  s.description = %q{Ruby wrapper for the REST API at http://www.zendesk.com. Documentation at http://developer.zendesk.com.}
@@ -24,6 +24,9 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency "rake"
25
25
  s.add_development_dependency "yard"
26
26
 
27
+ # Optional. Only used for uploads testing.
28
+ # s.add_development_dependency "actionpack"
29
+
27
30
  s.add_runtime_dependency "faraday", ">= 0.8.0"
28
31
  s.add_runtime_dependency "faraday_middleware", ">= 0.8.7"
29
32
  s.add_runtime_dependency "hashie"
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Steven Davidovitz
9
+ - Michael Grosser
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2012-08-23 00:00:00.000000000 Z
13
+ date: 2012-08-27 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rspec
@@ -206,7 +207,7 @@ dependencies:
206
207
  description: Ruby wrapper for the REST API at http://www.zendesk.com. Documentation
207
208
  at http://developer.zendesk.com.
208
209
  email:
209
- - sdavidovitz@zendesk.com
210
+ - support@zendesk.com
210
211
  executables: []
211
212
  extensions: []
212
213
  extra_rdoc_files: []