riddl 0.99.164 → 0.99.166

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: 489adb35b73cd33ca81b091cb2501a60f41d1f43
4
- data.tar.gz: a1d2eea4782ab9011cb02bc8c8a830077c496881
3
+ metadata.gz: 7494d6014d9695052b9f418118023b46a41f5df5
4
+ data.tar.gz: 569a3a767b3333f0791c8b393b9a9992316f2bca
5
5
  SHA512:
6
- metadata.gz: 890ff194f9185f100584596a2625bae405635fedc7f5ae9f09f2a24322eac9a59cda8358a5fd6da0f379e6a492d643ff21fc3c76d6940ad1726f8cd2b610da41
7
- data.tar.gz: 26a286f3ed8215bad4dfc8c60f0b9b6ff7c2e63e8d0d5afcbb1962214e5855c7b2d8ab6727486c393c440ed5513698afb97c924f5ed9b6f8098f0b1574ca6046
6
+ metadata.gz: 7f1f6c98ddbe9d190b2d55c9d55835029d73124f84a09b169c071bcfe9cf85a9d6a2192e9cd039950a15a93159b4e14908e9e278edd776c917528976ec22446d
7
+ data.tar.gz: 4306072b8bb92db673f629a3742966a9afb10d8341d8cf4f444ad9e2b94c3cf716c2757d01eb2654b8a07936df495ec57cf3684948705019a18004269472595a
@@ -21,11 +21,12 @@ module Riddl
21
21
  end
22
22
  end
23
23
  class Complex
24
- attr_reader :mimetype, :filename, :value, :type, :additional
24
+ attr_reader :mimetype, :filename, :value, :type, :additional, :mimextra
25
25
  attr_accessor :name
26
26
  def initialize(name,mimetype,file=nil,filename=nil,additional=[])
27
27
  @name = name
28
- @mimetype = mimetype.gsub(/;.*/,'')
28
+ @mimetype = mimetype.gsub(/(;.*)/,'')
29
+ @mimextra = $1 || ''
29
30
  @filename = filename
30
31
  @type = :body
31
32
  @additional = additional
@@ -39,7 +39,7 @@ module Riddl
39
39
  end
40
40
  when Riddl::Parameter::Complex
41
41
  tmp.write(r.value.respond_to?(:read) ? r.value.read : r.value)
42
- @headers['Content-Type'] = r.mimetype
42
+ @headers['Content-Type'] = r.mimetype + r.mimextra
43
43
  @headers['RIDDL-TYPE'] = 'complex'
44
44
  if r.filename.nil?
45
45
  @headers['Content-ID'] = r.name
@@ -92,7 +92,7 @@ module Riddl
92
92
  tmp.write "Content-Disposition: #{mode == :input ? 'form-data' : 'riddl-data'}; name=\"#{r.name}\""
93
93
  tmp.write r.filename.nil? ? EOL : "; filename=\"#{r.filename}\"" + EOL
94
94
  tmp.write "Content-Transfer-Encoding: binary" + EOL
95
- tmp.write "Content-Type: " + r.mimetype + EOL
95
+ tmp.write "Content-Type: " + r.mimetype + r.mimextra + EOL
96
96
  tmp.write EOL
97
97
  tmp.write(r.value.respond_to?(:read) ? r.value.read : r.value)
98
98
  tmp.write EOL
@@ -102,7 +102,7 @@ module Riddl
102
102
  n = @node.add('part')
103
103
  n.namespaces.add(nil,XR_NS)
104
104
  n.text = (r.value.respond_to?(:read) ? r.value.read : r.value)
105
- n.attributes['content-type'] = r.mimetype
105
+ n.attributes['content-type'] = r.mimetype + r.mimextra
106
106
  n.attributes['RIDDL-TYPE'] = 'complex'
107
107
  if r.filename.nil?
108
108
  n.attributes['content-id'] = r.name
@@ -153,7 +153,7 @@ module Riddl
153
153
  n.attributes['RIDDL-TYPE'] = 'complex'
154
154
  n.attributes['content-disposition'] = "#{mode == :input ? 'form-data' : 'riddl-data'}; name=\"#{r.name}\"#{r.filename.nil? ? '' : "; filename=\"#{r.filename}\""}"
155
155
  n.attributes['content-transfer-encoding'] = 'binary'
156
- n.attributes['content-type'] = r.mimetype
156
+ n.attributes['content-type'] = r.mimetype + r.mimextra
157
157
  n.text = (r.value.respond_to?(:read) ? r.value.read : r.value)
158
158
  end
159
159
  end
@@ -1,4 +1,5 @@
1
1
  require 'mime/types'
2
+ require 'charlock_holmes'
2
3
  require 'digest/md5'
3
4
 
4
5
  module Riddl
@@ -21,7 +22,13 @@ module Riddl
21
22
  @status = 304 # Not modified
22
23
  return []
23
24
  else
24
- return Riddl::Parameter::Complex.new("file",MIME::Types.type_for(path).first.to_s,File.open(path,'r'))
25
+ mt = MIME::Types.type_for(path).first
26
+ apx = ''
27
+ if mt.ascii?
28
+ tstr = File.read(path,CharlockHolmes::EncodingDetector::DEFAULT_BINARY_SCAN_LEN)
29
+ apx = ';charset=' + CharlockHolmes::EncodingDetector.detect(tstr)[:encoding]
30
+ end
31
+ return Riddl::Parameter::Complex.new('file',mt.to_s + apx,File.open(path,'r'))
25
32
  end
26
33
  end
27
34
  @status = 404
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.99.164"
3
+ s.version = "0.99.166"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3"
6
6
  s.summary = "restful interface description and declaration language: tools and client/server libs"
@@ -31,4 +31,5 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency 'mime-types'
32
32
  s.add_runtime_dependency 'minitest', '>= 5.0.0'
33
33
  s.add_runtime_dependency 'blather'
34
+ s.add_runtime_dependency 'charlock_holmes'
34
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.164
4
+ version: 0.99.166
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
8
  autorequire:
9
9
  bindir: tools
10
10
  cert_chain: []
11
- date: 2014-09-15 00:00:00.000000000 Z
11
+ date: 2014-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xml-smart
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: charlock_holmes
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description: rest service interface definition, mixing, and evolution. supports mixed
154
168
  http and xmpp servers.
155
169
  email: juergen.mangler@gmail.com