Class: ReadOnce
Constant Summary collapse
- BASE_URI =
'https://readonce-production.herokuapp.com'
- USER_AGENT_HEADER =
{'User-Agent' => "ReadOnce Gem/#{Readonce::VERSION}"}
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.exit_if_gem_outdated! ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/readonce.rb', line 11 def self.exit_if_gem_outdated! response = get '/minimum-ruby-client-version', headers: USER_AGENT_HEADER major, minor, patch = response.body.split('.').map{|m| m.to_i} if Readonce::MAJOR_VERSION < major || Readonce::MINOR_VERSION < minor || Readonce::PATCH_VERSION < patch required_version = "#{major}.#{minor}.#{patch}" puts "ERROR: Gem version is #{Readonce::VERSION}, but #{required_version} or later is now required." puts 'Please run: gem install readonce' exit end end |
.from_data(data) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/readonce.rb', line 29 def self.from_data(data) self.exit_if_gem_outdated! response = post '/create', body: data, headers: {'Content-type' => 'text/plain'}.merge(USER_AGENT_HEADER) r = ReadOnce.new r.instance_variable_set(:@key, response.body) r end |
.from_key(key) ⇒ Object
23 24 25 26 27 |
# File 'lib/readonce.rb', line 23 def self.from_key(key) r = ReadOnce.new r.instance_variable_set(:@key, key) r end |
Instance Method Details
#block_until_read ⇒ Object
59 60 61 62 63 |
# File 'lib/readonce.rb', line 59 def block_until_read until read? do sleep 1 end end |
#exists? ⇒ Boolean
47 48 49 50 51 |
# File 'lib/readonce.rb', line 47 def exists? self.class.exit_if_gem_outdated! response = self.class.get "/status/#{key}", headers: USER_AGENT_HEADER response.code == 200 end |
#read? ⇒ Boolean
41 42 43 44 45 |
# File 'lib/readonce.rb', line 41 def read? self.class.exit_if_gem_outdated! response = self.class.get "/status/#{key}", headers: USER_AGENT_HEADER !JSON.parse(response.body)['accessed_at'].nil? end |
#read_url ⇒ Object
37 38 39 |
# File 'lib/readonce.rb', line 37 def read_url "#{BASE_URI}/#{key}" end |
#status ⇒ Object
53 54 55 56 57 |
# File 'lib/readonce.rb', line 53 def status self.class.exit_if_gem_outdated! response = self.class.get "/status/#{key}", headers: USER_AGENT_HEADER JSON.parse(response.body) end |