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
86
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
|
# File 'lib/ruby/riddl/client.rb', line 86
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.
125
126
127
|
# File 'lib/ruby/riddl/client.rb', line 125
def base
@base
end
|
Class Method Details
.facade(riddl, options = {}) ⇒ Object
137
138
139
|
# File 'lib/ruby/riddl/client.rb', line 137
def self::facade(riddl,options={})
new(nil,riddl,options)
end
|
.interface(base, riddl, options = {}) ⇒ Object
134
135
136
|
# File 'lib/ruby/riddl/client.rb', line 134
def self::interface(base,riddl,options={})
new(base,riddl,options)
end
|
.location(base, options = {}) ⇒ Object
131
132
133
|
# File 'lib/ruby/riddl/client.rb', line 131
def self::location(base,options={})
new(base,nil,options)
end
|
Instance Method Details
#close_xmpp ⇒ Object
127
128
129
|
# File 'lib/ruby/riddl/client.rb', line 127
def close_xmpp
@options[:xmpp].close if @options[:xmpp]
end
|
#delete(parameters = []) ⇒ Object
150
|
# File 'lib/ruby/riddl/client.rb', line 150
def delete(parameters = []); resource.delete(parameters); end
|
#get(parameters = []) ⇒ Object
144
|
# File 'lib/ruby/riddl/client.rb', line 144
def get(parameters = []); resource.get(parameters); end
|
#post(parameters = []) ⇒ Object
146
|
# File 'lib/ruby/riddl/client.rb', line 146
def post(parameters = []); resource.post(parameters); end
|
#put(parameters = []) ⇒ Object
148
|
# File 'lib/ruby/riddl/client.rb', line 148
def put(parameters = []); resource.put(parameters); end
|
#request(what) ⇒ Object
152
|
# File 'lib/ruby/riddl/client.rb', line 152
def request(what) resource.request(what); end
|
#resource(path = "") ⇒ Object
141
142
143
|
# File 'lib/ruby/riddl/client.rb', line 141
def resource(path="")
Resource.new(@base,@wrapper,path,@options)
end
|
#simulate_delete(parameters = []) ⇒ Object
151
|
# File 'lib/ruby/riddl/client.rb', line 151
def simulate_delete(parameters = []); resource.simulate_delete(parameters); end
|
#simulate_get(parameters = []) ⇒ Object
145
|
# File 'lib/ruby/riddl/client.rb', line 145
def simulate_get(parameters = []); resource.simulate_get(parameters); end
|
#simulate_post(parameters = []) ⇒ Object
147
|
# File 'lib/ruby/riddl/client.rb', line 147
def simulate_post(parameters = []); resource.simulate_post(parameters); end
|
#simulate_put(parameters = []) ⇒ Object
149
|
# File 'lib/ruby/riddl/client.rb', line 149
def simulate_put(parameters = []); resource.simulate_put(parameters); end
|
#simulate_request(what) ⇒ Object
153
|
# File 'lib/ruby/riddl/client.rb', line 153
def simulate_request(what) resource.simulate_request(what); end
|
#ws(blk) ⇒ Object
154
|
# File 'lib/ruby/riddl/client.rb', line 154
def ws(blk) resource.ws(blk); end
|