ood_appkit 2.1.0 → 2.1.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
  SHA256:
3
- metadata.gz: 8d15b784a8f841fdf52efda26ca485b71c5879df5904ae10f1ee6d8351ee82a7
4
- data.tar.gz: b2fecbbd426e8bd0b36b3a7fb168ae2aa50394a62f832a3d58c0b39f05fb44ee
3
+ metadata.gz: ec0ba73ed6fe4e22e0fec2ee9b517bbf6c6936901b3fa551d749bdbd37f41750
4
+ data.tar.gz: b886c68b390e7778a202a170ee6c91b3c14e634d503e0fd29819783ea3eeb0b7
5
5
  SHA512:
6
- metadata.gz: d05cf4daeb01a91ba80ee4d17cad14bbbdd7316166ceb0475ba69ae97c9dffe660a9cc45111d02e8164add7b0fcc9cb43fb0b51a2e7cee761217b3ea3ad4c274
7
- data.tar.gz: 2cf3958034b82b058447b7194e66cde738288a13bf0b8dec032e92bc042c5c947fe3cc5c9cce43cf7e892bc8e7c2cb98da5e84683a3b30f4ed0c02d91cc4e1c2
6
+ metadata.gz: 81ff7cd9661603e2c5061653de406f7570cdc3ee3c476b6de52b161c541900b738d6064478758a50b997331adb8a5adef2e09aaf10775296144e639f26741214
7
+ data.tar.gz: 51241e4dabb81e0695135bf7fd7dbebb0c4994a481dbfefc0e61fa61d61079d3b3324bca756520d60087ae4ce9798d883e162dea97f3f314760f2ec36a912a15
@@ -4,7 +4,7 @@ module OodAppkit
4
4
  class Editor < Url
5
5
  # @param (see Url#initialize)
6
6
  # @param edit_url [#to_s] the URL used to request the file editor api
7
- def initialize(edit_url: '/edit', template: '{/url*}{+path}', **kwargs)
7
+ def initialize(edit_url: '/edit', template: '{/url*}{/fs}{+path}', **kwargs)
8
8
  super(template: template, **kwargs)
9
9
  @edit_url = parse_url_segments(edit_url.to_s)
10
10
  end
@@ -13,13 +13,15 @@ module OodAppkit
13
13
  # @param opts [#to_h] the available options for this method
14
14
  # @option opts [#to_s, nil] :path ("") The absolute path to the file on
15
15
  # the filesystem
16
+ # @option opts [#to_s, nil] :fs ("") The filesystem for the path
16
17
  # @return [Addressable::URI] absolute url to access path in file editor
17
18
  # api
18
19
  def edit(opts = {})
19
20
  opts = opts.to_h.compact.symbolize_keys
20
21
 
21
22
  path = opts.fetch(:path, "").to_s
22
- @template.expand url: @base_url + @edit_url, path: path
23
+ fs = opts.fetch(:fs, "fs").to_s
24
+ @template.expand url: @base_url + @edit_url, fs: fs, path: path
23
25
  end
24
26
  end
25
27
  end
@@ -5,7 +5,7 @@ module OodAppkit
5
5
  # @param (see Url#initialize)
6
6
  # @param fs_url [#to_s] the URL used to request a filesystem view in the app
7
7
  # @param api_url [#to_s] the URL used to request the app's api
8
- def initialize(fs_url: '/fs', api_url: '/api/v1/fs', template: '{/url*}{+path}', **kwargs)
8
+ def initialize(fs_url: '', api_url: '/api/v1', template: '{/url*}{/fs}{+path}', **kwargs)
9
9
  super(template: template, **kwargs)
10
10
  @fs_url = parse_url_segments(fs_url.to_s)
11
11
  @api_url = parse_url_segments(api_url.to_s)
@@ -15,24 +15,28 @@ module OodAppkit
15
15
  # @param opts [#to_h] the available options for this method
