yus 1.0.6 → 1.0.7

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: 58525f574ac756f75145de86797f797080aefad5e3a256b6b641bc7fbfacbe00
4
- data.tar.gz: bd2c67d98ae8cd0444129c6bfe7e26fc7d23fd00c6ebe87aca9762453606c05c
3
+ metadata.gz: 9a4e9d36a220ba81011adc1a2f07d20f4fca9c9b2d12bfc9cc344ea0c0e4829e
4
+ data.tar.gz: f09165485ece1c0e4d2d3650cf95c4cfc462d8bf91f91ace56ca6dfa0eedb12e
5
5
  SHA512:
6
- metadata.gz: cdae72138101be68834d1f14f49ea9d412f78c67005214c12e9dd4abf741d4ac569710be7d588ff49d2c17fb7b9a84f85e427eb1caf86064431991d11302ba26
7
- data.tar.gz: 5c7a3c14112eaa229a1e023b41ed2ef4c2b40b93d2e97ff12999457428dfcb98bf88566e3134fd487c5a85c42ee83c0967a5c64b4fe7302d369bc5bef1e7fdc5
6
+ metadata.gz: 4328617716343bbae7c629c0458e6b8b2c537ec8523c7c00a58564b400fb9a931c5957cd3175a2835bbfd79d79db1c56e33ada38d401b95e624a2c5e113d43f0
7
+ data.tar.gz: 3edb6452809dea43af0d07111bbd7f2a9840041b73eb940b9cac1a393a773507202f39a1542b08877eb7ccf49dabebaba5e2c520b217ff4390171534e47f5410
data/.envrc ADDED
@@ -0,0 +1,3 @@
1
+ source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0="
2
+
3
+ use devenv
@@ -0,0 +1,32 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+ # see https://github.com/ruby/setup-ruby
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ os: [ubuntu-latest]
23
+ ruby: ['3.0', 3.1, 3.2, 3.3, 3.4, 'head']
24
+ runs-on: ${{ matrix.os }}
25
+ steps:
26
+ - uses: actions/checkout@v3
27
+ - uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby }}
30
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
31
+ - name: Run tests via rake test
32
+ run: bundle exec rake test
data/.gitignore CHANGED
@@ -1,3 +1,13 @@
1
1
  .bundle/
2
2
  vendor/
3
3
  pkg/
4
+
5
+ # Devenv
6
+ .devenv*
7
+ devenv.local.nix
8
+
9
+ # direnv
10
+ .direnv
11
+
12
+ # pre-commit
13
+ .pre-commit-config.yaml
data/Gemfile.lock CHANGED
@@ -1,77 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yus (1.0.6)
4
+ yus (1.0.7)
5
5
  deprecated (= 2.0.1)
6
6
  highline
7
+ logger
7
8
  needle
8
9
  odba (>= 1.1.6)
9
10
  rclconf
11
+ ydbd-pg
12
+ ydbi
10
13
 
11
14
  GEM
12
15
  remote: https://rubygems.org/
13
16
  specs:
14
- byebug (11.1.3)
15
- coderay (1.1.3)
17
+ bigdecimal (3.1.9)
16
18
  deprecated (2.0.1)
17
- diff-lcs (1.3)
18
- docile (1.3.2)
19
+ docile (1.4.1)
20
+ drb (2.2.1)
19
21
  flexmock (1.3.3)
20
- highline (2.0.3)
21
- method_source (1.0.0)
22
- minitest (5.14.1)
22
+ highline (3.1.2)
23
+ reline
24
+ io-console (0.8.0)
25
+ logger (1.6.4)
26
+ minitest (5.25.4)
23
27
  needle (1.3.0)
24
- odba (1.1.6)
25
- ydbd-pg (>= 0.5.6)
26
- ydbi (>= 0.5.6)
27
- pg (1.2.3)
28
- power_assert (1.2.0)
29
- pry (0.13.1)
30
- coderay (~> 1.1)
31
- method_source (~> 1.0)
32
- pry-byebug (3.9.0)
33
- byebug (~> 11.0)
34
- pry (~> 0.13.0)
35
- rake (13.0.1)
28
+ odba (1.1.8)
29
+ pg (1.5.9)
30
+ power_assert (2.0.5)
31
+ rake (13.2.1)
36
32
  rclconf (1.0.0)
