module BowerVendor class Setup < Base def execute create_bowerrc create_bower_json end def create_bower_json data = { name: 'autogenerated', dependencies: { }, resolutions: { }, } vendors.each do |vendor_key, vendor| version = vendor['version']&.to_s tag_version = version git = vendor['git'] tag = vendor['tag']&.to_s if git tag_version = tag ? "#{git}##{tag}" : git end url = vendor['url'] if url tag_version = url end data[:dependencies][vendor_key] = tag_version data[:resolutions][vendor_key] = version end target_file = "#{work_dir}/bower.json" File.write(target_file, JSON.pretty_generate(data)) puts "Wrote: #{target_file}" end def create_bowerrc data = { directory: "bower_components" } target_file = "#{work_dir}/.bowerrc" File.write(target_file, JSON.pretty_generate(data)) puts "Wrote: #{target_file}" end end end