Skip to content

Commit

Permalink
remove dependence on defunct gem yaml-safe_load_stream
Browse files Browse the repository at this point in the history
  • Loading branch information
wr0ngway committed Nov 10, 2023
1 parent a5e4456 commit e0e00cc
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 7 deletions.
3 changes: 0 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,5 @@ gem "clamp"
gem "cloudtruth-client", path: "client"
gem "kubeclient"
gem "liquid"
gem "yaml-safe_load_stream",
git: "https://github.com/wr0ngway/yaml-safe_load_stream.git",
branch: "ruby_3"
gem "async"
gem "faraday-cookie_jar"
5 changes: 2 additions & 3 deletions lib/kubetruth/etl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@
require 'yaml'
require 'async'
require 'async/semaphore'
require 'yaml/safe_load_stream'
using YAMLSafeLoadStream

require_relative 'config'
require_relative 'kubeapi'
require_relative 'project_collection'
require_relative 'ctapi'
require_relative 'template'
require_relative 'yaml_safe_load_stream'

module Kubetruth
class ETL
Expand Down Expand Up @@ -296,7 +295,7 @@ def apply
)

template_id = "mapping: #{project.spec.name}, mapping_namespace: #{namespace}, project: #{project.name}, template: #{template_name}"
parsed_ymls = YAML.safe_load_stream(resource_yml, template_id)
parsed_ymls = YAML.safe_load_stream(resource_yml, filename: template_id)
logger.debug {"Skipping empty template"} if parsed_ymls.empty?
parsed_ymls.each do |parsed_yml|
if parsed_yml.present?
Expand Down
2 changes: 1 addition & 1 deletion lib/kubetruth/project_collection.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def names
end

def create_project(*args, **kwargs)
project = Project.new(*args, **kwargs, collection: self, ctapi: ctapi)
project = Project.new(*args, **kwargs.merge(collection: self, ctapi: ctapi))
projects[project.name] = project
project
end
Expand Down
23 changes: 23 additions & 0 deletions lib/kubetruth/yaml_safe_load_stream.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require 'yaml'
module YAML
# copied from YAML.safe_load and mutabled to use parse_stream with a block
def self.safe_load_stream(yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false)
yamls = []
parse_stream(yaml, filename: filename) do |result|
return fallback unless result

class_loader = ClassLoader::Restricted.new(permitted_classes.map(&:to_s),
permitted_symbols.map(&:to_s))
scanner = ScalarScanner.new class_loader, strict_integer: strict_integer
visitor = if aliases
Visitors::ToRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze
else
Visitors::NoAliasRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze
end
result = visitor.accept result
yield result if block_given?
yamls << result
end
yamls
end
end

0 comments on commit e0e00cc

Please sign in to comment.