37
- rspec (3.9.0)
38
- rspec-core (~> 3.9.0)
39
- rspec-expectations (~> 3.9.0)
40
- rspec-mocks (~> 3.9.0)
41
- rspec-core (3.9.2)
42
- rspec-support (~> 3.9.3)
43
- rspec-expectations (3.9.2)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.9.0)
46
- rspec-mocks (3.9.1)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.9.0)
49
- rspec-support (3.9.3)
50
- simplecov (0.18.5)
33
+ reline (0.6.0)
34
+ io-console (~> 0.5)
35
+ simplecov (0.22.0)
51
36
  docile (~> 1.1)
52
37
  simplecov-html (~> 0.11)
53
- simplecov-html (0.12.2)
54
- test-unit (3.3.6)
38
+ simplecov_json_formatter (~> 0.1)
39
+ simplecov-html (0.13.1)
40
+ simplecov_json_formatter (0.1.4)
41
+ test-unit (3.6.7)
55
42
  power_assert
56
- ydbd-pg (0.5.6)
43
+ ydbd-pg (0.6.0)
57
44
  pg
58
- ydbi (= 0.5.6)
59
- ydbi (0.5.6)
45
+ ydbi (= 0.6.0)
46
+ ydbi (0.6.0)
47
+ bigdecimal
60
48
  deprecated (= 2.0.1)
49
+ pg (>= 1.0.0)
61
50
 
62
51
  PLATFORMS
63
52
  ruby
53
+ x86_64-linux
64
54
 
65
55
  DEPENDENCIES
66
56
  bundler
57
+ drb
67
58
  flexmock (~> 1.3.0)
68
59
  minitest
69
- pry-byebug
70
60
  rake
71
- rspec
72
61
  simplecov
73
62
  test-unit
74
63
  yus!
75
64
 
76
65
  BUNDLED WITH
