Class: RubyAsterisk::ARI::Resources::Collection

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-asterisk/ari/resources/collection.rb

Overview

Provides a typed collection interface for fetching ARI resources. Enables the Active Record-style pattern: client.channels.get(id).

Instance Method Summary collapse

Constructor Details

#initialize(resource_class, base_path, client) ⇒ Collection

Returns a new instance of Collection.



9
10
11
12
13
# File 'lib/ruby-asterisk/ari/resources/collection.rb', line 9

def initialize(resource_class, base_path, client)
  @resource_class = resource_class
  @base_path = base_path
  @client = client
end

Instance Method Details

#get(id) ⇒ Object



15
16
17
18
# File 'lib/ruby-asterisk/ari/resources/collection.rb', line 15

def get(id)
  data = @client.get("#{@base_path}/#{id}")
  @resource_class.new(data, @client)
end

#list(params = {}) ⇒ Object



20
21
22
23
# File 'lib/ruby-asterisk/ari/resources/collection.rb', line 20

def list(params = {})
  data = @client.get(@base_path, params)
  (data || []).map { |item| @resource_class.new(item, @client) }
end