Class: Gemstash::SpecsBuilder
- Inherits:
-
Object
- Object
- Gemstash::SpecsBuilder
- Includes:
- Env::Helper
- Defined in:
- lib/gemstash/specs_builder.rb
Overview
Builds a Marshal’ed and GZipped array of arrays containing specs as:
- name, Gem::Version, platform
Instance Attribute Summary collapse
-
#result ⇒ Object
readonly
Returns the value of attribute result.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(auth, prerelease: false, latest: false) ⇒ SpecsBuilder
constructor
A new instance of SpecsBuilder.
- #serve ⇒ Object
Constructor Details
#initialize(auth, prerelease: false, latest: false) ⇒ SpecsBuilder
Returns a new instance of SpecsBuilder.
26 27 28 29 30 |
# File 'lib/gemstash/specs_builder.rb', line 26 def initialize(auth, prerelease: false, latest: false) @auth = auth @prerelease = prerelease @latest = latest end |
Instance Attribute Details
#result ⇒ Object (readonly)
Returns the value of attribute result.
10 11 12 |
# File 'lib/gemstash/specs_builder.rb', line 10 def result @result end |
Class Method Details
.invalidate_stored ⇒ Object
19 20 21 22 23 24 |
# File 'lib/gemstash/specs_builder.rb', line 19 def self.invalidate_stored storage = Gemstash::Storage.for("private").for("specs_collection") storage.resource("specs.4.8.gz").delete(:specs) storage.resource("latest_specs.4.8.gz").delete(:specs) storage.resource("prerelease_specs.4.8.gz").delete(:specs) end |
.serve(app) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/gemstash/specs_builder.rb', line 12 def self.serve(app) prerelease = app.params.fetch(:prerelease, false) latest = app.params.fetch(:latest, false) app.content_type "application/octet-stream" new(app.auth, prerelease: prerelease, latest: latest).serve end |
Instance Method Details
#serve ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/gemstash/specs_builder.rb', line 32 def serve check_auth if gemstash_env.config[:protected_fetch] fetch_from_storage return result if result fetch_versions marshal gzip store_result result end |