Class: Smplkit::ManagementClient::FlagsNamespace
- Inherits:
-
Object
- Object
- Smplkit::ManagementClient::FlagsNamespace
- Includes:
- HttpHelpers
- Defined in:
- lib/smplkit/management/client.rb
Instance Method Summary collapse
- #_create_flag(flag) ⇒ Object
- #_update_flag(flag) ⇒ Object
- #delete(id) ⇒ Object
- #fetch_flag(id) ⇒ Object
- #flush ⇒ Object
- #get(id) ⇒ Object
-
#initialize(http) ⇒ FlagsNamespace
constructor
A new instance of FlagsNamespace.
- #list ⇒ Object
- #list_flags ⇒ Object
- #new_boolean_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
- #new_json_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
- #new_number_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
- #new_string_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
- #register(declaration) ⇒ Object
Constructor Details
#initialize(http) ⇒ FlagsNamespace
Returns a new instance of FlagsNamespace.
429 430 431 432 |
# File 'lib/smplkit/management/client.rb', line 429 def initialize(http) @http = http @buffer = Management::FlagRegistrationBuffer.new end |
Instance Method Details
#_create_flag(flag) ⇒ Object
491 492 493 494 495 |
# File 'lib/smplkit/management/client.rb', line 491 def _create_flag(flag) body = Smplkit::Flags::Helpers.build_flag_request_body(flag) resp = http_post("/api/flags/v1", body) flag_from_resource(resp["data"]) end |
#_update_flag(flag) ⇒ Object
497 498 499 500 501 |
# File 'lib/smplkit/management/client.rb', line 497 def _update_flag(flag) body = Smplkit::Flags::Helpers.build_flag_request_body(flag) resp = http_put("/api/flags/v1/#{flag.id}", body) flag_from_resource(resp["data"]) end |
#delete(id) ⇒ Object
459 460 461 |
# File 'lib/smplkit/management/client.rb', line 459 def delete(id) http_delete("/api/flags/v1/#{id}") end |
#fetch_flag(id) ⇒ Object
503 504 505 506 |
# File 'lib/smplkit/management/client.rb', line 503 def fetch_flag(id) resp = http_get("/api/flags/v1/#{id}") Smplkit::Flags::Helpers.flag_dict_from_json(resp["data"]) end |
#flush ⇒ Object
439 440 441 442 443 444 445 446 447 |
# File 'lib/smplkit/management/client.rb', line 439 def flush batch = @buffer.drain return if batch.empty? body = { "data" => { "type" => "flag_bulk_register", "attributes" => { "flags" => batch } } } http_post("/api/flags/v1/bulk", body) rescue StandardError => e Smplkit.debug("registration", "flag flush failed: #{e.class}: #{e.}") end |
#get(id) ⇒ Object
454 455 456 457 |
# File 'lib/smplkit/management/client.rb', line 454 def get(id) resp = http_get("/api/flags/v1/#{id}") flag_from_resource(resp["data"]) end |
#list ⇒ Object
449 450 451 452 |
# File 'lib/smplkit/management/client.rb', line 449 def list list_resp = http_list("/api/flags/v1") list_resp.map { |r| flag_from_resource(r) } end |
#list_flags ⇒ Object
508 509 510 511 |
# File 'lib/smplkit/management/client.rb', line 508 def list_flags body = http_list("/api/flags/v1") body.map { |r| Smplkit::Flags::Helpers.flag_dict_from_json(r) } end |
#new_boolean_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
463 464 465 466 467 468 |
# File 'lib/smplkit/management/client.rb', line 463 def new_boolean_flag(id, default:, name: nil, description: nil, values: nil) Smplkit::Flags::BooleanFlag.new( self, id: id, name: name || id, type: "BOOLEAN", default: default, description: description, values: values ) end |
#new_json_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
484 485 486 487 488 489 |
# File 'lib/smplkit/management/client.rb', line 484 def new_json_flag(id, default:, name: nil, description: nil, values: nil) Smplkit::Flags::JsonFlag.new( self, id: id, name: name || id, type: "JSON", default: default, description: description, values: values ) end |
#new_number_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
477 478 479 480 481 482 |
# File 'lib/smplkit/management/client.rb', line 477 def new_number_flag(id, default:, name: nil, description: nil, values: nil) Smplkit::Flags::NumberFlag.new( self, id: id, name: name || id, type: "NUMERIC", default: default, description: description, values: values ) end |
#new_string_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
470 471 472 473 474 475 |
# File 'lib/smplkit/management/client.rb', line 470 def new_string_flag(id, default:, name: nil, description: nil, values: nil) Smplkit::Flags::StringFlag.new( self, id: id, name: name || id, type: "STRING", default: default, description: description, values: values ) end |
#register(declaration) ⇒ Object
434 435 436 437 |
# File 'lib/smplkit/management/client.rb', line 434 def register(declaration) @buffer.add(declaration) flush if @buffer.pending_count >= Management::FLAG_BATCH_FLUSH_SIZE end |