mountable_file_server 2.0.0 → 3.0.3

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
- SHA1:
3
- metadata.gz: 06ba105404c99a412b676531f8e1cf413dcef90e
4
- data.tar.gz: 4b2a1588e17a8dc4ce720b9b88267e8a93f4fced
2
+ SHA256:
3
+ metadata.gz: bcdbcf7433b4e6534d739d480d7893ba11ce8046afb4e86df05c01989938a7ce
4
+ data.tar.gz: 27d8021de14ef6430cde006bf2240bc0eb1f9d4bab27a1a18788764a3e82d2b7
5
5
  SHA512:
6
- metadata.gz: 0f8109f98d14e82c53933a7e01a7fe7ef96ac4c321d03d57f075de188afef8432d9964126c1a838f4f6916a73de84446365d4a278c4fd7f97572bd4eaf68adb2
7
- data.tar.gz: 759a235787657eeeecfdca45a6637b66686b3ca41bc8eac2c3e1018537c1fc7b5e99f117cca7c700bf648ef4ece6b55be0f51dced14e70f074384b3903456fa1
6
+ metadata.gz: 87b760cda1e81bdd7a483c501759f403be3b629eb9ab4c3beeff9b2658ace693efe8a46548224d8dfebf131e35acfda0008f686f7c2685dcbd9a14c13746f58b
7
+ data.tar.gz: 69a22adc2a6ba19487a0da1f8f63f203e008417c1b8155e282ad5930bdae457723b3e67fb6d0d6b9d492d03a884cd635a75f42aee94db408774ff5e4fd0881f1
data/.gitignore CHANGED
@@ -16,4 +16,4 @@ mkmf.log
16
16
  *.sqlite3
17
17
  test/rails-dummy/tmp/
18
18
  test/rails-dummy/uploads/
19
- .ruby-version
19
+ /.local-data/
@@ -0,0 +1 @@
1
+ 2.5.8
@@ -1,3 +1,19 @@
1
+ # 3.0.3
2
+ * Relax required version number of `dry-configurable` dependency
3
+
4
+ # 3.0.2
5
+ * Fix deprecation warning when calling metadata class initializer with keyword arguments.
6
+ * Don't break when uploading a private file.
7
+
8
+ # 3.0.1
9
+ * Repair broken `FileAccessor` class.
10
+
11
+ # 3.0.0
12
+ * **Breaking Change**: Remove `MountableFileServer::Client`. Use `MountableFileServer::Adapter` instead.
13
+
14
+ # 2.1.0
15
+ * Relax Sinatra dependency so Ruby on Rails 4 can use Rack 1.X
16
+
1
17
  # 2.0.0
2
18
  * Remove HTTP endpoints for moving and deleting uploads due to security concerns.
3
19
  * Return 404 for unknown or malformed FIDs.
data/README.md CHANGED
@@ -4,7 +4,7 @@ Mountable File Server can be used with any Ruby (on Rails) application and it re
4
4
  app only stores reference to uploaded file
5
5
 
6
6
  ## MountableFileServer::Server
7
- The core of Mountable File Server (MFS) is a small HTTP API that accepts file uploads and offers endpoints to interact with uploaded files. While the frontend deals directly with the HTTP API, your Ruby application will want to use the Ruby Client `MountableFileServer::Client`.
7
+ The core of Mountable File Server (MFS) is a small HTTP API that accepts file uploads and offers endpoints to interact with uploaded files. While the frontend deals directly with the HTTP API, your Ruby application will want to use the Ruby adapter `MountableFileServer::Adapter`.
8
8
 
9
9
 
10
10
 
@@ -33,9 +33,8 @@ module MountableFileServer
33
33
  end
34
34
 
35
35
  def url_for(uid)
36
- # uid = UniqueIdentifier.new uid
37
- # FileAccessor.new(uid, configuration).url
38
- configuration.base_url + uid
36
+ uid = UniqueIdentifier.new uid
37
+ FileAccessor.new(uid, configuration).url
39
38
  end
