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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7ae1adcb210a11987c89af85c6056d14f61ac9b7
4
- data.tar.gz: a6ee77ad5cabd5e9c3cecea6aca48eb0e640e3b9
2
+ SHA256:
3
+ metadata.gz: d624cdcd9450f0b31d28962960167643feb2d45671e6a784c3959468bff5acb8
4
+ data.tar.gz: edc23606a3a4b36a65f231ac867e59f4fcefa71da281b055f8f561919adf5012
5
5
  SHA512:
6
- metadata.gz: db066fec049d40e28ad4bf0e60231175220e7855df95f3e7998b019e62bc27ec8cf225d72fa1268d0d855331ede97cb856378bb25bebeb79deefa6bad351e300
7
- data.tar.gz: e4139ee987a2a38ec94baea80a9683bd2d8a7911af9847c97badcf6f967dd93c180bcebe3bb4ec25fefcd326390ad798968265eb0a2b933855df93e16ec3d256
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
@@ -0,0 +1,5 @@
1
+ # 0.1.1 - 2022-02-15
2
+
3
+ - Switch from RuboCop to Standard Ruby
4
+ - Support Ruby 2.7-3.1 with `delegate` require
5
+ - Update all dependencies in gemspec
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
- [![Build Status](https://travis-ci.org/mlibrary/vizier.svg?branch=master)](https://travis-ci.org/mlibrary/vizier?branch=master)
2
- [![Coverage Status](https://coveralls.io/repos/github/mlibrary/vizier/badge.svg?branch=master)](https://coveralls.io/github/mlibrary/vizier?branch=master)
1
+ [![Tests](https://github.com/mlibrary/vizier/actions/workflows/test.yml/badge.svg)](https://github.com/mlibrary/vizier/actions/workflows/test.yml)
2
+ [![Coverage Status](https://coveralls.io/repos/github/mlibrary/keycard/badge.svg?branch=main)](https://coveralls.io/github/mlibrary/vizier?branch=main)
3
+ [![User Docs](https://img.shields.io/badge/user_docs-readthedocs-blue.svg)](https://vizier.readthedocs.io/en/latest)
4
+ [![API Docs](https://img.shields.io/badge/API_docs-rubydoc.info-blue.svg)](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")
@@ -12,7 +12,7 @@ module Vizier
12
12
 
13
13
  def initialize(policy, view, presenter_factory: PresenterFactory.new)
14
14
  @policy = policy
15
- @view = view
15
+ @view = view
16
16
  @presenter_factory = presenter_factory
17
17
  end
18
18
 
@@ -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 = type.to_s
11
+ @type_name = type.to_s
12
12
  @presenter_name = presenter.to_s
13
- @policy_name = policy.to_s
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
- presenter_map = {},
14
- config_type: PresenterConfig,
15
- default_config: DefaultPresenterConfig.new(config_type))
16
-
17
- @config_type = 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|
@@ -8,7 +8,7 @@ module Vizier
8
8
  attr_reader :user, :resource
9
9
 
10
10
  def initialize(user, resource)
11
- @user = user
11
+ @user = user
12
12
  @resource = resource
13
13
  end
14
14
 
@@ -12,7 +12,7 @@ module Vizier
12
12
 
13
13
  def initialize(policy, view, presenter_factory: PresenterFactory.new)
14
14
  @policy = policy
15
- @view = view
15
+ @view = view
16
16
  @presenter_factory = presenter_factory
17
17
  __setobj__ policy.resource
18
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Vizier
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/vizier.rb CHANGED
@@ -1,19 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'vizier/version'
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 'vizier/null_presenter'
11
- require 'vizier/read_only_policy'
11
+ require "vizier/null_presenter"
12
+ require "vizier/read_only_policy"
12
13
 
13
- require 'vizier/presenter_config'
14
- require 'vizier/caching_presenter_config'
15
- require 'vizier/default_presenter_config'
14
+ require "vizier/presenter_config"
15
+ require "vizier/caching_presenter_config"
16
+ require "vizier/default_presenter_config"
16
17
 
17
- require 'vizier/collection_presenter'
18
- require 'vizier/resource_presenter'
19
- require 'vizier/presenter_factory'
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 = "vizier"
8
+ spec.name = "vizier"
9
9
  spec.version = Vizier::VERSION
10
10
  spec.authors = ["Noah Botimer"]
11
- spec.email = ["botimer@umich.edu"]
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 = "exe"
31
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
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.add_development_dependency "bundler", "~> 1.16"
35
- spec.add_development_dependency "coveralls", "~> 0.8"
36
- spec.add_development_dependency "rake", "~> 10.0"
37
- spec.add_development_dependency "rspec", "~> 3.0"
38
- spec.add_development_dependency "rubocop", "~> 0.52"
39
- spec.add_development_dependency "rubocop-rails", "~> 1.1"
40
- spec.add_development_dependency "rubocop-rspec", "~> 1.16"
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.1.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: 2018-03-05 00:00:00.000000000 Z
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: '1.16'
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: '1.16'
25
+ version: '0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: coveralls
27
+ name: ostruct
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0.8'
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.8'
39
+ version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: rake
41
+ name: simplecov
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - "~>"
44
+ - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '10.0'
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: '10.0'
53
+ version: '0'
55
54
  - !ruby/object:Gem::Dependency
56
- name: rspec
55
+ name: simplecov-lcov
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "~>"
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '3.0'
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: '3.0'
67
+ version: '0'
69
68
  - !ruby/object:Gem::Dependency
70
- name: rubocop
69
+ name: rake
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: '0.52'
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.52'
81
+ version: '13.0'
83
82
  - !ruby/object:Gem::Dependency
84
- name: rubocop-rails
83
+ name: rspec
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: '1.1'
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: '1.1'
95
+ version: '3.11'
97
96
  - !ruby/object:Gem::Dependency
98
- name: rubocop-rspec
97
+ name: standard
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - "~>"
102
101
  - !ruby/object:Gem::Version
103
- version: '1.16'
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.16'
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
- - ".rubocop.yml"
125
- - ".travis.yml"
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: '0'
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
- rubyforge_project:
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
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.0