Class: Importmap::Packager
- Inherits:
-
Object
- Object
- Importmap::Packager
- Defined in:
- lib/importmap/packager.rb
Constant Summary collapse
Instance Attribute Summary collapse
-
#endpoint ⇒ Object
Returns the value of attribute endpoint.
-
#vendor_path ⇒ Object
readonly
Returns the value of attribute vendor_path.
Instance Method Summary collapse
- #download(package, url) ⇒ Object
- #import(*packages, env: "production", from: "jspm") ⇒ Object
-
#initialize(importmap_path = "config/importmap.rb", vendor_path: "vendor/javascript") ⇒ Packager
constructor
A new instance of Packager.
- #packaged?(package) ⇒ Boolean
- #pin_for(package, url = nil, preloads: nil) ⇒ Object
- #remove(package) ⇒ Object
- #vendored_pin_for(package, url, preloads = nil) ⇒ Object
Constructor Details
#initialize(importmap_path = "config/importmap.rb", vendor_path: "vendor/javascript") ⇒ Packager
Returns a new instance of Packager.
15 16 17 18 |
# File 'lib/importmap/packager.rb', line 15 def initialize(importmap_path = "config/importmap.rb", vendor_path: "vendor/javascript") @importmap_path = Pathname.new(importmap_path) @vendor_path = Pathname.new(vendor_path) end |
Instance Attribute Details
#endpoint ⇒ Object
Returns the value of attribute endpoint.
10 11 12 |
# File 'lib/importmap/packager.rb', line 10 def endpoint @endpoint end |
#vendor_path ⇒ Object (readonly)
Returns the value of attribute vendor_path.
13 14 15 |
# File 'lib/importmap/packager.rb', line 13 def vendor_path @vendor_path end |
Instance Method Details
#download(package, url) ⇒ Object
57 58 59 60 61 |
# File 'lib/importmap/packager.rb', line 57 def download(package, url) ensure_vendor_directory_exists remove_existing_package_file(package) download_package_file(package, url) end |
#import(*packages, env: "production", from: "jspm") ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/importmap/packager.rb', line 20 def import(*packages, env: "production", from: "jspm") response = post_json({ "install" => Array(packages), "flattenScope" => true, "env" => [ "browser", "module", env ], "provider" => normalize_provider(from), }) case response.code when "200" extract_parsed_response(response) when "404", "401" nil else handle_failure_response(response) end end |
#packaged?(package) ⇒ Boolean
53 54 55 |
# File 'lib/importmap/packager.rb', line 53 def packaged?(package) importmap.match(/^pin ["']#{package}["'].*$/) end |
#pin_for(package, url = nil, preloads: nil) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/importmap/packager.rb', line 38 def pin_for(package, url = nil, preloads: nil) to = url ? %(, to: "#{url}") : "" preload_param = preload(preloads) %(pin "#{package}") + to + preload_param end |
#remove(package) ⇒ Object
63 64 65 66 |
# File 'lib/importmap/packager.rb', line 63 def remove(package) remove_existing_package_file(package) remove_package_from_importmap(package) end |
#vendored_pin_for(package, url, preloads = nil) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/importmap/packager.rb', line 45 def vendored_pin_for(package, url, preloads = nil) filename = package_filename(package) version = extract_package_version_from(url) to = "#{package}.js" != filename ? filename : nil pin_for(package, to, preloads: preloads) + %( # #{version}) end |