Class: Webspicy::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/webspicy/resource.rb,
lib/webspicy/resource/service.rb,
lib/webspicy/resource/service/test_case.rb,
lib/webspicy/resource/service/invocation.rb

Defined Under Namespace

Classes: Service

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw) ⇒ Resource

Returns a new instance of Resource.



4
5
6
7
# File 'lib/webspicy/resource.rb', line 4

def initialize(raw)
  @raw = raw
  bind_services
end

Class Method Details

.info(raw) ⇒ Object



9
10
11
# File 'lib/webspicy/resource.rb', line 9

def self.info(raw)
  new(raw)
end

Instance Method Details

#instantiate_url(params) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/webspicy/resource.rb', line 25

def instantiate_url(params)
  url, rest = self.url, params.dup
  url_placeholders.each do |placeholder|
    key = [placeholder, placeholder.to_s].find{|x| params.has_key?(x) }
    if key
      url = url.gsub("{#{placeholder}}", params[key].to_s)
      rest.delete(placeholder)
    else
      raise "Missing URL parameter `#{placeholder}`\n\t(#{params.inspect})"
    end
  end
  [ url, rest ]
end

#servicesObject



17
18
19
# File 'lib/webspicy/resource.rb', line 17

def services
  @raw[:services]
end

#to_infoObject



39
40
41
# File 'lib/webspicy/resource.rb', line 39

def to_info
  @raw
end

#urlObject



13
14
15
# File 'lib/webspicy/resource.rb', line 13

def url
  @raw[:url]
end

#url_placeholdersObject



21
22
23
# File 'lib/webspicy/resource.rb', line 21

def url_placeholders
  url.scan(/\{([a-zA-Z]+)\}/).map{|x| x.first.to_sym }
end