vizier 0.1.0 → 0.2.0
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 +5 -5
- data/.github/workflows/test.yml +32 -0
- data/.standard.yml +1 -0
- data/CHANGELOG.md +5 -0
- data/README.md +18 -2
- data/bin/standardrb +29 -0
- data/lib/vizier/collection_presenter.rb +1 -1
- data/lib/vizier/presenter_config.rb +2 -2
- data/lib/vizier/presenter_factory.rb +5 -5
- data/lib/vizier/read_only_policy.rb +1 -1
- data/lib/vizier/resource_presenter.rb +1 -1
- data/lib/vizier/version.rb +1 -1
- data/lib/vizier.rb +10 -9
- data/vizier.gemspec +13 -11
- metadata +36 -38
- data/.rubocop.yml +0 -30
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: d624cdcd9450f0b31d28962960167643feb2d45671e6a784c3959468bff5acb8
|
|
4
|
+
data.tar.gz: edc23606a3a4b36a65f231ac867e59f4fcefa71da281b055f8f561919adf5012
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 23a559a5105b7046c8f972be277d48d781c3f643e755ddbc6822b7249aa24f2ad830fdb5c79b2fdaf69aa13f2dc4e4bff0c1e42c150c5dbd7d45ddf55290b6b4
|
|
7
|
+
data.tar.gz: 5022088c5c36f1a43fefb737706ce3bebc024aed5887e2057a50c462db1fb386a08515b3a23e11cbf1c1d48cc68f99fecd9a9317b98b3cb77229b53ab7d0cbf5
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
os: [ ubuntu-latest ]
|
|
14
|
+
ruby-version: [3.2, 3.3, 3.4, 4.0]
|
|
15
|
+
|
|
16
|
+
runs-on: ${{ matrix.os }}
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v6
|
|
20
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
|
21
|
+
uses: ruby/setup-ruby@v1
|
|
22
|
+
with:
|
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
24
|
+
bundler-cache: true
|
|
25
|
+
- name: Run linter for Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
|
|
26
|
+
run: bin/standardrb
|
|
27
|
+
- name: Run tests for Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
|
|
28
|
+
run: bin/rspec
|
|
29
|
+
- name: Report to Coveralls
|
|
30
|
+
uses: coverallsapp/github-action@v2
|
|
31
|
+
with:
|
|
32
|
+
github-token: ${{ secrets.github_token }}
|
data/.standard.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby_version: 3.0.0
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
[](https://github.com/mlibrary/vizier/actions/workflows/test.yml)
|
|
2
|
+
[](https://coveralls.io/github/mlibrary/vizier?branch=main)
|
|
3
|
+
[](https://vizier.readthedocs.io/en/latest)
|
|
4
|
+
[](https://www.rubydoc.info/gems/vizier)
|
|
3
5
|
|
|
4
6
|
# Vizier
|
|
5
7
|
|
|
@@ -20,6 +22,20 @@ And then execute:
|
|
|
20
22
|
|
|
21
23
|
$ bundle
|
|
22
24
|
|
|
25
|
+
## Compatibility
|
|
26
|
+
|
|
27
|
+
Vizier is intended to be compatible with all community-supported Ruby branches (i.e., minor versions), currently:
|
|
28
|
+
|
|
29
|
+
- 3.2
|
|
30
|
+
- 3.3
|
|
31
|
+
- 3.4
|
|
32
|
+
- 4.0
|
|
33
|
+
|
|
34
|
+
We prefer the newest syntax and linting rules that preserve compatibility with the oldest branch in normal maintenance.
|
|
35
|
+
When the security maintenance for a branch expires, Keycard's compatibility should be considered unsupported.
|
|
36
|
+
|
|
37
|
+
See also, [Ruby's branch maintenance policy](https://www.ruby-lang.org/en/downloads/branches/).
|
|
38
|
+
|
|
23
39
|
## License
|
|
24
40
|
|
|
25
41
|
Vizier is licensed under the BSD-3-Clause license. See [LICENSE.md](LICENSE.md).
|
data/bin/standardrb
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file was generated by Bundler.
|
|
6
|
+
#
|
|
7
|
+
# The application 'standardrb' is installed as part of a gem, and
|
|
8
|
+
# this file is here to facilitate running it.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
require "pathname"
|
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
13
|
+
Pathname.new(__FILE__).realpath)
|
|
14
|
+
|
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
|
16
|
+
|
|
17
|
+
if File.file?(bundle_binstub)
|
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
|
19
|
+
load(bundle_binstub)
|
|
20
|
+
else
|
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
require "rubygems"
|
|
27
|
+
require "bundler/setup"
|
|
28
|
+
|
|
29
|
+
load Gem.bin_path("standard", "standardrb")
|
|
@@ -8,9 +8,9 @@ module Vizier
|
|
|
8
8
|
# be used in production.
|
|
9
9
|
class PresenterConfig
|
|
10
10
|
def initialize(type, presenter, policy)
|
|
11
|
-
@type_name
|
|
11
|
+
@type_name = type.to_s
|
|
12
12
|
@presenter_name = presenter.to_s
|
|
13
|
-
@policy_name
|
|
13
|
+
@policy_name = policy.to_s
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def present(object, user, view)
|
|
@@ -10,11 +10,11 @@ module Vizier
|
|
|
10
10
|
# where the first item is the default presenter type, and the second is the
|
|
11
11
|
# default policy type.
|
|
12
12
|
def initialize(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@config_type
|
|
13
|
+
presenter_map = {},
|
|
14
|
+
config_type: PresenterConfig,
|
|
15
|
+
default_config: DefaultPresenterConfig.new(config_type)
|
|
16
|
+
)
|
|
17
|
+
@config_type = config_type
|
|
18
18
|
@default_config = default_config
|
|
19
19
|
|
|
20
20
|
@configs = Hash.new do |_configs, type|
|
data/lib/vizier/version.rb
CHANGED
data/lib/vizier.rb
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "delegate"
|
|
4
|
+
require "vizier/version"
|
|
4
5
|
|
|
5
6
|
# Top level module for Vizier
|
|
6
7
|
module Vizier
|
|
7
8
|
# Just the constant for now
|
|
8
9
|
end
|
|
9
10
|
|
|
10
|
-
require
|
|
11
|
-
require
|
|
11
|
+
require "vizier/null_presenter"
|
|
12
|
+
require "vizier/read_only_policy"
|
|
12
13
|
|
|
13
|
-
require
|
|
14
|
-
require
|
|
15
|
-
require
|
|
14
|
+
require "vizier/presenter_config"
|
|
15
|
+
require "vizier/caching_presenter_config"
|
|
16
|
+
require "vizier/default_presenter_config"
|
|
16
17
|
|
|
17
|
-
require
|
|
18
|
-
require
|
|
19
|
-
require
|
|
18
|
+
require "vizier/collection_presenter"
|
|
19
|
+
require "vizier/resource_presenter"
|
|
20
|
+
require "vizier/presenter_factory"
|
data/vizier.gemspec
CHANGED
|
@@ -5,10 +5,10 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
|
5
5
|
require "vizier/version"
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |spec|
|
|
8
|
-
spec.name
|
|
8
|
+
spec.name = "vizier"
|
|
9
9
|
spec.version = Vizier::VERSION
|
|
10
10
|
spec.authors = ["Noah Botimer"]
|
|
11
|
-
spec.email
|
|
11
|
+
spec.email = ["botimer@umich.edu"]
|
|
12
12
|
spec.license = "BSD-3-Clause"
|
|
13
13
|
|
|
14
14
|
spec.summary = <<~SUMMARY
|
|
@@ -27,15 +27,17 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
28
28
|
f.match(%r{^(test|spec|features)/})
|
|
29
29
|
end
|
|
30
|
-
spec.bindir
|
|
31
|
-
spec.executables
|
|
30
|
+
spec.bindir = "exe"
|
|
31
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
32
32
|
spec.require_paths = ["lib"]
|
|
33
33
|
|
|
34
|
-
spec.
|
|
35
|
-
|
|
36
|
-
spec.add_development_dependency "
|
|
37
|
-
spec.add_development_dependency "
|
|
38
|
-
spec.add_development_dependency "
|
|
39
|
-
spec.add_development_dependency "
|
|
40
|
-
spec.add_development_dependency "
|
|
34
|
+
spec.required_ruby_version = ">= 3.2.0"
|
|
35
|
+
|
|
36
|
+
spec.add_development_dependency "bundler"
|
|
37
|
+
spec.add_development_dependency "ostruct"
|
|
38
|
+
spec.add_development_dependency "simplecov"
|
|
39
|
+
spec.add_development_dependency "simplecov-lcov"
|
|
40
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
41
|
+
spec.add_development_dependency "rspec", "~> 3.11"
|
|
42
|
+
spec.add_development_dependency "standard", "~> 1.53"
|
|
41
43
|
end
|
metadata
CHANGED
|
@@ -1,113 +1,112 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vizier
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Noah Botimer
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
|
-
- - "
|
|
16
|
+
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '0'
|
|
20
19
|
type: :development
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
|
-
- - "
|
|
23
|
+
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
25
|
+
version: '0'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
27
|
+
name: ostruct
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
|
-
- - "
|
|
30
|
+
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0
|
|
32
|
+
version: '0'
|
|
34
33
|
type: :development
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
|
-
- - "
|
|
37
|
+
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0
|
|
39
|
+
version: '0'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
41
|
+
name: simplecov
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
|
-
- - "
|
|
44
|
+
- - ">="
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
46
|
+
version: '0'
|
|
48
47
|
type: :development
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
|
-
- - "
|
|
51
|
+
- - ">="
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
53
|
+
version: '0'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
55
|
+
name: simplecov-lcov
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- - "
|
|
58
|
+
- - ">="
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
60
|
+
version: '0'
|
|
62
61
|
type: :development
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
|
-
- - "
|
|
65
|
+
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
67
|
+
version: '0'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
69
|
+
name: rake
|
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
|
72
71
|
requirements:
|
|
73
72
|
- - "~>"
|
|
74
73
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0
|
|
74
|
+
version: '13.0'
|
|
76
75
|
type: :development
|
|
77
76
|
prerelease: false
|
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
78
|
requirements:
|
|
80
79
|
- - "~>"
|
|
81
80
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0
|
|
81
|
+
version: '13.0'
|
|
83
82
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
83
|
+
name: rspec
|
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
|
86
85
|
requirements:
|
|
87
86
|
- - "~>"
|
|
88
87
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
88
|
+
version: '3.11'
|
|
90
89
|
type: :development
|
|
91
90
|
prerelease: false
|
|
92
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
92
|
requirements:
|
|
94
93
|
- - "~>"
|
|
95
94
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
95
|
+
version: '3.11'
|
|
97
96
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
97
|
+
name: standard
|
|
99
98
|
requirement: !ruby/object:Gem::Requirement
|
|
100
99
|
requirements:
|
|
101
100
|
- - "~>"
|
|
102
101
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '1.
|
|
102
|
+
version: '1.53'
|
|
104
103
|
type: :development
|
|
105
104
|
prerelease: false
|
|
106
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
106
|
requirements:
|
|
108
107
|
- - "~>"
|
|
109
108
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '1.
|
|
109
|
+
version: '1.53'
|
|
111
110
|
description: |
|
|
112
111
|
Vizier helps you present the right information to your users. By using policies and configurable
|
|
113
112
|
defaults, it becomes easier to build presenters and be sure that model objects are wrapped in
|
|
@@ -119,10 +118,11 @@ extensions: []
|
|
|
119
118
|
extra_rdoc_files: []
|
|
120
119
|
files:
|
|
121
120
|
- ".envrc"
|
|
121
|
+
- ".github/workflows/test.yml"
|
|
122
122
|
- ".gitignore"
|
|
123
123
|
- ".rspec"
|
|
124
|
-
- ".
|
|
125
|
-
-
|
|
124
|
+
- ".standard.yml"
|
|
125
|
+
- CHANGELOG.md
|
|
126
126
|
- Gemfile
|
|
127
127
|
- LICENSE.md
|
|
128
128
|
- README.md
|
|
@@ -130,6 +130,7 @@ files:
|
|
|
130
130
|
- bin/console
|
|
131
131
|
- bin/rspec
|
|
132
132
|
- bin/setup
|
|
133
|
+
- bin/standardrb
|
|
133
134
|
- lib/vizier.rb
|
|
134
135
|
- lib/vizier/caching_presenter_config.rb
|
|
135
136
|
- lib/vizier/collection_presenter.rb
|
|
@@ -145,7 +146,6 @@ homepage: https://github.com/mlibrary/vizier
|
|
|
145
146
|
licenses:
|
|
146
147
|
- BSD-3-Clause
|
|
147
148
|
metadata: {}
|
|
148
|
-
post_install_message:
|
|
149
149
|
rdoc_options: []
|
|
150
150
|
require_paths:
|
|
151
151
|
- lib
|
|
@@ -153,16 +153,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
153
153
|
requirements:
|
|
154
154
|
- - ">="
|
|
155
155
|
- !ruby/object:Gem::Version
|
|
156
|
-
version:
|
|
156
|
+
version: 3.2.0
|
|
157
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
158
|
requirements:
|
|
159
159
|
- - ">="
|
|
160
160
|
- !ruby/object:Gem::Version
|
|
161
161
|
version: '0'
|
|
162
162
|
requirements: []
|
|
163
|
-
|
|
164
|
-
rubygems_version: 2.6.13
|
|
165
|
-
signing_key:
|
|
163
|
+
rubygems_version: 4.0.3
|
|
166
164
|
specification_version: 4
|
|
167
165
|
summary: Vizier supports building policy-aware presenters for the view layer of applications,
|
|
168
166
|
especially those using Rails.
|
data/.rubocop.yml
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
Rails:
|
|
2
|
-
Enabled: true
|
|
3
|
-
|
|
4
|
-
Rails/Delegate:
|
|
5
|
-
Enabled: false
|
|
6
|
-
|
|
7
|
-
# inherit_gem:
|
|
8
|
-
# rubocop-rails:
|
|
9
|
-
# - config/rails.yml
|
|
10
|
-
|
|
11
|
-
AllCops:
|
|
12
|
-
DisplayCopNames: true
|
|
13
|
-
TargetRubyVersion: 2.4
|
|
14
|
-
Exclude:
|
|
15
|
-
- 'bin/**/*'
|
|
16
|
-
- 'vendor/**/*'
|
|
17
|
-
|
|
18
|
-
Layout/MultilineMethodDefinitionBraceLayout:
|
|
19
|
-
EnforcedStyle: same_line
|
|
20
|
-
|
|
21
|
-
Metrics/LineLength:
|
|
22
|
-
Max: 100
|
|
23
|
-
|
|
24
|
-
Metrics/BlockLength:
|
|
25
|
-
Exclude:
|
|
26
|
-
- '*.gemspec'
|
|
27
|
-
ExcludedMethods: ['describe', 'context']
|
|
28
|
-
|
|
29
|
-
Style/StringLiterals:
|
|
30
|
-
Enabled: false
|