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.
474 475 476 477 |
# File 'lib/smplkit/management/client.rb', line 474 def initialize(http) @http = http @buffer = Management::FlagRegistrationBuffer.new end |
Instance Method Details
#_create_flag(flag) ⇒ Object
536 537 538 539 540 |
# File 'lib/smplkit/management/client.rb', line 536 def _create_flag(flag) body = Smplkit::Flags::Helpers.build_flag_request_body(flag) resp = http_post("/api/v1/flags", body) flag_from_resource(resp["data"]) end |
#_update_flag(flag) ⇒ Object
542 543 544 545 546 |
# File 'lib/smplkit/management/client.rb', line 542 def _update_flag(flag) body = Smplkit::Flags::Helpers.build_flag_request_body(flag) resp = http_put("/api/v1/flags/#{flag.id}", body) flag_from_resource(resp["data"]) end |
#delete(id) ⇒ Object
504 505 506 |
# File 'lib/smplkit/management/client.rb', line 504 def delete(id) http_delete("/api/v1/flags/#{id}") end |
#fetch_flag(id) ⇒ Object
548 549 550 551 |
# File 'lib/smplkit/management/client.rb', line 548 def fetch_flag(id) resp = http_get("/api/v1/flags/#{id}") Smplkit::Flags::Helpers.flag_dict_from_json(resp["data"]) end |
#flush ⇒ Object
484 485 486 487 488 489 490 491 492 |
# File 'lib/smplkit/management/client.rb', line 484 def flush batch = @buffer.drain return if batch.empty? body = { "data" => { "type" => "flag_bulk_register", "attributes" => { "flags" => batch } } } http_post("/api/v1/flags/bulk", body) rescue StandardError => e Smplkit.debug("registration", "flag flush failed: #{e.class}: #{e.}") end |
#get(id) ⇒ Object
499 500 501 502 |
# File 'lib/smplkit/management/client.rb', line 499 def get(id) resp = http_get("/api/v1/flags/#{id}") flag_from_resource(resp["data"]) end |
#list ⇒ Object
494 495 496 497 |
# File 'lib/smplkit/management/client.rb', line 494 def list list_resp = http_list("/api/v1/flags") list_resp.map { |r| flag_from_resource(r) } end |
#list_flags ⇒ Object
553 554 555 556 |
# File 'lib/smplkit/management/client.rb', line 553 def list_flags body = http_list("/api/v1/flags") body.map { |r| Smplkit::Flags::Helpers.flag_dict_from_json(r) } end |
#new_boolean_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
508 509 510 511 512 513 |
# File 'lib/smplkit/management/client.rb', line 508 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
529 530 531 532 533 534 |
# File 'lib/smplkit/management/client.rb', line 529 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
522 523 524 525 526 527 |
# File 'lib/smplkit/management/client.rb', line 522 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
515 516 517 518 519 520 |
# File 'lib/smplkit/management/client.rb', line 515 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
479 480 481 482 |
# File 'lib/smplkit/management/client.rb', line 479 def register(declaration) @buffer.add(declaration) flush if @buffer.pending_count >= Management::FLAG_BATCH_FLUSH_SIZE end |