oscal 0.1.1 → 0.2.2
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 +4 -4
- data/.docker/Dockerfile +19 -0
- data/.docker/Makefile +43 -0
- data/.docker/docker-compose.yml +14 -0
- data/.docker/readme.md +61 -0
- data/.gitignore +2 -0
- data/.rspec +0 -1
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -0
- data/Gemfile +2 -0
- data/LICENSE +25 -0
- data/Makefile +1 -0
- data/README.adoc +3 -0
- data/Rakefile +13 -6
- data/bin/console +2 -2
- data/bin/rspec +27 -0
- data/docker-compose.yml +1 -0
- data/lib/oscal/add.rb +5 -4
- data/lib/oscal/address.rb +3 -2
- data/lib/oscal/address_line.rb +1 -0
- data/lib/oscal/alter.rb +3 -2
- data/lib/oscal/assembly.rb +119 -0
- data/lib/oscal/assessment_plan.rb +28 -0
- data/lib/oscal/assessment_result.rb +230 -0
- data/lib/oscal/attribute_type_hash.rb +81 -0
- data/lib/oscal/back_matter.rb +2 -1
- data/lib/oscal/base64_object.rb +1 -0
- data/lib/oscal/base_class.rb +5 -4
- data/lib/oscal/catalog.rb +8 -7
- data/lib/oscal/choice.rb +1 -0
- data/lib/oscal/citation.rb +3 -2
- data/lib/oscal/combine.rb +1 -0
- data/lib/oscal/common_utils.rb +1 -1
- data/lib/oscal/constraint.rb +2 -1
- data/lib/oscal/control.rb +6 -5
- data/lib/oscal/custom.rb +3 -2
- data/lib/oscal/datatypes.rb +50 -0
- data/lib/oscal/document_id.rb +1 -0
- data/lib/oscal/email_address.rb +1 -0
- data/lib/oscal/exclude_control.rb +3 -2
- data/lib/oscal/external_id.rb +1 -0
- data/lib/oscal/group.rb +9 -8
- data/lib/oscal/guideline.rb +1 -0
- data/lib/oscal/hash_object.rb +1 -0
- data/lib/oscal/import_object.rb +3 -2
- data/lib/oscal/include_control.rb +3 -2
- data/lib/oscal/insert_control.rb +3 -2
- data/lib/oscal/link.rb +1 -0
- data/lib/oscal/list.rb +160 -0
- data/lib/oscal/location.rb +8 -7
- data/lib/oscal/location_uuid.rb +1 -0
- data/lib/oscal/logger.rb +12 -0
- data/lib/oscal/matching.rb +1 -0
- data/lib/oscal/member_of_organization.rb +1 -0
- data/lib/oscal/merge.rb +2 -1
- data/lib/oscal/metadata_block.rb +11 -10
- data/lib/oscal/modify.rb +3 -2
- data/lib/oscal/parameter.rb +8 -7
- data/lib/oscal/parsing_functions.rb +19 -0
- data/lib/oscal/part.rb +4 -3
- data/lib/oscal/party.rb +11 -10
- data/lib/oscal/party_uuid.rb +1 -0
- data/lib/oscal/profile.rb +7 -6
- data/lib/oscal/property.rb +1 -0
- data/lib/oscal/remove.rb +1 -0
- data/lib/oscal/resource.rb +7 -6
- data/lib/oscal/responsible_party.rb +11 -10
- data/lib/oscal/revision.rb +4 -3
- data/lib/oscal/rlink.rb +2 -1
- data/lib/oscal/role.rb +3 -2
- data/lib/oscal/select.rb +2 -1
- data/lib/oscal/set_parameter.rb +8 -7
- data/lib/oscal/telephone_number.rb +1 -0
- data/lib/oscal/test.rb +1 -0
- data/lib/oscal/url.rb +1 -0
- data/lib/oscal/value.rb +5 -4
- data/lib/oscal/version.rb +1 -1
- data/lib/oscal/with_id.rb +2 -1
- data/lib/oscal.rb +1 -1
- data/spec/oscal/catalog_spec.rb +5 -4
- data/spec/oscal_spec.rb +11 -0
- data/spec/sample_inputs/import-ap.json +4 -0
- metadata +24 -6
data/lib/oscal/set_parameter.rb
CHANGED
@@ -3,24 +3,25 @@ require_relative "base_class"
|
|
3
3
|
module Oscal
|
4
4
|
class SetParameter < Oscal::BaseClass
|
5
5
|
KEY = %i(param_id klass depneds_on props links label usage
|
6
|
-
|
6
|
+
constraints guidelines values select)
|
7
7
|
|
8
8
|
attr_accessor *KEY
|
9
|
+
|
9
10
|
attr_serializable *KEY
|
10
11
|
|
11
12
|
def set_value(key_name, val)
|
12
13
|
case key_name
|
13
|
-
when
|
14
|
+
when "props"
|
14
15
|
Property.wrap(val)
|
15
|
-
when
|
16
|
+
when "links"
|
16
17
|
Link.wrap(val)
|
17
|
-
when
|
18
|
+
when "constraints"
|
18
19
|
Constraint.wrap(val)
|
19
|
-
when
|
20
|
+
when "guidelines"
|
20
21
|
Guideline.wrap(val)
|
21
|
-
when
|
22
|
+
when "values"
|
22
23
|
Value.wrap(val)
|
23
|
-
when
|
24
|
+
when "select"
|
24
25
|
Select.wrap(val)
|
25
26
|
else
|
26
27
|
val
|
data/lib/oscal/test.rb
CHANGED
data/lib/oscal/url.rb
CHANGED
data/lib/oscal/value.rb
CHANGED
@@ -6,6 +6,7 @@ module Oscal
|
|
6
6
|
|
7
7
|
KEY = %i(val)
|
8
8
|
attr_accessor *KEY
|
9
|
+
|
9
10
|
attr_serializable *KEY
|
10
11
|
|
11
12
|
def self.wrap(obj)
|
@@ -17,13 +18,13 @@ module Oscal
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
def initialize(options={})
|
21
|
+
def initialize(options = {})
|
21
22
|
unless options.is_a? Hash
|
22
|
-
options = {
|
23
|
+
options = { "val" => options }
|
23
24
|
end
|
24
25
|
|
25
|
-
options.each_pair.each do |key,val|
|
26
|
-
key_name = key.gsub(
|
26
|
+
options.each_pair.each do |key, val|
|
27
|
+
key_name = key.gsub("-", "_")
|
27
28
|
|
28
29
|
unless KEY.include?(key_name.to_sym)
|
29
30
|
raise UnknownAttributeError.new("Unknown key `#{key}` in Value")
|
data/lib/oscal/version.rb
CHANGED
data/lib/oscal/with_id.rb
CHANGED
@@ -7,6 +7,7 @@ module Oscal
|
|
7
7
|
KEY = %i(val)
|
8
8
|
|
9
9
|
attr_accessor *KEY
|
10
|
+
|
10
11
|
attr_serializable *KEY
|
11
12
|
|
12
13
|
def self.wrap(obj)
|
@@ -22,7 +23,7 @@ module Oscal
|
|
22
23
|
klass = self.class
|
23
24
|
|
24
25
|
unless options.is_a? Hash
|
25
|
-
options = {KEY.first.to_s => options}
|
26
|
+
options = { KEY.first.to_s => options }
|
26
27
|
end
|
27
28
|
|
28
29
|
options.each_pair.each do |key, val|
|
data/lib/oscal.rb
CHANGED
data/spec/oscal/catalog_spec.rb
CHANGED
@@ -9,7 +9,7 @@ RSpec.describe Oscal::Catalog do
|
|
9
9
|
|
10
10
|
it "parses oscal-content YAML" do
|
11
11
|
expect(subject.class).to be Oscal::Catalog
|
12
|
-
expect(subject.groups.first.groups.first.parts.first.prose).to eq(
|
12
|
+
expect(subject.groups.first.groups.first.controls.first.parts.first.prose).to eq(
|
13
13
|
"To establish a management framework to initiate and " \
|
14
14
|
"control the implementation and operation of information security " \
|
15
15
|
"within the organization.",
|
@@ -22,14 +22,15 @@ RSpec.describe Oscal::Catalog do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "find object by id" do
|
25
|
-
obj = subject.find_object_by_id(
|
25
|
+
obj = subject.find_object_by_id("s2.1_smt")
|
26
26
|
expect(obj.to_s).to match(/Oscal::Part/)
|
27
27
|
expect(obj.prose).to eq(
|
28
|
-
"To limit access to information and information processing facilities."
|
28
|
+
"To limit access to information and information processing facilities.",
|
29
|
+
)
|
29
30
|
end
|
30
31
|
|
31
32
|
it "find object by uuid" do
|
32
|
-
uuid =
|
33
|
+
uuid = "74c8ba1e-5cd4-4ad1-bbfd-d888e2f6c724"
|
33
34
|
obj = subject.find_object_by_id(
|
34
35
|
uuid, subject, :uuid
|
35
36
|
)
|
data/spec/oscal_spec.rb
CHANGED
@@ -4,4 +4,15 @@ RSpec.describe Oscal do
|
|
4
4
|
it "has a version number" do
|
5
5
|
expect(Oscal::VERSION).not_to be nil
|
6
6
|
end
|
7
|
+
|
8
|
+
it "allows setting a new logger" do
|
9
|
+
logger = double(Logger)
|
10
|
+
Oscal::ParsingLogger.logger = logger
|
11
|
+
|
12
|
+
class LoggerTest
|
13
|
+
include Oscal::ParsingLogger
|
14
|
+
end
|
15
|
+
|
16
|
+
expect(LoggerTest.new.get_logger).to eq logger
|
17
|
+
end
|
7
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oscal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yaml
|
@@ -32,6 +32,10 @@ executables:
|
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
+
- ".docker/Dockerfile"
|
36
|
+
- ".docker/Makefile"
|
37
|
+
- ".docker/docker-compose.yml"
|
38
|
+
- ".docker/readme.md"
|
35
39
|
- ".github/workflows/rake.yml"
|
36
40
|
- ".github/workflows/release.yml"
|
37
41
|
- ".gitignore"
|
@@ -39,18 +43,27 @@ files:
|
|
39
43
|
- ".hound.yml"
|
40
44
|
- ".rspec"
|
41
45
|
- ".rubocop.yml"
|
46
|
+
- ".ruby-version"
|
42
47
|
- CODE_OF_CONDUCT.md
|
43
48
|
- Gemfile
|
49
|
+
- LICENSE
|
50
|
+
- Makefile
|
44
51
|
- README.adoc
|
45
52
|
- Rakefile
|
46
53
|
- bin/console
|
54
|
+
- bin/rspec
|
47
55
|
- bin/setup
|
56
|
+
- docker-compose.yml
|
48
57
|
- exe/convert2oscalyaml.rb
|
49
58
|
- lib/oscal.rb
|
50
59
|
- lib/oscal/add.rb
|
51
60
|
- lib/oscal/address.rb
|
52
61
|
- lib/oscal/address_line.rb
|
53
62
|
- lib/oscal/alter.rb
|
63
|
+
- lib/oscal/assembly.rb
|
64
|
+
- lib/oscal/assessment_plan.rb
|
65
|
+
- lib/oscal/assessment_result.rb
|
66
|
+
- lib/oscal/attribute_type_hash.rb
|
54
67
|
- lib/oscal/back_matter.rb
|
55
68
|
- lib/oscal/base64_object.rb
|
56
69
|
- lib/oscal/base_class.rb
|
@@ -62,6 +75,7 @@ files:
|
|
62
75
|
- lib/oscal/constraint.rb
|
63
76
|
- lib/oscal/control.rb
|
64
77
|
- lib/oscal/custom.rb
|
78
|
+
- lib/oscal/datatypes.rb
|
65
79
|
- lib/oscal/document_id.rb
|
66
80
|
- lib/oscal/email_address.rb
|
67
81
|
- lib/oscal/exclude_control.rb
|
@@ -73,14 +87,17 @@ files:
|
|
73
87
|
- lib/oscal/include_control.rb
|
74
88
|
- lib/oscal/insert_control.rb
|
75
89
|
- lib/oscal/link.rb
|
90
|
+
- lib/oscal/list.rb
|
76
91
|
- lib/oscal/location.rb
|
77
92
|
- lib/oscal/location_uuid.rb
|
93
|
+
- lib/oscal/logger.rb
|
78
94
|
- lib/oscal/matching.rb
|
79
95
|
- lib/oscal/member_of_organization.rb
|
80
96
|
- lib/oscal/merge.rb
|
81
97
|
- lib/oscal/metadata_block.rb
|
82
98
|
- lib/oscal/modify.rb
|
83
99
|
- lib/oscal/parameter.rb
|
100
|
+
- lib/oscal/parsing_functions.rb
|
84
101
|
- lib/oscal/part.rb
|
85
102
|
- lib/oscal/party.rb
|
86
103
|
- lib/oscal/party_uuid.rb
|
@@ -105,6 +122,7 @@ files:
|
|
105
122
|
- sig/oscal.rbs
|
106
123
|
- spec/oscal/catalog_spec.rb
|
107
124
|
- spec/oscal_spec.rb
|
125
|
+
- spec/sample_inputs/import-ap.json
|
108
126
|
- spec/spec_helper.rb
|
109
127
|
homepage: https://github.com/metanorma/oscal-ruby/
|
110
128
|
licenses:
|
@@ -114,7 +132,7 @@ metadata:
|
|
114
132
|
source_code_uri: https://github.com/metanorma/oscal-ruby/
|
115
133
|
changelog_uri: https://github.com/metanorma/oscal-ruby/CHANGELOG
|
116
134
|
rubygems_mfa_required: 'true'
|
117
|
-
post_install_message:
|
135
|
+
post_install_message:
|
118
136
|
rdoc_options: []
|
119
137
|
require_paths:
|
120
138
|
- lib
|
@@ -129,8 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
147
|
- !ruby/object:Gem::Version
|
130
148
|
version: '0'
|
131
149
|
requirements: []
|
132
|
-
rubygems_version: 3.3.
|
133
|
-
signing_key:
|
150
|
+
rubygems_version: 3.3.27
|
151
|
+
signing_key:
|
134
152
|
specification_version: 4
|
135
153
|
summary: Interact with OSCAL models
|
136
154
|
test_files: []
|