Class: RailsWayback::HistoricalAssetBody
- Inherits:
-
Object
- Object
- RailsWayback::HistoricalAssetBody
- Defined in:
- lib/rails_wayback/historical_asset_body.rb
Constant Summary collapse
- DEFAULT_CHUNK_SIZE =
64 * 1024
Instance Method Summary collapse
- #close ⇒ Object
- #each ⇒ Object
-
#initialize(sha:, public_path:, view_source: RailsWayback::ViewSource.new, resolver: RailsWayback::HistoricalAssetResolver.new, chunk_size: DEFAULT_CHUNK_SIZE) ⇒ HistoricalAssetBody
constructor
A new instance of HistoricalAssetBody.
Constructor Details
#initialize(sha:, public_path:, view_source: RailsWayback::ViewSource.new, resolver: RailsWayback::HistoricalAssetResolver.new, chunk_size: DEFAULT_CHUNK_SIZE) ⇒ HistoricalAssetBody
Returns a new instance of HistoricalAssetBody.
7 8 9 10 11 12 13 14 15 |
# File 'lib/rails_wayback/historical_asset_body.rb', line 7 def initialize(sha:, public_path:, view_source: RailsWayback::ViewSource.new, resolver: RailsWayback::HistoricalAssetResolver.new, chunk_size: DEFAULT_CHUNK_SIZE) @sha = sha @public_path = public_path @view_source = view_source @resolver = resolver @chunk_size = chunk_size end |
Instance Method Details
#close ⇒ Object
35 |
# File 'lib/rails_wayback/historical_asset_body.rb', line 35 def close; end |
#each ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rails_wayback/historical_asset_body.rb', line 17 def each return enum_for(:each) unless block_given? view_source.with_materialization(sha) do |root| resolution = resolver.resolve_public_path(root: root, public_path: public_path) unless resolution raise RailsWayback::MaterializationError, "Historical public asset #{public_path.inspect} is no longer available for #{sha}" end File.open(resolution.path, "rb") do |file| while (chunk = file.read(chunk_size)) yield chunk end end end end |