Class: Smplkit::ManagementClient::FlagsNamespace
- Inherits:
-
Object
- Object
- Smplkit::ManagementClient::FlagsNamespace
- 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(api_client) ⇒ 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(api_client) ⇒ FlagsNamespace
Returns a new instance of FlagsNamespace.
535 536 537 538 |
# File 'lib/smplkit/management/client.rb', line 535 def initialize(api_client) @api = SmplkitGeneratedClient::Flags::FlagsApi.new(api_client) @buffer = Management::FlagRegistrationBuffer.new end |
Instance Method Details
#_create_flag(flag) ⇒ Object
604 605 606 607 |
# File 'lib/smplkit/management/client.rb', line 604 def _create_flag(flag) response = ErrorMapping.call { @api.create_flag(flag_body(flag)) } flag_from_resource(ResourceShim.from_model(response.data)) end |
#_update_flag(flag) ⇒ Object
609 610 611 612 |
# File 'lib/smplkit/management/client.rb', line 609 def _update_flag(flag) response = ErrorMapping.call { @api.update_flag(flag.id, flag_body(flag)) } flag_from_resource(ResourceShim.from_model(response.data)) end |
#delete(id) ⇒ Object
571 572 573 574 |
# File 'lib/smplkit/management/client.rb', line 571 def delete(id) ErrorMapping.call { @api.delete_flag(id) } true end |
#fetch_flag(id) ⇒ Object
614 615 616 617 |
# File 'lib/smplkit/management/client.rb', line 614 def fetch_flag(id) response = ErrorMapping.call { @api.get_flag(id) } Smplkit::Flags::Helpers.flag_dict_from_json(ResourceShim.from_model(response.data)) end |
#flush ⇒ Object
545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 |
# File 'lib/smplkit/management/client.rb', line 545 def flush batch = @buffer.drain return if batch.empty? flag_items = batch.map do |entry| SmplkitGeneratedClient::Flags::FlagBulkItem.new( id: entry["id"], type: entry["type"], default: entry["default"], service: entry["service"], environment: entry["environment"] ) end body = SmplkitGeneratedClient::Flags::FlagBulkRequest.new(flags: flag_items) ErrorMapping.call { @api.bulk_register_flags(body) } rescue StandardError => e Smplkit.debug("registration", "flag flush failed: #{e.class}: #{e.}") end |
#get(id) ⇒ Object
566 567 568 569 |
# File 'lib/smplkit/management/client.rb', line 566 def get(id) response = ErrorMapping.call { @api.get_flag(id) } flag_from_resource(ResourceShim.from_model(response.data)) end |
#list ⇒ Object
561 562 563 564 |
# File 'lib/smplkit/management/client.rb', line 561 def list response = ErrorMapping.call { @api.list_flags } (response.data || []).map { |r| flag_from_resource(ResourceShim.from_model(r)) } end |
#list_flags ⇒ Object
619 620 621 622 |
# File 'lib/smplkit/management/client.rb', line 619 def list_flags response = ErrorMapping.call { @api.list_flags } (response.data || []).map { |r| Smplkit::Flags::Helpers.flag_dict_from_json(ResourceShim.from_model(r)) } end |
#new_boolean_flag(id, default:, name: nil, description: nil, values: nil) ⇒ Object
576 577 578 579 580 581 |
# File 'lib/smplkit/management/client.rb', line 576 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
597 598 599 600 601 602 |
# File 'lib/smplkit/management/client.rb', line 597 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
590 591 592 593 594 595 |
# File 'lib/smplkit/management/client.rb', line 590 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
583 584 585 586 587 588 |
# File 'lib/smplkit/management/client.rb', line 583 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
540 541 542 543 |
# File 'lib/smplkit/management/client.rb', line 540 def register(declaration) @buffer.add(declaration) flush if @buffer.pending_count >= Management::FLAG_BATCH_FLUSH_SIZE end |