Class: Medcon::Medcon
- Inherits:
-
Object
- Object
- Medcon::Medcon
- Defined in:
- lib/medcon.rb
Constant Summary collapse
- DEFAULT_CDN_URI =
URI("https://nuva.svc.edge.scw.cloud")
Instance Attribute Summary collapse
-
#queries ⇒ Object
readonly
Returns the value of attribute queries.
-
#repositories ⇒ Object
readonly
Returns the value of attribute repositories.
Class Method Summary collapse
- .fetch_latest_version_hash(cdn_uri: DEFAULT_CDN_URI, http: nil) ⇒ Object
- .load(cdn_uri: DEFAULT_CDN_URI, lang: "en", hash: nil) ⇒ Object
- .load_from_file(path) ⇒ Object
Instance Method Summary collapse
- #generated_at ⇒ Object
-
#initialize(db) ⇒ Medcon
constructor
A new instance of Medcon.
- #inspect ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(db) ⇒ Medcon
Returns a new instance of Medcon.
15 16 17 18 19 20 21 22 |
# File 'lib/medcon.rb', line 15 def initialize(db) @db = db @repositories = OpenStruct.new @repositories.conditions = Repositories::ConditionRepository.new db.conditions @repositories.freeze end |
Instance Attribute Details
#queries ⇒ Object (readonly)
Returns the value of attribute queries.
13 14 15 |
# File 'lib/medcon.rb', line 13 def queries @queries end |
#repositories ⇒ Object (readonly)
Returns the value of attribute repositories.
12 13 14 |
# File 'lib/medcon.rb', line 12 def repositories @repositories end |
Class Method Details
.fetch_latest_version_hash(cdn_uri: DEFAULT_CDN_URI, http: nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/medcon.rb', line 49 def fetch_latest_version_hash(cdn_uri: DEFAULT_CDN_URI, http: nil) if http.nil? http = init_http(cdn_uri) passed_http = false end response = http.get("/versions/last.json") hash = JSON.parse(response.body)["dump_hash"] http.finish unless passed_http hash end |
.load(cdn_uri: DEFAULT_CDN_URI, lang: "en", hash: nil) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/medcon.rb', line 39 def load(cdn_uri: DEFAULT_CDN_URI, lang: "en", hash: nil) init_http(cdn_uri) do |http| # Fetch version manifest if necessary hash ||= fetch_latest_version_hash(http:) response = http.get("/conditions/#{hash}_#{lang}.db") Medcon.new(::Medcon::VaccinationProfileDatabase.decode(response.body)) end end |
.load_from_file(path) ⇒ Object
60 61 62 |
# File 'lib/medcon.rb', line 60 def load_from_file(path) Medcon.new(::Medcon::VaccinationProfileDatabase.decode(File.read(path))) end |
Instance Method Details
#generated_at ⇒ Object
32 33 34 |
# File 'lib/medcon.rb', line 32 def generated_at @db.generated_at end |
#inspect ⇒ Object
28 29 30 |
# File 'lib/medcon.rb', line 28 def inspect "#<Medcon::Medcon version=#{version.major}.#{version.minor}.#{version.patch} condition_count=#{repositories.conditions.all.count}>" end |
#version ⇒ Object
24 25 26 |
# File 'lib/medcon.rb', line 24 def version @db.version end |