Module: SeedGenerator
- Defined in:
- lib/norad_cli/support/api_security_container_seed_script.rb
Class Method Summary collapse
- .add_container(container_file, m, long_name, docsite, readme_anchor) ⇒ Object
- .process_manifests(seed_file, docsite) ⇒ Object
- .readme_anchor(readme) ⇒ Object
- .symbolized_config(config) ⇒ Object
Class Method Details
.add_container(container_file, m, long_name, docsite, readme_anchor) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/norad_cli/support/api_security_container_seed_script.rb', line 6 def self.add_container(container_file, m, long_name, docsite, readme_anchor) container_file.write("\n") unless container_file.size.zero? container_file.write("sc = SecurityContainer.where(name: '#{long_name}').first_or_initialize\n") container_file.write("sc.prog_args = '#{m['prog_args']}'\n") container_file.write("sc.default_config = #{symbolized_config(m['default_config'])}\n") if m.key?('default_config') container_file.write("sc.category = :#{m['category'].to_sym}\n") container_file.write("sc.test_types = #{m['test_types']}\n") container_file.write("sc.application_type = ApplicationType.find_by(name: '#{m['application_type']}')\n") if m.key?('application_type') container_file.write("sc.configurable = #{m['configurable']}\n") if m.key?('configurable') container_file.write("sc.multi_host = #{m['multi_host']}\n") if m.key?('multi_host') container_file.write("sc.help_url = '#{docsite}##{readme_anchor}'\n") container_file.write("sc.save!\n") end |
.process_manifests(seed_file, docsite) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/norad_cli/support/api_security_container_seed_script.rb', line 33 def self.process_manifests(seed_file, docsite) File.open(seed_file, 'w') do |container_file| Dir.glob('./**/manifest.yml').each do |p| manifest = YAML.load(File.new(p, 'r').read) readme_anchor = readme_anchor(File.new(p.gsub(/manifest\.yml/, 'README.md'))) long_name = "#{manifest['registry']}/#{manifest['name']}:#{manifest['version']}" add_container(container_file, manifest, long_name, docsite, readme_anchor) end end end |
.readme_anchor(readme) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/norad_cli/support/api_security_container_seed_script.rb', line 26 def self.readme_anchor(readme) title = readme.readline # ## My Test Name123 # Trim off ## portion of title, replace spaces with -, and downcase title.match(/\s*##\s+(.+)/)[1].strip.gsub(/[ .]/, '-').downcase end |
.symbolized_config(config) ⇒ Object
20 21 22 23 24 |
# File 'lib/norad_cli/support/api_security_container_seed_script.rb', line 20 def self.symbolized_config(config) '{ ' + config.reduce([]) do |a, p| a << "#{p.first}: '#{p.last}'" end.join(', ') + ' }' end |