Class: Importmap::Packager
- Inherits:
-
Object
- Object
- Importmap::Packager
- Defined in:
- lib/importmap/packager.rb
Constant Summary collapse
- Error =
Class.new(StandardError)
- HTTPError =
Class.new(Error)
- ServiceError =
Error.new(Error)
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) ⇒ Object
- #remove(package) ⇒ Object
- #vendored_pin_for(package, url) ⇒ Object
Constructor Details
#initialize(importmap_path = "config/importmap.rb", vendor_path: "vendor/javascript") ⇒ Packager
Returns a new instance of Packager.
16 17 18 19 |
# File 'lib/importmap/packager.rb', line 16 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.
11 12 13 |
# File 'lib/importmap/packager.rb', line 11 def endpoint @endpoint end |
#vendor_path ⇒ Object (readonly)
Returns the value of attribute vendor_path.
14 15 16 |
# File 'lib/importmap/packager.rb', line 14 def vendor_path @vendor_path end |
Instance Method Details
#download(package, url) ⇒ Object
55 56 57 58 59 |
# File 'lib/importmap/packager.rb', line 55 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
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/importmap/packager.rb', line 21 def import(*packages, env: "production", from: "jspm") response = post_json({ "install" => Array(packages), "flattenScope" => true, "env" => [ "browser", "module", env ], "provider" => from.to_s, }) case response.code when "200" then extract_parsed_imports(response) when "404", "401" then nil else handle_failure_response(response) end end |
#packaged?(package) ⇒ Boolean
51 52 53 |
# File 'lib/importmap/packager.rb', line 51 def packaged?(package) importmap.match(/^pin ["']#{package}["'].*$/) end |
#pin_for(package, url) ⇒ Object
36 37 38 |
# File 'lib/importmap/packager.rb', line 36 def pin_for(package, url) %(pin "#{package}", to: "#{url}") end |
#remove(package) ⇒ Object
61 62 63 64 |
# File 'lib/importmap/packager.rb', line 61 def remove(package) remove_existing_package_file(package) remove_package_from_importmap(package) end |
#vendored_pin_for(package, url) ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/importmap/packager.rb', line 40 def vendored_pin_for(package, url) filename = package_filename(package) version = extract_package_version_from(url) if "#{package}.js" == filename %(pin "#{package}" # #{version}) else %(pin "#{package}", to: "#{filename}" # #{version}) end end |