Class: Riddl::Client
- Inherits:
-
Object
show all
- Defined in:
- lib/ruby/riddl/client.rb
Overview
Defined Under Namespace
Classes: HTTPRequest, Resource, XMPPRequest
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(base, riddl = nil, options = {}) ⇒ Client
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/ruby/riddl/client.rb', line 87
def initialize(base, riddl=nil, options={})
@base = base.nil? ? '' : base.gsub(/\/+$/,'')
@options = options
@wrapper = nil
if @base !~ RIDDL_URL_PATTERN
raise ConnectionError, 'An RFC 3986 URI as target is required. Pro tip: (http|https|xmpp)://...'
end
if URI.parse(@base).scheme == 'xmpp' && !((@options[:jid] && @options[:pass]) || @options[:xmpp].is_a?(Blather::Client))
raise ConnectionError, 'XMPP connections need jid/pass or Blather::client object passed as options to be successful.'
end
if URI.parse(@base).scheme == 'xmpp' && @options[:jid] && @options[:pass]
sig = SignalWait.new
Thread::abort_on_exception = true
Thread.new do
begin
EM.send EM.reactor_running? ? :defer : :run do
client = Blather::Client.setup @options[:jid], @options[:pass]
client.register_handler(:ready) { sig.continue }
client.connect
@options[:xmpp] = client
sig.continue
end
rescue
raise ConnectionError, 'XMPP connection not successful.'
end
end
sig.wait 2
end
unless riddl.nil?
@wrapper = (riddl.class == Riddl::Wrapper ? riddl : Riddl::Wrapper::new(riddl))
if @wrapper.declaration? && !base.nil?
@wrapper = @wrapper.declaration.description
end
raise SpecificationError, 'No RIDDL description or declaration found.' if !@wrapper.description? && !@wrapper.declaration?
raise SpecificationError, 'RIDDL does not conform to specification' unless @wrapper.validate!
@wrapper.load_necessary_handlers!
@wrapper.load_necessary_roles!
end
end
|
Instance Attribute Details
#base ⇒ Object
Returns the value of attribute base.
126
127
128
|
# File 'lib/ruby/riddl/client.rb', line 126
def base
@base
end
|
Class Method Details
.facade(riddl, options = {}) ⇒ Object
138
139
140
|
# File 'lib/ruby/riddl/client.rb', line 138
def self::facade(riddl,options={})
new(nil,riddl,options)
end
|
.interface(base, riddl, options = {}) ⇒ Object
135
136
137
|
# File 'lib/ruby/riddl/client.rb', line 135
def self::interface(base,riddl,options={})
new(base,riddl,options)
end
|
.location(base, options = {}) ⇒ Object
132
133
134
|
# File 'lib/ruby/riddl/client.rb', line 132
def self::location(base,options={})
new(base,nil,options)
end
|
Instance Method Details
#close_xmpp ⇒ Object
128
129
130
|
# File 'lib/ruby/riddl/client.rb', line 128
def close_xmpp
@options[:xmpp].close if @options[:xmpp]
end
|
#delete(parameters = []) ⇒ Object
151
|
# File 'lib/ruby/riddl/client.rb', line 151
def delete(parameters = []); resource.delete(parameters); end
|
#get(parameters = []) ⇒ Object
145
|
# File 'lib/ruby/riddl/client.rb', line 145
def get(parameters = []); resource.get(parameters); end
|
#post(parameters = []) ⇒ Object
147
|
# File 'lib/ruby/riddl/client.rb', line 147
def post(parameters = []); resource.post(parameters); end
|
#put(parameters = []) ⇒ Object
149
|
# File 'lib/ruby/riddl/client.rb', line 149
def put(parameters = []); resource.put(parameters); end
|
#request(what) ⇒ Object
153
|
# File 'lib/ruby/riddl/client.rb', line 153
def request(what) resource.request(what); end
|
#resource(path = "") ⇒ Object
142
143
144
|
# File 'lib/ruby/riddl/client.rb', line 142
def resource(path="")
Resource.new(@base,@wrapper,path,@options)
end
|
#simulate_delete(parameters = []) ⇒ Object
152
|
# File 'lib/ruby/riddl/client.rb', line 152
def simulate_delete(parameters = []); resource.simulate_delete(parameters); end
|
#simulate_get(parameters = []) ⇒ Object
146
|
# File 'lib/ruby/riddl/client.rb', line 146
def simulate_get(parameters = []); resource.simulate_get(parameters); end
|
#simulate_post(parameters = []) ⇒ Object
148
|
# File 'lib/ruby/riddl/client.rb', line 148
def simulate_post(parameters = []); resource.simulate_post(parameters); end
|
#simulate_put(parameters = []) ⇒ Object
150
|
# File 'lib/ruby/riddl/client.rb', line 150
def simulate_put(parameters = []); resource.simulate_put(parameters); end
|
#simulate_request(what) ⇒ Object
154
|
# File 'lib/ruby/riddl/client.rb', line 154
def simulate_request(what) resource.simulate_request(what); end
|
#ws(blk) ⇒ Object
155
|
# File 'lib/ruby/riddl/client.rb', line 155
def ws(blk) resource.ws(blk); end
|