40
39
 
41
40
  def pathname_for(uid)
@@ -1,3 +1,4 @@
1
+ require 'mountable_file_server/uri'
1
2
  require 'pathname'
2
3
 
3
4
  module MountableFileServer
@@ -39,7 +39,7 @@ module MountableFileServer
39
39
  parameters[:height] = dimensions[1]
40
40
  end
41
41
 
42
- new(parameters)
42
+ new(**parameters)
43
43
  end
44
44
  end
45
45
  end
@@ -1,6 +1,5 @@
1
1
  require 'mountable_file_server'
2
2
  require 'mountable_file_server/server'
3
- require 'mountable_file_server/client'
4
3
 
5
4
  module MountableFileServer
6
5
  class Engine < Rails::Engine
@@ -11,7 +11,7 @@ module MountableFileServer
11
11
  pathname = Pathname(params[:file][:tempfile].path)
12
12
  type = params[:type]
13
13
  fid = adapter.store_temporary(pathname, type, pathname.extname)
14
- url = adapter.url_for(fid)
14
+ url = adapter.url_for(fid) if fid.public?
15
15
  metadata = Metadata.for_path(pathname)
16
16
 
17
17
  content_type :json
@@ -1,3 +1,3 @@
1
1
  module MountableFileServer
2
- VERSION = "2.0.0"
2
+ VERSION = "3.0.3"
3
3
  end
@@ -18,17 +18,17 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
21
+ spec.add_development_dependency "bundler", "~> 2.1"
22
+ spec.add_development_dependency "rake", ">= 12.3.3"
23
23
  spec.add_development_dependency "minitest", "~> 5.8.0"
24
- spec.add_development_dependency "rails", "~> 5.0.2"
25
- spec.add_development_dependency "capybara", "~> 2.4.4"
24
+ spec.add_development_dependency "rails", "~> 5.0.7.2"
25
+ spec.add_development_dependency "capybara", "2.18.0"
26
26
  spec.add_development_dependency "sqlite3", "~> 1.3.10"
27
- spec.add_development_dependency "poltergeist", "~> 1.6.0"
27
+ spec.add_development_dependency "poltergeist", "1.18.1"
28
28
  spec.add_development_dependency "rack-test", "~> 0.6.3"
29
- spec.add_development_dependency "webmock", "~> 2.1.0"
29
+ spec.add_development_dependency "mocha", "1.11.2"
30
30
 
31
- spec.add_runtime_dependency "sinatra", "~> 2.0.0"
32
- spec.add_runtime_dependency "dry-configurable", "~> 0.1.6"
31
+ spec.add_runtime_dependency "sinatra", ">= 1.4.8"
32
+ spec.add_runtime_dependency "dry-configurable", ">= 0.1.6"
33
33
  spec.add_runtime_dependency "dimensions", "~> 1.3.0"
34
34
  end
