yaml 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/push_gem.yml +51 -0
- data/.github/workflows/test.yml +12 -2
- data/{LICENSE.txt → BSDL} +3 -3
- data/COPYING +56 -0
- data/Gemfile +3 -1
- data/README.md +1 -1
- data/lib/yaml/dbm.rb +23 -8
- data/lib/yaml/store.rb +16 -4
- data/lib/yaml.rb +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dcfdb3cb480354da7ad672a9a0986ad713a5c32557eb90d23f1368bc6981191
|
4
|
+
data.tar.gz: ae62a49d7547d21e5e2976a092d301f20a8855756e42dfc6ec4abd77c61708d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee7b7680940c7928bea5cb030e2f15f4d374346d76bcc61fe6dfb16e3a8320458472be5a431cc51720d4e930c97945e8bf963a418aa8c1c89315b527db8bf821
|
7
|
+
data.tar.gz: ba744ec72c51fd63f80e8345e59ff6bf3ef73dae67674908db8650c0235e72f448403a8a623620ed4433aa0dbe44f321867c37d98949ce05c8926cc7457e4453
|
@@ -0,0 +1,51 @@
|
|
1
|
+
name: Publish gem to rubygems.org
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- 'v*'
|
7
|
+
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
push:
|
13
|
+
if: github.repository == 'ruby/yaml'
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
|
16
|
+
environment:
|
17
|
+
name: rubygems.org
|
18
|
+
url: https://rubygems.org/gems/yaml
|
19
|
+
|
20
|
+
permissions:
|
21
|
+
contents: write
|
22
|
+
id-token: write
|
23
|
+
|
24
|
+
steps:
|
25
|
+
- name: Harden Runner
|
26
|
+
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
|
27
|
+
with:
|
28
|
+
egress-policy: audit
|
29
|
+
|
30
|
+
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
|
31
|
+
|
32
|
+
- name: Install system dependencies
|
33
|
+
run: |
|
34
|
+
sudo apt-get update
|
35
|
+
sudo apt-get install -y libdb-dev
|
36
|
+
|
37
|
+
- name: Set up Ruby
|
38
|
+
uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
|
39
|
+
with:
|
40
|
+
bundler-cache: true
|
41
|
+
ruby-version: ruby
|
42
|
+
|
43
|
+
- name: Publish to RubyGems
|
44
|
+
uses: rubygems/release-gem@612653d273a73bdae1df8453e090060bb4db5f31 # v1
|
45
|
+
|
46
|
+
- name: Create GitHub release
|
47
|
+
run: |
|
48
|
+
tag_name="$(git describe --tags --abbrev=0)"
|
49
|
+
gh release create "${tag_name}" --verify-tag --generate-notes
|
50
|
+
env:
|
51
|
+
GITHUB_TOKEN: ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}
|
data/.github/workflows/test.yml
CHANGED
@@ -16,14 +16,24 @@ jobs:
|
|
16
16
|
matrix:
|
17
17
|
ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
|
18
18
|
os: [ ubuntu-latest, macos-latest ]
|
19
|
+
exclude:
|
20
|
+
- os: macos-latest
|
21
|
+
ruby: 2.4
|
22
|
+
- os: macos-latest
|
23
|
+
ruby: 2.5
|
19
24
|
runs-on: ${{ matrix.os }}
|
20
25
|
steps:
|
21
|
-
- uses: actions/checkout@v4.
|
26
|
+
- uses: actions/checkout@v4.2.2
|
22
27
|
- name: Set up Ruby
|
23
28
|
uses: ruby/setup-ruby@v1
|
24
29
|
with:
|
25
30
|
ruby-version: ${{ matrix.ruby }}
|
31
|
+
- name: Install system dependencies
|
32
|
+
run: |
|
33
|
+
sudo apt-get update
|
34
|
+
sudo apt-get install -y libdb-dev
|
35
|
+
if: matrix.os == 'ubuntu-latest'
|
26
36
|
- name: Install dependencies
|
27
37
|
run: bundle install --jobs 4 --retry 3
|
28
38
|
- name: Run test
|
29
|
-
run:
|
39
|
+
run: rake test
|
data/{LICENSE.txt → BSDL}
RENAMED
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
|
|
4
4
|
modification, are permitted provided that the following conditions
|
5
5
|
are met:
|
6
6
|
1. Redistributions of source code must retain the above copyright
|
7
|
-
notice, this list of conditions and the following disclaimer.
|
7
|
+
notice, this list of conditions and the following disclaimer.
|
8
8
|
2. Redistributions in binary form must reproduce the above copyright
|
9
|
-
notice, this list of conditions and the following disclaimer in the
|
10
|
-
documentation and/or other materials provided with the distribution.
|
9
|
+
notice, this list of conditions and the following disclaimer in the
|
10
|
+
documentation and/or other materials provided with the distribution.
|
11
11
|
|
12
12
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
13
13
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
data/COPYING
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the
|
3
|
+
2-clause BSDL (see the file BSDL), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a. place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b. use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c. give non-standard binaries non-standard names, with
|
21
|
+
instructions on where to get the original software distribution.
|
22
|
+
|
23
|
+
d. make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or binary form,
|
26
|
+
provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a. distribute the binaries and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b. accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c. give non-standard binaries non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d. make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under these terms.
|
43
|
+
|
44
|
+
For the list of those files and their copying conditions, see the
|
45
|
+
file LEGAL.
|
46
|
+
|
47
|
+
5. The scripts and library files supplied as input to or produced as
|
48
|
+
output from the software do not automatically fall under the
|
49
|
+
copyright of the software, but belong to whomever generated them,
|
50
|
+
and may be sold commercially, and may be aggregated with this
|
51
|
+
software.
|
52
|
+
|
53
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
+
PURPOSE.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
This module provides a Ruby interface for data serialization in YAML format.
|
4
4
|
|
5
5
|
The `YAML` module is an alias for
|
6
|
-
[Psych](https://ruby-doc.org/stdlib/
|
6
|
+
[Psych](https://ruby-doc.org/stdlib/exts/psych/Psych.html),
|
7
7
|
the `YAML` engine for Ruby.
|
8
8
|
|
9
9
|
## Installation
|
data/lib/yaml/dbm.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
require 'yaml'
|
3
|
-
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'dbm'
|
6
|
+
rescue LoadError
|
7
|
+
end
|
4
8
|
|
5
9
|
module YAML
|
6
10
|
|
@@ -16,7 +20,6 @@ module YAML
|
|
16
20
|
#
|
17
21
|
# See the documentation for ::DBM and ::YAML for more information.
|
18
22
|
class DBM < ::DBM
|
19
|
-
VERSION = "0.1" # :nodoc:
|
20
23
|
|
21
24
|
# :call-seq:
|
22
25
|
# ydbm[key] -> value
|
@@ -56,7 +59,13 @@ class DBM < ::DBM
|
|
56
59
|
def fetch( keystr, ifnone = nil )
|
57
60
|
begin
|
58
61
|
val = super( keystr )
|
59
|
-
|
62
|
+
if String === val
|
63
|
+
if YAML.respond_to?(:safe_load)
|
64
|
+
return YAML.safe_load( val )
|
65
|
+
else
|
66
|
+
return YAML.load( val )
|
67
|
+
end
|
68
|
+
end
|
60
69
|
rescue IndexError
|
61
70
|
end
|
62
71
|
if block_given?
|
@@ -102,7 +111,11 @@ class DBM < ::DBM
|
|
102
111
|
def delete( key )
|
103
112
|
v = super( key )
|
104
113
|
if String === v
|
105
|
-
|
114
|
+
if YAML.respond_to?(:safe_load)
|
115
|
+
v = YAML.safe_load( v )
|
116
|
+
else
|
117
|
+
v = YAML.load( v )
|
118
|
+
end
|
106
119
|
end
|
107
120
|
v
|
108
121
|
end
|
@@ -149,7 +162,7 @@ class DBM < ::DBM
|
|
149
162
|
#
|
150
163
|
# Returns +self+.
|
151
164
|
def each_value # :yields: value
|
152
|
-
super { |v| yield YAML.load( v ) }
|
165
|
+
super { |v| yield YAML.respond_to?(:safe_load) ? YAML.safe_load( v ) : YAML.load( v ) }
|
153
166
|
self
|
154
167
|
end
|
155
168
|
|
@@ -158,7 +171,7 @@ class DBM < ::DBM
|
|
158
171
|
#
|
159
172
|
# Returns an array of values from the database.
|
160
173
|
def values
|
161
|
-
super.collect { |v| YAML.load( v ) }
|
174
|
+
super.collect { |v| YAML.respond_to?(:safe_load) ? YAML.safe_load( v ) : YAML.load( v ) }
|
162
175
|
end
|
163
176
|
|
164
177
|
# :call-seq:
|
@@ -204,7 +217,9 @@ class DBM < ::DBM
|
|
204
217
|
# The order in which values are removed/returned is not guaranteed.
|
205
218
|
def shift
|
206
219
|
a = super
|
207
|
-
|
220
|
+
if a
|
221
|
+
a[1] = YAML.respond_to?(:safe_load) ? YAML.safe_load( a[1] ) : YAML.load( a[1] )
|
222
|
+
end
|
208
223
|
a
|
209
224
|
end
|
210
225
|
|
@@ -277,4 +292,4 @@ class DBM < ::DBM
|
|
277
292
|
alias :each :each_pair
|
278
293
|
end
|
279
294
|
|
280
|
-
end
|
295
|
+
end if defined?(DBM)
|
data/lib/yaml/store.rb
CHANGED
@@ -3,7 +3,11 @@
|
|
3
3
|
# YAML::Store
|
4
4
|
#
|
5
5
|
require 'yaml'
|
6
|
-
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'pstore'
|
9
|
+
rescue LoadError
|
10
|
+
end
|
7
11
|
|
8
12
|
# YAML::Store provides the same functionality as PStore, except it uses YAML
|
9
13
|
# to dump objects instead of Marshal.
|
@@ -65,8 +69,16 @@ class YAML::Store < PStore
|
|
65
69
|
end
|
66
70
|
|
67
71
|
def load(content)
|
68
|
-
table = YAML.respond_to?(:
|
69
|
-
|
72
|
+
table = if YAML.respond_to?(:safe_load)
|
73
|
+
if Psych::VERSION >= "3.1"
|
74
|
+
YAML.safe_load(content, permitted_classes: [Symbol])
|
75
|
+
else
|
76
|
+
YAML.safe_load(content, [Symbol])
|
77
|
+
end
|
78
|
+
else
|
79
|
+
YAML.load(content)
|
80
|
+
end
|
81
|
+
if table == false || table == nil
|
70
82
|
{}
|
71
83
|
else
|
72
84
|
table
|
@@ -83,4 +95,4 @@ class YAML::Store < PStore
|
|
83
95
|
def empty_marshal_checksum
|
84
96
|
CHECKSUM_ALGO.digest(empty_marshal_data)
|
85
97
|
end
|
86
|
-
end
|
98
|
+
end if defined?(::PStore)
|
data/lib/yaml.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
8
8
|
- SHIBATA Hiroshi
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-11-06 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: YAML Ain't Markup Language
|
15
15
|
email:
|
@@ -20,10 +20,12 @@ extensions: []
|
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
22
|
- ".github/dependabot.yml"
|
23
|
+
- ".github/workflows/push_gem.yml"
|
23
24
|
- ".github/workflows/test.yml"
|
24
25
|
- ".gitignore"
|
26
|
+
- BSDL
|
27
|
+
- COPYING
|
25
28
|
- Gemfile
|
26
|
-
- LICENSE.txt
|
27
29
|
- README.md
|
28
30
|
- Rakefile
|
29
31
|
- bin/console
|
@@ -39,7 +41,7 @@ licenses:
|
|
39
41
|
metadata:
|
40
42
|
homepage_uri: https://github.com/ruby/yaml
|
41
43
|
source_code_uri: https://github.com/ruby/yaml
|
42
|
-
post_install_message:
|
44
|
+
post_install_message:
|
43
45
|
rdoc_options: []
|
44
46
|
require_paths:
|
45
47
|
- lib
|
@@ -54,8 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
56
|
- !ruby/object:Gem::Version
|
55
57
|
version: '0'
|
56
58
|
requirements: []
|
57
|
-
rubygems_version: 3.5.
|
58
|
-
signing_key:
|
59
|
+
rubygems_version: 3.5.11
|
60
|
+
signing_key:
|
59
61
|
specification_version: 4
|
60
62
|
summary: YAML Ain't Markup Language
|
61
63
|
test_files: []
|