77
- 2.1.4
66
+ 2.5.22
data/History.txt CHANGED
@@ -1,3 +1,12 @@
1
+ === 1.0.7 / 08.01.2025
2
+
3
+ * Added devenv environment for Ruby 3.4 (see https://devenv.sh/)
4
+ * Fixed Rakefile
5
+ * Added minimal Ruby version 3.0 in gemspec
6
+ * (#8) Force yus.yml to be found in /etc/yus
7
+ * changelog_uri to gemspec
8
+ * Fix spelling for default cleaner_interval in bin/yusd
9
+
1
10
  === 1.0.6 / 17.06.2020
2
11
 
3
12
  * Update for Ruby 2.7.1, remove obsolete calls to untaint/SAFE
data/Rakefile CHANGED
@@ -2,10 +2,8 @@
2
2
  # encoding: utf-8
3
3
 
4
4
  require 'bundler/gem_tasks'
5
- require 'rspec/core/rake_task'
6
5
  require 'rake/testtask'
7
6
 
8
- RSpec::Core::RakeTask.new(:spec)
9
7
 
10
8
  # dependencies are now declared in bbmb.gemspec
11
9
  desc 'Offer a gem task like hoe'
@@ -19,8 +17,5 @@ task :test do |t|
19
17
  require 'test/suite'
20
18
  end
21
19
 
22
-
23
- task :spec => :clean
24
-
25
20
  require 'rake/clean'
26
21
  CLEAN.include FileList['pkg/*.gem']
data/bin/yusd CHANGED
@@ -11,13 +11,12 @@ require 'drb/timeridconv'
11
11
  require 'digest/sha2'
12
12
  require 'odba/18_19_loading_compatibility'
13
13
 
14
- default_dir = File.join(ENV['HOME'], '.yus')
14
+ default_dir = File.join('/etc', 'yus')
15
15
  default_config_files = [
16
16
  File.join(default_dir, 'yus.yml'),
17
- '/etc/yus/yus.yml',
18
17
  ]
19
18
  defaults = {
20
- 'cleaning_interval' => 300,
19
+ 'cleaner_interval' => 300,
21
20
  'config' => default_config_files,
22
21
  'db_name' => 'yus',
23
22
  'db_user' => 'yus',
data/data/yus_dump.yml CHANGED
@@ -3,12 +3,12 @@ entities:
3
3
  entity_name: !ruby/object:Yus::Entity
4
4
  name: entity_name
5
5
  valid_until: entity_pass
6
- valid_from: 2020-06-17 09:42:09.633800037 +02:00
6
+ valid_from: 2025-01-08 17:06:06.725487367 +01:00
7
7
  affiliations:
8
8
  - &1 !ruby/object:Yus::Entity
9
9
  name: a_yus_group
10
10
  valid_until: entity_pass
11
- valid_from: 2020-06-17 09:42:09.634001115 +02:00
11
+ valid_from: 2025-01-08 17:06:06.725511873 +01:00
12
12
  affiliations: []
13
13
  privileges:
14
14
  set_password: !ruby/object:Yus::Privilege
@@ -30,7 +30,7 @@ entities:
30
30
  second_name: !ruby/object:Yus::Entity
31
31
  name: second_name
32
32
  valid_until: entity_pass
33
- valid_from: 2020-06-17 09:42:09.633903583 +02:00
33
+ valid_from: 2025-01-08 17:06:06.725501017 +01:00
34
34
  affiliations: []
35
35
  privileges:
36
36
  set_password: !ruby/object:Yus::Privilege
data/devenv.lock ADDED
@@ -0,0 +1,168 @@
1
+ {
2
+ "nodes": {
3
+ "devenv": {
4
+ "locked": {
5
+ "dir": "src/modules",
6
+ "lastModified": 1736273305,
7
+ "owner": "cachix",
8
+ "repo": "devenv",
9
+ "rev": "cc48e044747cef4e4f69897e20a100adf5b716a3",
10
+ "type": "github"
11
+ },
12
+ "original": {
13
+ "dir": "src/modules",
14
+ "owner": "cachix",
15
+ "repo": "devenv",
16
+ "type": "github"
17
+ }
18
+ },
19
+ "flake-compat": {
20
+ "flake": false,
21
+ "locked": {
22
+ "lastModified": 1733328505,
23
+ "owner": "edolstra",
24
+ "repo": "flake-compat",
25
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
26
+ "type": "github"
27
+ },
28
+ "original": {
29
+ "owner": "edolstra",
30
+ "repo": "flake-compat",
31
+ "type": "github"
32
+ }
33
+ },
34
+ "flake-compat_2": {
35
+ "flake": false,
36
+ "locked": {
37
+ "lastModified": 1733328505,
38
+ "owner": "edolstra",
39
+ "repo": "flake-compat",
40
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
41
+ "type": "github"
42
+ },
43
+ "original": {
44
+ "owner": "edolstra",
45
+ "repo": "flake-compat",
46
+ "type": "github"
47
+ }
48
+ },
49
+ "flake-utils": {
50
+ "inputs": {
51
+ "systems": "systems"
52
+ },
53
+ "locked": {
54
+ "lastModified": 1731533236,
55
+ "owner": "numtide",
56
+ "repo": "flake-utils",
57
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
58
+ "type": "github"
59
+ },
60
+ "original": {
61
+ "owner": "numtide",
62
+ "repo": "flake-utils",
63
+ "type": "github"
64
+ }
65
+ },
66
+ "gitignore": {
67
+ "inputs": {
68
+ "nixpkgs": [
69
+ "pre-commit-hooks",
70
+ "nixpkgs"
71
+ ]
72
+ },
73
+ "locked": {
74
+ "lastModified": 1709087332,
75
+ "owner": "hercules-ci",
76
+ "repo": "gitignore.nix",
77
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
78
+ "type": "github"
79
+ },
80
+ "original": {
81
+ "owner": "hercules-ci",
82
+ "repo": "gitignore.nix",
83
+ "type": "github"
84
+ }
85
+ },
86
+ "nixpkgs": {
87
+ "locked": {
88
+ "lastModified": 1736200483,
89
+ "owner": "NixOS",
90
+ "repo": "nixpkgs",
91
+ "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
92
+ "type": "github"
93
+ },
94
+ "original": {
95
+ "owner": "NixOS",
96
+ "ref": "nixos-24.11",
97
+ "repo": "nixpkgs",
98
+ "type": "github"
99
+ }
100
+ },
101
+ "nixpkgs-ruby": {
102
+ "inputs": {
103
+ "flake-compat": "flake-compat",
104
+ "flake-utils": "flake-utils",
105
+ "nixpkgs": [
106
+ "nixpkgs"
107
+ ]
108
+ },
109
+ "locked": {
110
+ "lastModified": 1735192621,
111
+ "owner": "bobvanderlinden",
112
+ "repo": "nixpkgs-ruby",
113
+ "rev": "602c528c8228f231f912c6d117703a1700464202",
114
+ "type": "github"
115
+ },
116
+ "original": {
117
+ "owner": "bobvanderlinden",
118
+ "repo": "nixpkgs-ruby",
119
+ "type": "github"
120
+ }
121
+ },
122
+ "pre-commit-hooks": {
123
+ "inputs": {
124
+ "flake-compat": "flake-compat_2",
125
+ "gitignore": "gitignore",
126
+ "nixpkgs": [
127
+ "nixpkgs"
128
+ ]
129
+ },
130
+ "locked": {
131
+ "lastModified": 1735882644,
132
+ "owner": "cachix",
133
+ "repo": "pre-commit-hooks.nix",
134
+ "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
135
+ "type": "github"
136
+ },
137
+ "original": {
138
+ "owner": "cachix",
139
+ "repo": "pre-commit-hooks.nix",
140
+ "type": "github"
141
+ }
142
+ },
143
+ "root": {
144
+ "inputs": {
145
+ "devenv": "devenv",
146
+ "nixpkgs": "nixpkgs",
147
+ "nixpkgs-ruby": "nixpkgs-ruby",
148
+ "pre-commit-hooks": "pre-commit-hooks"
149
+ }
150
+ },
151
+ "systems": {
152
+ "locked": {
153
+ "lastModified": 1681028828,
154
+ "owner": "nix-systems",
155
+ "repo": "default",
156
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
157
+ "type": "github"
158
+ },
159
+ "original": {
160
+ "owner": "nix-systems",
161
+ "repo": "default",
162
+ "type": "github"
163
+ }
164
+ }
165
+ },
166
+ "root": "root",
167
+ "version": 7
168
+ }
data/devenv.nix ADDED
@@ -0,0 +1,50 @@
1
+ # Please look at the file [oddb.org/devenv.README.md](https://github.com/zdavatz/oddb.org/blob/ruby-3.2/devenv.README.md)
2
+ { pkgs, ... }:
3
+
4
+ {
5
+ env.GREET = "devenv";
6
+ packages = [ pkgs.git pkgs.libyaml ]; # after I added pkgs.openssl here, I could no longer call devenup because of a glibc mismatch
7
+ # therefore I ${pkgs.openssl}/bin/openssl in the enterShell
8
+
9
+ enterShell = ''
10
+ echo This is the devenv shell for oddb2xml
11
+ git --version
12
+ ruby --version
13
+ psql --version
14
+ OLD_YUS_CRT=`git status --porcelain data;`
15
+ if [[ -z $OLD_YUS_CRT ]]; then
16
+ echo Must replace old yus certificat from 2006
17
+ cd data
18
+ pwd
19
+ ${pkgs.openssl}/bin/openssl req -nodes -new -x509 -key yus.key -out yus.crt -subj "/C=CH/ST=Zurich/L=Zurich/O=ywesee GmbH/OU=IT Department CI/CN=ywesee.com"
20
+ else
21
+ echo Found changed data/yus.key
22
+ fi
23
+ bundle install
24
+ '';
25
+
26
+ languages.ruby.enable = true;
27
+ languages.ruby.version = "3.4";
28
+ services.postgres = {
29
+ enable = true;
30
+ package = pkgs.postgresql_16;
31
+ listen_addresses = "0.0.0.0";
32
+ port = 5435;
33
+
34
+ initialDatabases = [
35
+ { name = "yus"; }
36
+ ];
37
+
38
+ initdbArgs =
39
+ [
40
+ "--locale=C"
41
+ "--encoding=UTF8"
42
+ ];
43
+
44
+ initialScript = ''
45
+ create role yus superuser login password null;
46
+ \connect yus;
47
+ \i ../22:20-postgresql_database-yus-backup
48
+ '';
49
+ };
50
+ }
data/devenv.yaml ADDED
@@ -0,0 +1,8 @@
1
+ inputs:
2
+ nixpkgs:
3
+ url: github:NixOS/nixpkgs/nixos-24.11
4
+ nixpkgs-ruby:
5
+ url: github:bobvanderlinden/nixpkgs-ruby
6
+ inputs:
7
+ nixpkgs:
8
+ follows: nixpkgs
data/lib/yus/helpers.rb CHANGED
@@ -39,10 +39,9 @@ module Yus
39
39
  EOF
40
40
  exit
41
41
  end
42
- default_dir = File.join(ENV['HOME'], '.yus')
42
+ default_dir = '/etc/yus'
43
43
  default_config_files = [
44
44
  File.join(default_dir, 'yus.yml'),
45
- '/etc/yus/yus.yml',
46
45
  ]
47
46
  defaults = {
48
47
  'config' => default_config_files,
data/lib/yus/server.rb CHANGED
File without changes
data/lib/yus/session.rb CHANGED
File without changes
data/lib/yus/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yus
2
- VERSION = '1.0.6'
2
+ VERSION = '1.0.7'
3
3
  end
data/readme.md CHANGED
@@ -2,20 +2,22 @@
2
2
 
3
3
  * https://github.com/zdavatz/yus
4
4
 
5
- ## DESCRIPTION:
5
+ ## Description:
6
6
 
7
7
  ywesee user server. Works with the ywesee webframework and all the ywesee
8
8
  software packages.
9
9
 
10
- ## FEATURES/PROBLEMS:
10
+ ## Features/Problems:
11
11
 
12
12
  * Only runs on Ruby >= 2.1.0
13
+ * runs fine with Ruby 3.1.1
13
14
 
14
- ## INSTALL:
15
+ ## Install:
15
16
 
16
- * sudo gem install yus
17
+ * `sudo gem install yus`
18
+ * `bundle install --without development`
17
19
 
18
- ## DEVELOPERS:
20
+ ## Developers:
19
21
 
20
22
  * Masaomi Hatakeyama
21
23
  * Zeno Davatz
data/yus.gemspec CHANGED
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.platform = Gem::Platform::RUBY
14
14
  spec.license = "GPLv3"
15
15
  spec.homepage = "https://github.com/zdavatz/yus/"
16
+ spec.metadata["changelog_uri"] = spec.homepage + "/blob/master/History.txt"
17
+ spec.required_ruby_version = '>= 3.0'
16
18
 
17
19
  spec.metadata['allowed_push_host'] = 'https://rubygems.org' if RUBY_VERSION.to_f > 2.0
18
20
 
@@ -21,19 +23,19 @@ Gem::Specification.new do |spec|
21
23
  spec.require_paths = ["lib"]
22
24
 
23
25
  spec.add_dependency "needle"
26
+ spec.add_dependency "ydbi"
27
+ spec.add_dependency "ydbd-pg"
24
28
  spec.add_dependency 'rclconf'
29
+ spec.add_dependency 'logger'
25
30
  spec.add_dependency 'odba', '>= 1.1.6'
26
31
 
27
32
  spec.add_runtime_dependency 'highline'
28
33
  spec.add_dependency 'deprecated', '2.0.1'
34
+ spec.add_development_dependency "drb"
29
35
  spec.add_development_dependency "test-unit"
30
36
  spec.add_development_dependency "minitest"
31
- if RUBY_VERSION.to_f > 2.0
32
- spec.add_development_dependency "pry-byebug"
33
- end
34
37
  spec.add_development_dependency "bundler"
35
38
  spec.add_development_dependency "flexmock", '~>1.3.0'
36
39
  spec.add_development_dependency "rake"
37
- spec.add_development_dependency "rspec"
38
40
  spec.add_development_dependency "simplecov"
39
41
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
10
+ date: 1980-01-01 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: needle
@@ -24,6 +23,34 @@ dependencies:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: ydbi
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: ydbd-pg
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
27
54
  - !ruby/object:Gem::Dependency
28
55
  name: rclconf
29
56
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +65,20 @@ dependencies:
38
65
  - - ">="
39
66
  - !ruby/object:Gem::Version
40
67
  version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: logger
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
41
82
  - !ruby/object:Gem::Dependency
42
83
  name: odba
43
84
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +122,7 @@ dependencies:
81
122
  - !ruby/object:Gem::Version
82
123
  version: 2.0.1
83
124
  - !ruby/object:Gem::Dependency
84
- name: test-unit
125
+ name: drb
85
126
  requirement: !ruby/object:Gem::Requirement
86
127
  requirements:
87
128
  - - ">="
@@ -95,7 +136,7 @@ dependencies:
95
136
  - !ruby/object:Gem::Version
96
137
  version: '0'
97
138
  - !ruby/object:Gem::Dependency
98
- name: minitest
139
+ name: test-unit
99
140
  requirement: !ruby/object:Gem::Requirement
100
141
  requirements:
101
142
  - - ">="
@@ -109,7 +150,7 @@ dependencies:
109
150
  - !ruby/object:Gem::Version
110
151
  version: '0'
111
152
  - !ruby/object:Gem::Dependency
112
- name: pry-byebug
153
+ name: minitest
113
154
  requirement: !ruby/object:Gem::Requirement
114
155
  requirements:
115
156
  - - ">="
@@ -164,20 +205,6 @@ dependencies:
164
205
  - - ">="
165
206
  - !ruby/object:Gem::Version
166
207
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: rspec
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
208
  - !ruby/object:Gem::Dependency
182
209
  name: simplecov
183
210
  requirement: !ruby/object:Gem::Requirement
@@ -205,9 +232,9 @@ executables:
205
232
  extensions: []
206
233
  extra_rdoc_files: []
207
234
  files:
235
+ - ".envrc"
236
+ - ".github/workflows/ruby.yml"
208
237
  - ".gitignore"
209
- - ".ruby-version"
210
- - ".travis.yml"
211
238
  - 0001-Added-support-for-running-yus-via-docker.patch
212
239
  - Gemfile
213
240
  - Gemfile.lock
@@ -226,6 +253,9 @@ files:
226
253
  - data/yus.crt
227
254
  - data/yus.key
228
255
  - data/yus_dump.yml
256
+ - devenv.lock
257
+ - devenv.nix
258
+ - devenv.yaml
229
259
  - install.rb
230
260
  - lib/data/yus_dump.yml
231
261
  - lib/yus/entity.rb
@@ -240,13 +270,12 @@ files:
240
270
  - second.env
241
271
  - sha256.rb
242
272
  - yus.gemspec
243
- - yus_migrate_to_utf_8
244
273
  homepage: https://github.com/zdavatz/yus/
245
274
  licenses:
246
275
  - GPLv3
247
276
  metadata:
277
+ changelog_uri: https://github.com/zdavatz/yus//blob/master/History.txt
248
278
  allowed_push_host: https://rubygems.org
249
- post_install_message:
250
279
  rdoc_options: []
251
280
  require_paths:
252
281
  - lib
@@ -254,15 +283,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
254
283
  requirements:
255
284
  - - ">="
256
285
  - !ruby/object:Gem::Version
257
- version: '0'
286
+ version: '3.0'
258
287
  required_rubygems_version: !ruby/object:Gem::Requirement
259
288
  requirements:
260
289
  - - ">="
261
290
  - !ruby/object:Gem::Version
262
291
  version: '0'
263
292
  requirements: []
264
- rubygems_version: 3.1.2
265
- signing_key:
293
+ rubygems_version: 3.6.2
266
294
  specification_version: 4
267
295
  summary: ywesee user server
268
296
  test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.5.0
data/.travis.yml DELETED
@@ -1,20 +0,0 @@
1
- language: ruby
2
- before_install:
3
- - gem install bundler
4
-
5
- bundler_args: --without debugger
6
-
7
- script:
8
- - bundle exec rake test
9
-
10
- notifications:
11
- email:
12
- - ngiger@ywesee.com
13
- rvm:
14
- - 2.7.1
15
- - 2.5.0
16
- - ruby-head
17
-
18
- matrix:
19
- allow_failures:
20
- - rvm: ruby-head
data/yus_migrate_to_utf_8 DELETED
@@ -1,214 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #encoding: ASCII-8BIT
3
- require 'fileutils'
4
- require 'syck'
5
-
6
- here = File.expand_path(File.join(File.dirname(File.dirname(__FILE__)), 'lib'))
7
- $: << here
8
- require 'logger'
9
- require 'needle'
10
- require 'odba/id_server'
11
- require 'rrba/server'
12
- require 'yus/entity'
13
- require 'yus/privilege'
14
- require 'odba/connection_pool'
15
- require 'odba/drbwrapper'
16
- require 'odba/storage'
17
- require 'rclconf'
18
- require 'odba/18_19_loading_compatibility'
19
-
20
- module Yus
21
- attr_reader :config
22
-
23
- def self.load_config
24
- default_dir = File.join(ENV['HOME'], '.yus')
25
- default_config_files = [
26
- File.join(default_dir, 'yus.yml'),
27
- '/etc/yus/yus.yml',
28
- ]
29
- defaults = {
30
- 'cleaning_interval' => 300,
31
- 'config' => default_config_files,
32
- 'db_name' => 'yus',
33
- 'db_user' => 'yus',
34
- 'db_auth' => 'yus',
35
- 'db_backend' => :psql,
36
- 'digest' => Digest::SHA256,
37
- 'log_file' => STDERR,
38
- 'log_level' => 'INFO',
39
- 'persistence' => 'odba',
40
- 'root_name' => 'admin',
41
- 'root_pass' => nil,
42
- 'server_url' => 'drbssl://localhost:9997',
43
- 'session_timeout' => 300,
44
- 'ssl_key' => File.expand_path('../data/yus.key',
45
- File.dirname(__FILE__)),
46
- 'ssl_cert' => File.expand_path('../data/yus.crt',
47
- File.dirname(__FILE__)),
48
- 'token_lifetime' => 30,
49
- 'yus_dir' => default_dir,
50
- }
51
-
52
- @config = RCLConf::RCLConf.new(ARGV, defaults)
53
- @config.load(@config.config)
54
-
55
- require File.join('yus', 'persistence', @config.persistence)
56
- end
57
-
58
- class Server
59
- # http://stackoverflow.com/questions/2982677/ruby-1-9-invalid-byte-sequence-in-utf-8
60
- # https://robots.thoughtbot.com/fight-back-utf-8-invalid-byte-sequences
61
- def sanitize_utf8(string)
62
- return nil if string.nil?
63
- # return string.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
64
- return string if string.valid_encoding?
65
- if string.force_encoding(Encoding::ISO_8859_1).valid_encoding?
66
- string.force_encoding(Encoding::ISO_8859_1).clone.encode(Encoding::UTF_8)
67
- else
68
- string.chars.select { |c| c.valid_encoding? }.join
69
- end
70
- end
71
- def _migrate_to_utf8 queue, table, opts={}
72
- while obj = queue.shift do
73
- if obj.is_a?(Numeric)
74
- begin
75
- obj = ODBA.cache.fetch obj
76
- rescue ODBA::OdbaError
77
- return
78
- end
79
- else
80
- obj = obj.odba_instance
81
- end
82
- puts " #{__LINE__}: Migrating #{obj.class} #{obj.to_s}" if $VERBOSE
83
- return unless obj
84
- _migrate_obj_to_utf8 obj, queue, table, opts
85
- obj.odba_store unless obj.odba_unsaved?
86
- end
87
- end
88
- def _migrate_obj_to_utf8 obj, queue, table, opts={}
89
- obj.instance_variables.each do |name|
90
- child = obj.instance_variable_get name
91
- if child.respond_to?(:odba_unsaved?) && !child.odba_unsaved? \
92
- && obj.respond_to?(:odba_serializables) \
93
- && obj.odba_serializables.include?(name)
94
- child.instance_variable_set '@odba_persistent', nil
95
- end
96
- child = _migrate_child_to_utf8 child, queue, table, opts
97
- obj.instance_variable_set name, child
98
- end
99
- if obj.is_a?(Array)
100
- obj.collect! do |child|
101
- _migrate_child_to_utf8 child, queue, table, opts
102
- end
103
- end
104
- if obj.is_a?(Hash)
105
- obj.dup.each do |key, child|
106
- obj.store key, _migrate_child_to_utf8(child, queue, table, opts)
107
- end
108
- end
109
- obj
110
- end
111
- def _migrate_child_to_utf8 child, queue, table, opts={}
112
- @serialized ||= {}
113
- case child
114
- when ODBA::Persistable, ODBA::Stub
115
- if child = child.odba_instance
116
- if child.odba_unsaved?
117
- _migrate_to_utf8 [child], table, opts
118
- elsif opts[:all]
119
- odba_id = child.odba_id
120
- unless table[odba_id]
121
- table.store odba_id, true
122
- queue.push odba_id
123
- end
124
- end
125
- end
126
- when String
127
- old = child.encoding
128
- orig = child.clone
129
- if ( child.encoding != Encoding::UTF_8 && child.force_encoding(Encoding::ISO_8859_1).valid_encoding? ) ||
130
- ( child.encoding == Encoding::UTF_8 && !child.valid_encoding? )
131
- child = child.force_encoding(Encoding::UTF_8)
132
- puts "force_encoding from ISO_8859_1 #{old}. Now #{child}" unless child.to_i > 0
133
- end
134
- case child.encoding.to_s
135
- when /ASCII-8BIT|US-ASCII/
136
- # nothing todo
137
- when /UTF-8/
138
- puts "UTF-8: for #{child.to_s}" if $VERBOSE
139
- child = sanitize_utf8(child)
140
- when /ISO-8859-1/i
141
- child = sanitize_utf8(child)
142
- # child = child.force_encoding('UTF-8')
143
- puts "force_encoding from #{old}. is now #{child}"
144
- else
145
- puts "Unhandeled encoding #{child.encoding}"
146
- # child = child.force_encoding
147
- end
148
- when
149
- Yus::Entity,
150
- Yus::Privilege
151
- child = _migrate_obj_to_utf8 child, queue, table, opts
152
- when Float, Fixnum, TrueClass, FalseClass, NilClass,
153
- Symbol, Time, Date, DateTime
154
- # do nothing
155
- else
156
- @ignored ||= {}
157
- unless @ignored[child.class]
158
- @ignored.store child.class, true
159
- warn "ignoring #{child.class}"
160
- end
161
- end
162
- child
163
- rescue SystemStackError
164
- puts child.class
165
- raise
166
- end
167
- end
168
- class Entity
169
- include ODBA::Persistable
170
- class << self
171
- alias :all :odba_extent
172
- end
173
- end
174
- class Privilege
175
- include ODBA::Persistable
176
- class << self
177
- alias :all :odba_extent
178
- end
179
- end
180
- def self.migrate_to_uf_8
181
- self.load_config
182
- @logger = Logger.new("/tmp/#{File.basename(__FILE__)}.log")
183
- @logger.level = Logger::DEBUG
184
- @logger.info "#{Time.now}: Calling #{File.basename(__FILE__)}"
185
-
186
- puts "storage #{@config.db_name} name #{@config.db_user} auth #{@config.db_auth} pass #{@config.db_pass} storage is #{@config.persistence}"
187
- require 'odba/connection_pool'
188
- require 'odba/drbwrapper'
189
- DRb.install_id_conv ODBA::DRbIdConv.new
190
- ODBA.storage.dbi = ODBA::ConnectionPool.new("DBI:Pg:#{@config.db_name}", @config.db_user, @config.db_auth)
191
- ODBA.cache.setup
192
- @persistence = Yus::Persistence::Odba.new
193
- ODBA.cache.setup
194
-
195
- DRb.install_id_conv ODBA::DRbIdConv.new
196
- @server = Yus::Server.new(@persistence, @config, @logger)
197
- @server.extend(DRbUndumped)
198
- {
199
- :entitites => Yus::Entity.odba_extent,
200
- :privileges => Yus::Privilege.odba_extent,
201
- }.each do |name, to_migrate|
202
- msg = "#{Time.now}: Start migrating #{to_migrate.size} #{name}"
203
- @logger.info msg
204
- puts msg
205
- @server._migrate_to_utf8(to_migrate, {})
206
- end
207
- puts "#{Time.now}: Finished #{File.basename(__FILE__)}"
208
- rescue Exception => error
209
- @logger.error('fatal') { error } if @logger
210
- raise
211
- end
212
- end
213
-
214
- Yus.migrate_to_uf_8