@@ -0,0 +1,27 @@
1
+ {
2
+ pkgs ? import (fetchGit {
3
+ url = https://github.com/NixOS/nixpkgs-channels;
4
+ ref = "nixos-20.03";
5
+ }) {},
6
+ ruby ? pkgs.ruby_2_5,
7
+ bundler ? pkgs.bundler.override { inherit ruby; }
8
+ }:
9
+
10
+ pkgs.mkShell {
11
+ buildInputs = with pkgs; [
12
+ ruby
13
+ bundler
14
+ git
15
+ sqlite
16
+ zlib
17
+ phantomjs
18
+ rubyPackages_2_5.nokogiri
19
+ libiconv
20
+ ];
21
+
22
+ shellHook = ''
23
+ mkdir -p .local-data/gems
24
+ export GEM_HOME=$PWD/.local-data/gems
25
+ export GEM_PATH=$GEM_HOME
26
+ '';
27
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mountable_file_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Strauß
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-13 00:00:00.000000000 Z
11
+ date: 1970-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :development
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: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.0.2
61
+ version: 5.0.7.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 5.0.2
68
+ version: 5.0.7.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capybara
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 2.4.4
75
+ version: 2.18.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 2.4.4
82
+ version: 2.18.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sqlite3
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +98,16 @@ dependencies:
98
98
  name: poltergeist
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.6.0
103
+ version: 1.18.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.6.0
110
+ version: 1.18.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rack-test
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -123,45 +123,45 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.6.3
125
125
  - !ruby/object:Gem::Dependency
126
- name: webmock
126
+ name: mocha
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 2.1.0
131
+ version: 1.11.2
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 2.1.0
138
+ version: 1.11.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: sinatra
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.0
145
+ version: 1.4.8
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 2.0.0
152
+ version: 1.4.8
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: dry-configurable
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.1.6
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.1.6
167
167
  - !ruby/object:Gem::Dependency
@@ -186,6 +186,7 @@ extensions: []
186
186
  extra_rdoc_files: []
187
187
  files:
188
188
  - ".gitignore"
189
+ - ".ruby-version"
189
190
  - ".travis.yml"
190
191
  - CHANGELOG.md
191
192
  - Gemfile
@@ -194,7 +195,6 @@ files:
194
195
  - Rakefile
195
196
  - lib/mountable_file_server.rb
196
197
  - lib/mountable_file_server/adapter.rb
197
- - lib/mountable_file_server/client.rb
198
198
  - lib/mountable_file_server/file_accessor.rb
199
199
  - lib/mountable_file_server/metadata.rb
200
200
  - lib/mountable_file_server/rails.rb
@@ -204,6 +204,7 @@ files:
204
204
  - lib/mountable_file_server/uri.rb
205
205
  - lib/mountable_file_server/version.rb
206
206
  - mountable_file_server.gemspec
207
+ - shell.nix
207
208
  - vendor/assets/javascripts/mountable_file_server.js
208
209
  homepage: https://github.com/stravid/mountable_file_server
209
210
  licenses:
@@ -224,8 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
225
  - !ruby/object:Gem::Version
225
226
  version: '0'
226
227
  requirements: []
227
- rubyforge_project:
228
- rubygems_version: 2.5.1
228
+ rubygems_version: 3.1.2
229
229
  signing_key:
230
230
  specification_version: 4
231
231
  summary: Simple mountable server that handles file uploads
@@ -1,44 +0,0 @@
1
- require 'net/http'
2
- require 'uri'
3
- require 'stringio'
4
-
5
- module MountableFileServer
6
- class Client
7
- def move_to_permanent_storage(fid)
8
- if MountableFileServer.config.base_url.start_with?('http')
9
- uri = ::URI.parse(MountableFileServer.config.base_url)
10
- http = Net::HTTP.new(uri.host, uri.port)
11
- http.set_debug_output($stdout)
12
- request = Net::HTTP::Post.new(uri.request_uri + fid + '/store-permanent')
13
-
14
- http.request(request)
15
- else
16
- MountableFileServer::Server.new.call({
17
- "rack.input" => StringIO.new(""),
18
- "REQUEST_METHOD"=> "POST",
19
- "PATH_INFO"=> "/#{fid}/store-permanent",
20
- })
21
- end
22
- end
23
-
24
- def remove_from_storage(fid)
25
- if MountableFileServer.config.base_url.start_with?('http')
26
- uri = ::URI.parse(MountableFileServer.config.base_url)
27
- http = Net::HTTP.new(uri.host, uri.port)
28
- request = Net::HTTP::Delete.new(uri.request_uri + fid)
29
-
30
- http.request(request)
31
- else
32
- MountableFileServer::Server.new.call({
33
- "rack.input" => StringIO.new(""),
34
- "REQUEST_METHOD"=> "DELETE",
35
- "PATH_INFO"=> "/#{fid}",
36
- })
37
- end
38
- end
39
-
40
- def url_for(fid)
41
- MountableFileServer.config.base_url + fid
42
- end
43
- end
44
- end