diff --git a/Gemfile.lock b/Gemfile.lock index 96ee7e6..5acbbbc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - leopard (0.1.7) + leopard (0.2.1) concurrent-ruby (~> 1.1) dry-configurable (~> 1.3) dry-monads (~> 1.9) @@ -53,7 +53,7 @@ GEM racc (1.8.1) rainbow (3.1.1) rake (13.3.0) - regexp_parser (2.11.0) + regexp_parser (2.11.1) reline (0.6.2) io-console (~> 0.5) rubocop (1.79.2) diff --git a/examples/groups.rb b/examples/groups.rb new file mode 100755 index 0000000..e8ad1de --- /dev/null +++ b/examples/groups.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require_relative '../lib/leopard/nats_api_server' + +# Example to echo the given message +class ServiceGroups + include Rubyists::Leopard::NatsApiServer + + def initialize(a_var: 1) + logger.info "ServiceGroups initialized with a_var: #{a_var}" + end + + group :mammal + group :feline, group: :mammal, queue: :meow + endpoint(:sound, group: :feline) { |msg| Success("Meow! #{msg.data}") } + endpoint(:fail, group: :feline) { |msg| Failure({ reason: 'cat nap', data: msg.data }) } +end + +if __FILE__ == $PROGRAM_NAME + SemanticLogger.default_level = :info + SemanticLogger.add_appender(io: $stdout, formatter: :color) + ServiceGroups.run( + nats_url: 'nats://localhost:4222', + service_opts: { + name: 'example.groups', + version: '1.0.0', + instance_args: { a_var: 2 }, + }, + instances: 1, + ) +end