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.
28 29 30 31 32 |
# File 'lib/gemstash/specs_builder.rb', line 28 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.
12 13 14 |
# File 'lib/gemstash/specs_builder.rb', line 12 def result @result end |
Class Method Details
.invalidate_stored ⇒ Object
21 22 23 24 25 26 |
# File 'lib/gemstash/specs_builder.rb', line 21 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
14 15 16 17 18 19 |
# File 'lib/gemstash/specs_builder.rb', line 14 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
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/gemstash/specs_builder.rb', line 34 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 |