temper 1.0.0 → 1.0.1

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.
@@ -1,6 +1,7 @@
1
1
  require 'tempfile'
2
2
  require 'stringio'
3
3
  require 'mime/types'
4
+ require 'shellter'
4
5
 
5
6
  module Temper
6
7
  autoload :Base, 'temper/base'
@@ -7,6 +7,18 @@ module Temper
7
7
  raise RuntimeException, "No @storage set" unless @storage
8
8
  self.original_filename = options[:original_filename] || ::File.basename(path)
9
9
  self.content_type = options[:content_type] || infer_content_type || "text/plain"
10
+
11
+ if block_given?
12
+ begin
13
+ yield self
14
+ ensure
15
+ close
16
+ end
17
+ end
18
+ end
19
+
20
+ def close
21
+ #noop
10
22
  end
11
23
 
12
24
  def fingerprint
@@ -42,13 +54,11 @@ module Temper
42
54
  def type_from_file_command
43
55
  # On BSDs, `file` doesn't give a result code of 1 if the file doesn't exist.
44
56
  type = (self.original_filename.match(/\.(\w+)$/)[1] rescue "octet-stream").downcase
45
- mime_type = (run("file", "-b --mime-type :file", :file => self.path).split(':').last.strip rescue "application/x-#{type}")
57
+ result = Shellter.run("file", "-b --mime-type :file", :file => self.path)
58
+ result = Shellter.run("file", "-b --mime-type :file", :file => self.path) unless result.success?
59
+ mime_type = (result.stdout.split(";").first.split(':').last.strip rescue "application/x-#{type}")
46
60
  mime_type = "application/x-#{type}" if mime_type.match(/\(.*?\)/)
47
61
  mime_type
48
62
  end
49
-
50
- def run(command, *arguments)
51
- Cocaine::CommandLine.new(command, *arguments).run
52
- end
53
63
  end
54
64
  end
@@ -7,7 +7,11 @@ module Temper
7
7
  if path && ::File.exists?(path)
8
8
  options[:original_filename] ||= ::File.basename(path)
9
9
  end
10
- super options
10
+ super options
11
+ end
12
+
13
+ def close
14
+ @storage.close(true)
11
15
  end
12
16
 
13
17
  private
@@ -1,3 +1,3 @@
1
1
  module Temper
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -16,7 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Temper::VERSION
17
17
 
18
18
  gem.add_runtime_dependency "mime-types"
19
- gem.add_runtime_dependency "cocaine"
19
+ gem.add_runtime_dependency "shellter"
20
+ gem.add_runtime_dependency "popen4"
20
21
 
21
22
  gem.add_development_dependency "rspec", "> 2.0"
22
23
  end
metadata CHANGED
@@ -1,75 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: temper
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Andrew Eberbach
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-06-06 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: mime-types
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
22
23
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: shellter
32
+ requirement: !ruby/object:Gem::Requirement
24
33
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
32
38
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: cocaine
36
39
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
38
41
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: popen4
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
46
54
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: rspec
50
55
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
52
57
  none: false
53
- requirements:
54
- - - ">"
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 2
59
- - 0
60
- version: "2.0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>'
68
+ - !ruby/object:Gem::Version
69
+ version: '2.0'
61
70
  type: :development
62
- version_requirements: *id003
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>'
76
+ - !ruby/object:Gem::Version
77
+ version: '2.0'
63
78
  description: A gem for a slightly smarter temporary file and temporary directory maintenance
64
- email:
79
+ email:
65
80
  - andrew@ebertech.ca
66
81
  executables: []
67
-
68
82
  extensions: []
69
-
70
83
  extra_rdoc_files: []
71
-
72
- files:
84
+ files:
73
85
  - .gitignore
74
86
  - .rspec
75
87
  - Gemfile
@@ -88,40 +100,31 @@ files:
88
100
  - temper.gemspec
89
101
  homepage: https://github.com/ebertech/temper
90
102
  licenses: []
91
-
92
103
  post_install_message:
93
104
  rdoc_options: []
94
-
95
- require_paths:
105
+ require_paths:
96
106
  - lib
97
- required_ruby_version: !ruby/object:Gem::Requirement
107
+ required_ruby_version: !ruby/object:Gem::Requirement
98
108
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
104
- - 0
105
- version: "0"
106
- required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
114
  none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- hash: 3
112
- segments:
113
- - 0
114
- version: "0"
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
115
119
  requirements: []
116
-
117
120
  rubyforge_project:
118
- rubygems_version: 1.8.21
121
+ rubygems_version: 1.8.24
119
122
  signing_key:
120
123
  specification_version: 3
121
- summary: Combines the best parts of Upfile from paperclip and Rack::Multipart::UploadedFile from rack.
122
- test_files:
124
+ summary: Combines the best parts of Upfile from paperclip and Rack::Multipart::UploadedFile
125
+ from rack.
126
+ test_files:
123
127
  - spec/examples/sample.txt
124
128
  - spec/file/basic_spec.rb
125
129
  - spec/spec_helper.rb
126
130
  - spec/stringio/basic_spec.rb
127
- has_rdoc: