class SvelteOnRails::DevelopmentUtils
def self.contributor_config(key, required: true)
def self.contributor_config(key, required: true) config_file = File.expand_path('../svelte_on_rails_contributor_configs.yml', gem_folder) if !File.exist?(config_file) if required raise "Missing configuration file, searched at: «#{config_file}»" end else yml = YAML.load_file(config_file) value = yml[key.to_s] if required && !value.present? raise "Missing value «#{key}» in configuration file: «#{config_file}»" end value end end
def self.gem_folder
def self.gem_folder Pathname.new(File.expand_path('../../..', __dir__)) end
def self.local_npm_package_url
def self.local_npm_package_url str = contributor_config('local_npm_package_path', required: false) if !str.present? nil elsif !Dir.exist?(str) raise "Invalid path given on local_npm_package_path: «#{str}»" elsif !File.exist?(Pathname.new(str).join('package.json')) raise "Given local_npm_package_path does not seem to be a valid npm package as it does not contain a package.json" else return Pathname.new(str) end end