riddl 0.99.164 → 0.99.166

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