Module: Jetson::DSL

Included in:
Commands, Console::Context
Defined in:
lib/jetson/dsl.rb

Instance Method Summary collapse

Instance Method Details

#clear(resource = :all) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/jetson/dsl.rb', line 23

def clear(resource = :all)
  case resource
  when :all
    @cookies = {}
    @headers = {}
  when :headers
    @headers = {}
  when :cookies
    @cookies = {}
  end
end

#request(method, url, *args) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/jetson/dsl.rb', line 35

def request(method, url, *args)
  response = request!(method, url, *args)
  json     = parse_json(response.body) if response.headers[:content_type] =~ /json/
        
  print_request(response, json) if @verbose
  
  json
rescue RestClient::InternalServerError => err
  puts "\033[1m#{method.to_s.upcase}\033[0m #{url} \033[31m#{err.response.code}\033[0m" 
end

#request!(method, url, params = {}, headers = {}) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/jetson/dsl.rb', line 46

def request!(method, url, params = {}, headers = {})
  options  = default_options
  url      = URI.join(@host, url).to_s
  
  options.merge!(headers)
  
  if method == :get
    options.merge!({params: params})
    res = RestClient.send(method, url, options)
  else
    res = RestClient.send(method, url, params.to_json, options)
  end
  
  @cookies.merge!(res.cookies)
  
  res
end

#session(host, &block) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/jetson/dsl.rb', line 14

def session(host, &block)
  @host    = normalize_host(host)
  @verbose = false
  @cookies = {}
  @headers = {}
  
  self.instance_eval &block
end

#set(option, value) ⇒ Object



10
11
12
# File 'lib/jetson/dsl.rb', line 10

def set(option, value)
  instance_variable_set("@#{option}", value)
end