16
16
  # @option opts [#to_s, nil] :path ("") The absolute path to the file on
17
17
  # the filesystem
18
+ # @option opts [#to_s, nil] :fs ("") The filesystem for the path
18
19
  # @return [Addressable::URI] absolute url to access path in file app
19
20
  def url(opts = {})
20
21
  opts = opts.to_h.compact.symbolize_keys
21
22
 
22
23
  path = opts.fetch(:path, "").to_s
23
- @template.expand url: @base_url + @fs_url, path: path
24
+ fs = opts.fetch(:fs, "fs").to_s
25
+ @template.expand url: @base_url + @fs_url, fs: fs, path: path
24
26
  end
25
27
 
26
28
  # URL to access this app's API for a given absolute file path
27
29
  # @param opts [#to_h] the available options for this method
28
30
  # @option opts [#to_s, nil] :path ("") The absolute path to the file on
29
31
  # the filesystem
32
+ # @option opts [#to_s, nil] :fs ("") The filesystem for the path
30
33
  # @return [Addressable::URI] absolute url to access path in files app api
31
34
  def api(opts = {})
32
35
  opts = opts.to_h.compact.symbolize_keys
33
36
 
34
37
  path = opts.fetch(:path, "").to_s
35
- @template.expand url: @base_url + @api_url, path: path
38
+ fs = opts.fetch(:fs, "fs").to_s
39
+ @template.expand url: @base_url + @api_url, fs: fs, path: path
36
40
  end
37
41
  end
38
42
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module OodAppkit
4
4
  # The current version of OodAppkit
5
- VERSION = '2.1.0'
5
+ VERSION = '2.1.4'
6
6
  end
@@ -23,6 +23,23 @@ class OodAppkitTest < ActiveSupport::TestCase
23
23
 
24
24
  assert_equal "/f/fs/nfs/17/efranz/ood_dev", f.url(path: "/nfs/17/efranz/ood_dev").to_s
25
25
  assert_equal "/f/fs/nfs/17/efranz/ood_dev", f.url(path: Pathname.new("/nfs/17/efranz/ood_dev")).to_s
26
+
27
+ assert_equal "/f/s3/mybucket/foo", f.url(path: "/mybucket/foo", fs: "s3").to_s
28
+ assert_equal "/f/s3/mybucket/foo", f.url(path: Pathname.new("/mybucket/foo"), fs: "s3").to_s
29
+
30
+ assert_equal "/f/api/v1/fs/foo/bar", f.api(path: "/foo/bar").to_s
31
+ assert_equal "/f/api/v1/s3/foo/bar", f.api(path: "/foo/bar", fs: "s3").to_s
32
+
33
+ assert_equal "/f/Remote%200.-_/foo/bar", f.url(path: "/foo/bar", fs: "Remote 0.-_").to_s
26
34
  end
27
35
 
36
+ test "editor urls" do
37
+ e = OodAppkit::Urls::Editor.new(base_url: "/f")
38
+
39
+ assert_equal "/f/edit/fs/foo/bar", e.edit(path: "/foo/bar").to_s
40
+ assert_equal "/f/edit/fs/foo/bar", e.edit(path: Pathname.new("/foo/bar")).to_s
41
+ assert_equal "/f/edit/s3/foo/bar", e.edit(path: "/foo/bar", fs: "s3").to_s
42
+
43
+ assert_equal "/f/edit/Remote%200.-_/foo/bar", e.edit(path: "/foo/bar", fs: "Remote 0.-_").to_s
44
+ end
28
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ood_appkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Franz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-10-28 00:00:00.000000000 Z
12
+ date: 2024-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -18,9 +18,6 @@ dependencies:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 6.0.0
21
- - - "<"
22
- - !ruby/object:Gem::Version
23
- version: '7'
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,9 +25,6 @@ dependencies:
28
25
  - - ">="
29
26
  - !ruby/object:Gem::Version
