Class: ActiveRecord::Turntable::Sequencer::Api
- Inherits:
-
ActiveRecord::Turntable::Sequencer
- Object
- ActiveRecord::Turntable::Sequencer
- ActiveRecord::Turntable::Sequencer::Api
- Defined in:
- lib/active_record/turntable/sequencer/api.rb
Constant Summary collapse
- API_ENDPOINT =
"/sequences/".freeze
- NEXT_VALUE_ENDPOINT =
"/new".freeze
Instance Method Summary collapse
- #current_sequence_value(sequence_name) ⇒ Object
-
#initialize(options = {}) ⇒ Api
constructor
A new instance of Api.
- #next_sequence_value(sequence_name) ⇒ Object
Methods inherited from ActiveRecord::Turntable::Sequencer
class_for, #release!, #sequence_name, sequence_name
Constructor Details
#initialize(options = {}) ⇒ Api
Returns a new instance of Api.
10 11 12 13 14 15 16 17 |
# File 'lib/active_record/turntable/sequencer/api.rb', line 10 def initialize( = {}) require "httpclient" = @host = [:api_host] @port = [:api_port] @client = HTTPClient.new end |
Instance Method Details
#current_sequence_value(sequence_name) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/active_record/turntable/sequencer/api.rb', line 26 def current_sequence_value(sequence_name) res = @client.get_content("http://#{@host}:#{@port}#{API_ENDPOINT}#{sequence_name}") current_id = res.to_i raise SequenceNotFoundError if current_id.zero? current_id end |
#next_sequence_value(sequence_name) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/active_record/turntable/sequencer/api.rb', line 19 def next_sequence_value(sequence_name) res = @client.get_content("http://#{@host}:#{@port}#{API_ENDPOINT}#{sequence_name}#{NEXT_VALUE_ENDPOINT}") new_id = res.to_i raise SequenceNotFoundError if new_id.zero? new_id end |