web-connect-rails 0.4.3 → 0.4.4
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 372216a47ea92a6d139284c680f5b2c6edd7f16c
|
|
4
|
+
data.tar.gz: 8e56468477e87b139106e79fa47fd78c8d3675c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f38f0fd7d3541e18fe4f85b68cd0c86e366f2422b12565f62b0b549693d0ec5bf6b1aaa8d43e5db79f0a9f8d7866c6a61ae5fd14f7b9f95f3c02f4093b303191
|
|
7
|
+
data.tar.gz: dd15af844ed70ecb02a32ff25002e18f6295ac4972a0e2a599d8ed822374b0b83fed9320bf1e602fd7b05aad509ea276cc1717d82e3e27d992a2c135fa2e5c14
|
|
@@ -16,6 +16,30 @@ module Netfira::WebConnect
|
|
|
16
16
|
define_method verb do |action, path = nil, data = nil|
|
|
17
17
|
request verb, action, path, data
|
|
18
18
|
end
|
|
19
|
+
define_method :"#{verb}!" do |*args|
|
|
20
|
+
__send__ verb, *args
|
|
21
|
+
raise "#{response.status}: #{response.body}" if response.status >= 400
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def method_missing(sym, *args, &block)
|
|
26
|
+
if respond_to_missing?(sym)
|
|
27
|
+
model = get_file_record_class sym.to_s[/^send_(\w+)$/, 1]
|
|
28
|
+
group = model.name.demodulize
|
|
29
|
+
method = -> files { files.each { |file_name, stream| send_file group, file_name, stream } }
|
|
30
|
+
self.class.__send__ :define_method, sym, method
|
|
31
|
+
method.call args.first
|
|
32
|
+
else
|
|
33
|
+
super sym, *args, &block
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def respond_to_missing?(sym)
|
|
38
|
+
if sym =~ /^send_(\w+)$/
|
|
39
|
+
!!get_file_record_class($1)
|
|
40
|
+
else
|
|
41
|
+
false
|
|
42
|
+
end
|
|
19
43
|
end
|
|
20
44
|
|
|
21
45
|
def request(verb, action, path = nil, data = nil)
|
|
@@ -25,6 +49,10 @@ module Netfira::WebConnect
|
|
|
25
49
|
@response = Response.new(app.call env)
|
|
26
50
|
end
|
|
27
51
|
|
|
52
|
+
def send_file(group, file_name, stream)
|
|
53
|
+
request :post, 'files', "#{group}/#{file_name}", stream
|
|
54
|
+
end
|
|
55
|
+
|
|
28
56
|
private
|
|
29
57
|
|
|
30
58
|
def app
|
|
@@ -41,7 +69,7 @@ module Netfira::WebConnect
|
|
|
41
69
|
elsif body.respond_to? :read
|
|
42
70
|
filename = body.path
|
|
43
71
|
extension = File.extname(filename)[1..-1] # get the extension and strip off the period at the beginning of the string
|
|
44
|
-
body = body.read
|
|
72
|
+
body = body.tap(&:rewind).read
|
|
45
73
|
|
|
46
74
|
if extension
|
|
47
75
|
type_result = MIME::Types.type_for(extension).first
|
|
@@ -59,6 +87,14 @@ module Netfira::WebConnect
|
|
|
59
87
|
env
|
|
60
88
|
end
|
|
61
89
|
|
|
90
|
+
def get_file_record_class(name)
|
|
91
|
+
class_name = name.singularize.camelize
|
|
92
|
+
if Models.const_defined?(class_name)
|
|
93
|
+
model = Models.const_get(class_name)
|
|
94
|
+
model < Model::Record::FileRecord && model
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
62
98
|
class Response
|
|
63
99
|
attr_reader :status, :headers
|
|
64
100
|
|
|
@@ -72,6 +108,10 @@ module Netfira::WebConnect
|
|
|
72
108
|
@body ||= @headers['Content-Type'] == 'application/json' ? json_body : @raw_body
|
|
73
109
|
end
|
|
74
110
|
|
|
111
|
+
def [](key)
|
|
112
|
+
body[key]
|
|
113
|
+
end
|
|
114
|
+
|
|
75
115
|
private
|
|
76
116
|
|
|
77
117
|
def json_body
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: web-connect-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Neil E. Pearson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-08-
|
|
11
|
+
date: 2014-08-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.4.
|
|
33
|
+
version: 0.4.4
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.4.
|
|
40
|
+
version: 0.4.4
|
|
41
41
|
description: Netfira WebConnect plugin for Ruby on Rails
|
|
42
42
|
email:
|
|
43
43
|
- neil@helium.net.au
|