30
27
  version: 6.0.0
31
- - - "<"
32
- - !ruby/object:Gem::Version
33
- version: '7'
34
28
  - !ruby/object:Gem::Dependency
35
29
  name: ood_core
36
30
  requirement: !ruby/object:Gem::Requirement
@@ -192,43 +186,43 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
186
  - !ruby/object:Gem::Version
193
187
  version: '0'
194
188
  requirements: []
195
- rubygems_version: 3.1.2
189
+ rubygems_version: 3.3.26
196
190
  signing_key:
197
191
  specification_version: 4
198
192
  summary: Open OnDemand gem to help build OOD apps and interface with other OOD apps.
199
193
  test_files:
200
- - test/ood_appkit_test.rb
201
- - test/test_helper.rb
202
- - test/dummy/public/favicon.ico
203
- - test/dummy/public/500.html
204
- - test/dummy/public/404.html
205
- - test/dummy/public/422.html
194
+ - test/dummy/README.rdoc
206
195
  - test/dummy/Rakefile
196
+ - test/dummy/app/assets/config/manifest.js
197
+ - test/dummy/app/assets/javascripts/application.js
198
+ - test/dummy/app/assets/stylesheets/application.css
199
+ - test/dummy/app/controllers/application_controller.rb
200
+ - test/dummy/app/helpers/application_helper.rb
201
+ - test/dummy/app/views/layouts/application.html.erb
202
+ - test/dummy/bin/bundle
203
+ - test/dummy/bin/rails
204
+ - test/dummy/bin/rake
207
205
  - test/dummy/config/application.rb
208
- - test/dummy/config/environment.rb
209
- - test/dummy/config/database.yml
210
- - test/dummy/config/routes.rb
211
206
  - test/dummy/config/boot.rb
212
- - test/dummy/config/initializers/mime_types.rb
213
- - test/dummy/config/initializers/session_store.rb
207
+ - test/dummy/config/database.yml
208
+ - test/dummy/config/environment.rb
209
+ - test/dummy/config/environments/development.rb
210
+ - test/dummy/config/environments/production.rb
211
+ - test/dummy/config/environments/test.rb
212
+ - test/dummy/config/initializers/backtrace_silencers.rb
214
213
  - test/dummy/config/initializers/filter_parameter_logging.rb
215
214
  - test/dummy/config/initializers/inflections.rb
216
- - test/dummy/config/initializers/backtrace_silencers.rb
217
- - test/dummy/config/initializers/wrap_parameters.rb
215
+ - test/dummy/config/initializers/mime_types.rb
218
216
  - test/dummy/config/initializers/secret_token.rb
219
- - test/dummy/config/environments/development.rb
220
- - test/dummy/config/environments/test.rb
221
- - test/dummy/config/environments/production.rb
217
+ - test/dummy/config/initializers/session_store.rb
218
+ - test/dummy/config/initializers/wrap_parameters.rb
222
219
  - test/dummy/config/locales/en.yml
223
- - test/dummy/bin/rails
224
- - test/dummy/bin/rake
225
- - test/dummy/bin/bundle
226
- - test/dummy/app/helpers/application_helper.rb
227
- - test/dummy/app/assets/config/manifest.js
228
- - test/dummy/app/assets/javascripts/application.js
229
- - test/dummy/app/assets/stylesheets/application.css
230
- - test/dummy/app/controllers/application_controller.rb
231
- - test/dummy/app/views/layouts/application.html.erb
220
+ - test/dummy/config/routes.rb
232
221
  - test/dummy/config.ru
233
- - test/dummy/README.rdoc
222
+ - test/dummy/public/404.html
223
+ - test/dummy/public/422.html
224
+ - test/dummy/public/500.html
225
+ - test/dummy/public/favicon.ico
234
226
  - test/integration/navigation_test.rb
227
+ - test/ood_appkit_test.rb
228
+ - test/test_helper.rb