fiddler 0.0.1alpha → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/fiddler.rb +4 -2
- data/lib/fiddler/connection_manager.rb +19 -12
- data/lib/fiddler/errors.rb +1 -0
- data/lib/fiddler/formatters.rb +2 -0
- data/lib/fiddler/formatters/base_formatter.rb +6 -0
- data/lib/fiddler/formatters/search_request_formatter.rb +86 -0
- data/lib/fiddler/parsers/base_parser.rb +16 -7
- data/lib/fiddler/parsers/ticket_parser.rb +51 -3
- data/lib/fiddler/ticket.rb +43 -7
- data/lib/fiddler/version.rb +1 -1
- data/spec/configuration_spec.rb +1 -2
- data/spec/connection_manager_spec.rb +26 -10
- data/spec/formatters/base_formatter_spec.rb +4 -0
- data/spec/formatters/search_request_formatter_spec.rb +17 -0
- data/spec/parsers/base_parser_spec.rb +24 -0
- data/spec/parsers/ticket_parser_spec.rb +30 -0
- data/spec/spec_helper.rb +13 -5
- data/spec/ticket_spec.rb +7 -1
- metadata +38 -6
- data/lib/fiddler/helper.rb +0 -9
data/lib/fiddler.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
require 'fiddler/configuration'
|
|
2
|
-
require 'fiddler/helper'
|
|
3
2
|
require 'fiddler/errors'
|
|
4
3
|
require 'fiddler/parsers'
|
|
4
|
+
require 'fiddler/formatters'
|
|
5
5
|
require 'fiddler/ticket'
|
|
6
|
-
require 'fiddler/connection_manager'
|
|
6
|
+
require 'fiddler/connection_manager'
|
|
7
|
+
|
|
8
|
+
require 'active_support/all'
|
|
@@ -16,10 +16,13 @@ module Fiddler
|
|
|
16
16
|
|
|
17
17
|
def get(url,options)
|
|
18
18
|
url = "#{base_url}#{url}"
|
|
19
|
-
|
|
19
|
+
options = options_with_login(options)
|
|
20
|
+
@client.get(url,options).content
|
|
20
21
|
end
|
|
21
22
|
|
|
22
|
-
def post
|
|
23
|
+
def post(url,options)
|
|
24
|
+
url = "#{base_url}#{url}"
|
|
25
|
+
@client.post(url,options_with_login(options)).content
|
|
23
26
|
end
|
|
24
27
|
|
|
25
28
|
def options_with_login(options)
|
|
@@ -32,33 +35,37 @@ module Fiddler
|
|
|
32
35
|
class << self
|
|
33
36
|
attr_accessor :client_connection
|
|
34
37
|
|
|
35
|
-
def connection
|
|
36
|
-
self.client_connection ||= Connection.new
|
|
37
|
-
end
|
|
38
|
-
|
|
39
38
|
def get(url,options={})
|
|
40
39
|
check_config
|
|
41
|
-
connection.get(url,options)
|
|
40
|
+
response = connection.get(url,options)
|
|
41
|
+
debug(response)
|
|
42
|
+
response
|
|
42
43
|
end
|
|
43
44
|
|
|
44
|
-
def post(url,
|
|
45
|
+
def post(url,options={})
|
|
45
46
|
check_config
|
|
46
|
-
connection.post(url,options)
|
|
47
|
+
response = connection.post(url,options)
|
|
48
|
+
debug(response)
|
|
49
|
+
response
|
|
47
50
|
end
|
|
48
51
|
|
|
49
52
|
protected
|
|
50
53
|
|
|
51
54
|
def check_config
|
|
52
55
|
config = Fiddler.configuration
|
|
53
|
-
raise InvalidConfigurationError
|
|
54
|
-
|
|
56
|
+
raise InvalidConfigurationError if config.server_url.blank?
|
|
57
|
+
if config.username.blank? or config.password.blank?
|
|
55
58
|
raise InvalidConfigurationError unless config.use_cookies
|
|
56
59
|
end
|
|
57
60
|
end
|
|
58
61
|
|
|
59
|
-
def
|
|
62
|
+
def connection
|
|
63
|
+
self.client_connection ||= Connection.new
|
|
60
64
|
end
|
|
61
65
|
|
|
66
|
+
def debug(response)
|
|
67
|
+
puts response.inspect if ENV['DEBUG']
|
|
68
|
+
end
|
|
62
69
|
end # end class method definitions
|
|
63
70
|
end # end ConnectionManager module definition
|
|
64
71
|
end # end main module
|
data/lib/fiddler/errors.rb
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Fiddler
|
|
2
|
+
module Formatters
|
|
3
|
+
class SearchRequestFormatter < BaseFormatter
|
|
4
|
+
class << self
|
|
5
|
+
def format(options={})
|
|
6
|
+
result = Hash.new
|
|
7
|
+
|
|
8
|
+
unless options.empty?
|
|
9
|
+
query = Array.new
|
|
10
|
+
|
|
11
|
+
add_array_or_single(options, query, :queue)
|
|
12
|
+
add_array_or_single(options, query, :status)
|
|
13
|
+
add_text_search_fields(options,query)
|
|
14
|
+
add_date_search_fields(options,query)
|
|
15
|
+
|
|
16
|
+
query << options[:conditions].to_s.chomp if options[:conditions]
|
|
17
|
+
|
|
18
|
+
result = { "query" => query.join(" AND "), :format => "l"}
|
|
19
|
+
end
|
|
20
|
+
result
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
protected
|
|
24
|
+
|
|
25
|
+
def add_array_or_single(options, query_array, key)
|
|
26
|
+
unless query_array and options and options.keys.include?(key)
|
|
27
|
+
return false
|
|
28
|
+
end
|
|
29
|
+
value = options[key]
|
|
30
|
+
name = key.to_s.camelize
|
|
31
|
+
if value.is_a?(Array)
|
|
32
|
+
sub_parts = Array.new
|
|
33
|
+
value.each do |part|
|
|
34
|
+
sub_parts << "#{name} = '#{part}'"
|
|
35
|
+
end
|
|
36
|
+
query_array << '( ' + sub_parts.join(' OR ') + ' )'
|
|
37
|
+
elsif value.is_a?(String) || value.is_a?(Symbol)
|
|
38
|
+
query_array << "#{name} = '#{value.to_s}'"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def add_text_search_fields(options,query_array)
|
|
43
|
+
text_fields = %w( subject content content_type file_name owner requestors cc admin_cc)
|
|
44
|
+
options.each do |key, value|
|
|
45
|
+
if text_fields.include?(key.to_s)
|
|
46
|
+
key = key.to_s.camelize
|
|
47
|
+
parts = Array.new
|
|
48
|
+
if value.is_a?(Array)
|
|
49
|
+
value.each do |v|
|
|
50
|
+
parts << "#{key} LIKE '#{v}'"
|
|
51
|
+
end
|
|
52
|
+
query_array << '( ' + parts.join(" AND ") + ' )'
|
|
53
|
+
elsif value.is_a?(String)
|
|
54
|
+
# special case for when user is Nobody, like doesnt work there
|
|
55
|
+
if key == "Owner" and value == "Nobody"
|
|
56
|
+
query_array << "#{key} = '#{value}'"
|
|
57
|
+
else
|
|
58
|
+
query_array << "#{key} LIKE '#{value}'"
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def add_date_search_fields(options,query_array)
|
|
66
|
+
date_field = %w( created started resolved told last_updated starts due updated )
|
|
67
|
+
options.each do |key, value|
|
|
68
|
+
if date_field.include?(key.to_s)
|
|
69
|
+
key = key.to_s.camelize
|
|
70
|
+
parts = Array.new
|
|
71
|
+
if value.is_a?(Range) or value.is_a?(Array)
|
|
72
|
+
parts << "#{key} > '#{value.first.is_a?(Time) ? value.first.strftime("%Y-%m-%d %H:%M:%S") : value.first.to_s}'"
|
|
73
|
+
parts << "#{key} < '#{value.last.is_a?(Time) ? value.last.strftime("%Y-%m-%d %H:%M:%S") : value.last.to_s}'"
|
|
74
|
+
elsif value.is_a?(String)
|
|
75
|
+
parts << "#{key} > '#{value.to_s}'"
|
|
76
|
+
elsif value.is_a?(Time)
|
|
77
|
+
parts << "#{key} > '#{value.strftime("%Y-%m-%d %H:%M:%S")}'"
|
|
78
|
+
end
|
|
79
|
+
query_array << '( ' + parts.join(" AND ") + ' )'
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
module Fiddler
|
|
2
2
|
module Parsers
|
|
3
3
|
class BaseParser
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
|
|
5
|
+
SUCCESS_CODES = (200..299).to_a
|
|
6
|
+
ERROR_CODES = (400..499).to_a
|
|
7
|
+
|
|
8
|
+
def self.check_response_code(response)
|
|
9
|
+
lines = response.split("\n").reject { |l| l.nil? or l == "" }
|
|
10
|
+
if lines.count == 0
|
|
11
|
+
raise RequestError, "Empty Response"
|
|
12
|
+
else
|
|
13
|
+
status_line = lines.shift
|
|
14
|
+
version, status_code, status_text = status_line.split(/\s+/,2)
|
|
15
|
+
unless SUCCESS_CODES.include?(status_code.to_i)
|
|
16
|
+
raise RequestError, status_text
|
|
17
|
+
end
|
|
18
|
+
lines
|
|
19
|
+
end
|
|
11
20
|
end
|
|
12
21
|
end
|
|
13
22
|
end
|
|
@@ -1,9 +1,57 @@
|
|
|
1
1
|
module Fiddler
|
|
2
2
|
module Parsers
|
|
3
3
|
class TicketParser < BaseParser
|
|
4
|
-
def self.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
def self.parse_single(response)
|
|
5
|
+
response = check_response_code(response)
|
|
6
|
+
response = check_for_errors(response)
|
|
7
|
+
ticket_from_response(response)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.parse_multiple(response)
|
|
11
|
+
response = check_response_code(response)
|
|
12
|
+
response = check_for_errors(response)
|
|
13
|
+
ticket_token_responses = tokenize_response(response)
|
|
14
|
+
tickets = Array.new
|
|
15
|
+
ticket_token_responses.each do |token_response|
|
|
16
|
+
tickets << ticket_from_response(token_response)
|
|
17
|
+
end
|
|
18
|
+
tickets
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
protected
|
|
22
|
+
|
|
23
|
+
def self.check_for_errors(response)
|
|
24
|
+
message = response.first.strip
|
|
25
|
+
if message =~ /^#/
|
|
26
|
+
raise Fiddler::TicketNotFoundError, message
|
|
27
|
+
end
|
|
28
|
+
response
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.ticket_from_response(response)
|
|
32
|
+
result = {}
|
|
33
|
+
response.each do |line|
|
|
34
|
+
matches = /^(.*?):\s(.*)/.match(line)
|
|
35
|
+
if(matches)
|
|
36
|
+
key = matches[1].underscore
|
|
37
|
+
result[key] = matches[2]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
Fiddler::Ticket.new(result)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def self.tokenize_response(response)
|
|
44
|
+
tokens = Array.new
|
|
45
|
+
current = Array.new
|
|
46
|
+
response.each do |item|
|
|
47
|
+
if(item == "--")
|
|
48
|
+
tokens << current
|
|
49
|
+
current = Array.new
|
|
50
|
+
next
|
|
51
|
+
end
|
|
52
|
+
current << item
|
|
53
|
+
end
|
|
54
|
+
tokens
|
|
7
55
|
end
|
|
8
56
|
end
|
|
9
57
|
end
|
data/lib/fiddler/ticket.rb
CHANGED
|
@@ -1,16 +1,42 @@
|
|
|
1
1
|
module Fiddler
|
|
2
2
|
class Ticket
|
|
3
|
-
attr_accessor :id, :subject, :status, :queue, :owner, :creator, :histories, :content, :last_updated
|
|
4
3
|
|
|
4
|
+
DefaultAttributes = %w(queue owner creator subject status priority initial_priority final_priority requestors cc admin_cc created starts started due resolved told last_updated time_estimated time_worked time_left text).inject({}){|memo, k| memo[k] = nil; memo}
|
|
5
|
+
RequiredAttributes = %w(queue subject)
|
|
6
|
+
|
|
7
|
+
attr_reader :histories, :saved
|
|
8
|
+
|
|
5
9
|
# Initializes a new instance of ticket object
|
|
6
10
|
#
|
|
7
11
|
# @params [Hash] of the initial options
|
|
8
|
-
def initialize(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
def initialize(attributes={})
|
|
13
|
+
if attributes
|
|
14
|
+
@attributes = DefaultAttributes.merge(attributes)
|
|
15
|
+
else
|
|
16
|
+
@attributes = DefaultAttributes
|
|
17
|
+
end
|
|
18
|
+
@attributes.update(:id => 'ticket/new')
|
|
19
|
+
@saved = false
|
|
20
|
+
@histories = []
|
|
21
|
+
@new_record = true
|
|
22
|
+
add_methods!
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def add_methods!
|
|
26
|
+
@attributes.each do |key, value|
|
|
27
|
+
(class << self; self; end).send :define_method, key do
|
|
28
|
+
return @attributes[key]
|
|
29
|
+
end
|
|
30
|
+
(class << self; self; end).send :define_method, "#{key}=" do |new_val|
|
|
31
|
+
@attributes[key] = new_val
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def description
|
|
37
|
+
@attributes.each do |key,value|
|
|
38
|
+
puts "#{key} = #{value}"
|
|
12
39
|
end
|
|
13
|
-
@id = "ticket/new"
|
|
14
40
|
end
|
|
15
41
|
|
|
16
42
|
# Class methods
|
|
@@ -22,7 +48,17 @@ module Fiddler
|
|
|
22
48
|
def get(id)
|
|
23
49
|
url = "ticket/#{id}"
|
|
24
50
|
response = Fiddler::ConnectionManager.get(url)
|
|
25
|
-
ticket = Fiddler::Parsers::TicketParser.
|
|
51
|
+
ticket = Fiddler::Parsers::TicketParser.parse_single(response)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Search the tickets with the given conditions
|
|
55
|
+
#
|
|
56
|
+
# @params [Hash] of conditions
|
|
57
|
+
# @returns [Array<Ticket>] of the tickets matching the criteria
|
|
58
|
+
def all(conditions={})
|
|
59
|
+
url = "search/ticket"
|
|
60
|
+
response = Fiddler::ConnectionManager.get(url,Fiddler::Formatters::SearchRequestFormatter.format(conditions))
|
|
61
|
+
ticket = Fiddler::Parsers::TicketParser.parse_multiple(response)
|
|
26
62
|
end
|
|
27
63
|
|
|
28
64
|
# Creates a new ticket with the given options, it will not save the ticket
|
data/lib/fiddler/version.rb
CHANGED
data/spec/configuration_spec.rb
CHANGED
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe Fiddler::ConnectionManager do
|
|
4
|
-
before do
|
|
5
|
-
reset_config
|
|
6
|
-
end
|
|
7
|
-
|
|
8
4
|
describe "without proper config" do
|
|
5
|
+
before do
|
|
6
|
+
reset_config
|
|
7
|
+
end
|
|
8
|
+
|
|
9
9
|
it "should raise invalid Configuration error for missing configuration" do
|
|
10
|
-
Fiddler.configure do |config|
|
|
11
|
-
end
|
|
12
10
|
expect { Fiddler::ConnectionManager.get("https://www.google.com") }.to raise_error(Fiddler::InvalidConfigurationError)
|
|
13
11
|
end
|
|
14
12
|
|
|
15
13
|
it "should raise invalid Configuration error for missing credentials if cookies are not enabled" do
|
|
16
|
-
Fiddler.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
Fiddler.configuration.server_url = "https://some_server"
|
|
15
|
+
expect { Fiddler::ConnectionManager.get("/") }.to raise_error(Fiddler::InvalidConfigurationError)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should raise error for invalid server url" do
|
|
19
|
+
Fiddler.configuration.server_url = "https://some_server"
|
|
20
|
+
Fiddler.configuration.use_cookies = true
|
|
21
|
+
expect { Fiddler::ConnectionManager.get("/") }.to raise_error
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "making request" do
|
|
26
|
+
before do
|
|
27
|
+
test_config
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should not return nil response for get request" do
|
|
31
|
+
Fiddler::ConnectionManager.get("/").should_not be_nil
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should not return nil response for post request" do
|
|
35
|
+
Fiddler::ConnectionManager.post("/").should_not be_nil
|
|
20
36
|
end
|
|
21
37
|
end
|
|
22
38
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Fiddler::Formatters::SearchRequestFormatter do
|
|
4
|
+
it "should return a hash for the format" do
|
|
5
|
+
Fiddler::Formatters::SearchRequestFormatter.format( { :owner => "jais.cheema" }).should be_a_kind_of(Hash)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should return a query key in hash with the search options" do
|
|
9
|
+
search_hash = Fiddler::Formatters::SearchRequestFormatter.format( { :owner => "jais.cheema" })
|
|
10
|
+
search_hash.keys.should include("query")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should return a format key in hash with the long option" do
|
|
14
|
+
search_hash = Fiddler::Formatters::SearchRequestFormatter.format( { :owner => "jais.cheema" })
|
|
15
|
+
search_hash.keys.should include(:format)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Fiddler::Parsers::BaseParser do
|
|
4
|
+
before do
|
|
5
|
+
test_config
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should not raise error for valid request" do
|
|
9
|
+
response = Fiddler::ConnectionManager.get("/")
|
|
10
|
+
expect { Fiddler::Parsers::BaseParser.check_response_code(response) }.to_not raise_error
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should return an array of lines after checking response" do
|
|
14
|
+
response = Fiddler::ConnectionManager.get("/")
|
|
15
|
+
Fiddler::Parsers::BaseParser.check_response_code(response).should be_a_kind_of(Array)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should strip the response line from return array" do
|
|
19
|
+
response = Fiddler::ConnectionManager.get("/")
|
|
20
|
+
response_array = response.split("\n").reject { |l| l.nil? or l == "" }
|
|
21
|
+
|
|
22
|
+
Fiddler::Parsers::BaseParser.check_response_code(response).length.should eql(response_array.length-1)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Fiddler::Parsers::TicketParser do
|
|
4
|
+
before do
|
|
5
|
+
test_config
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should return the response for proper request minus empty line" do
|
|
9
|
+
response = Fiddler::ConnectionManager.get("/ticket/4200")
|
|
10
|
+
response = Fiddler::Parsers::TicketParser.check_response_code(response)
|
|
11
|
+
desired_length = response.length
|
|
12
|
+
Fiddler::Parsers::TicketParser.check_for_errors(response).length.should eql(desired_length)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should raise TicketFetchError for invalid response" do
|
|
16
|
+
response = Fiddler::ConnectionManager.get("/ticket/asdsadasds")
|
|
17
|
+
response = Fiddler::Parsers::TicketParser.check_response_code(response)
|
|
18
|
+
expect { Fiddler::Parsers::TicketParser.check_for_errors(response) }.to raise_error
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should give ticket object for parse single method" do
|
|
22
|
+
response = Fiddler::ConnectionManager.get("/ticket/4200")
|
|
23
|
+
Fiddler::Parsers::TicketParser.parse_single(response).should be_a_kind_of(Fiddler::Ticket)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should give array of ticket objects for parse multiple method" do
|
|
27
|
+
response = Fiddler::ConnectionManager.get("/search/ticket?query=Owner='jais.cheema'")
|
|
28
|
+
Fiddler::Parsers::TicketParser.parse_multiple(response).should be_a_kind_of(Array)
|
|
29
|
+
end
|
|
30
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'spork'
|
|
3
|
+
require 'rspec'
|
|
4
|
+
|
|
1
5
|
PROJECT_ROOT = File.expand_path('../..', __FILE__)
|
|
2
6
|
$LOAD_PATH << File.join(PROJECT_ROOT, 'lib')
|
|
3
7
|
|
|
4
8
|
require 'fiddler'
|
|
5
9
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
Spork.prefork do
|
|
11
|
+
RSpec.configure do |config|
|
|
12
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
13
|
+
config.run_all_when_everything_filtered = true
|
|
14
|
+
config.filter_run :focus
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Spork.each_run do
|
|
11
19
|
end
|
|
12
20
|
|
|
13
21
|
# create a file named config.rb here with the two methods
|
data/spec/ticket_spec.rb
CHANGED
|
@@ -6,10 +6,16 @@ describe Fiddler::Ticket do
|
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
it "should find a ticket with given id" do
|
|
9
|
-
Fiddler::Ticket.get(4200).
|
|
9
|
+
Fiddler::Ticket.get(4200).should be_a_kind_of(Fiddler::Ticket)
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it "should raise exception for invalid id" do
|
|
13
13
|
expect { Fiddler::Ticket.get(50000) }.to raise_error(Fiddler::TicketNotFoundError)
|
|
14
14
|
end
|
|
15
|
+
|
|
16
|
+
describe "executing all method" do
|
|
17
|
+
it "should return all the user assigned tickets for empty conditions" do
|
|
18
|
+
Fiddler::Ticket.all.should be_a_kind_of(Array)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
15
21
|
end
|
metadata
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fiddler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
prerelease:
|
|
5
|
-
version: 0.0.
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 0.0.1
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Jais Cheema
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2012-10-
|
|
13
|
+
date: 2012-10-04 00:00:00 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: httpclient
|
|
@@ -45,6 +45,28 @@ dependencies:
|
|
|
45
45
|
version: "0"
|
|
46
46
|
type: :development
|
|
47
47
|
version_requirements: *id003
|
|
48
|
+
- !ruby/object:Gem::Dependency
|
|
49
|
+
name: spork
|
|
50
|
+
prerelease: false
|
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
52
|
+
none: false
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: "0"
|
|
57
|
+
type: :development
|
|
58
|
+
version_requirements: *id004
|
|
59
|
+
- !ruby/object:Gem::Dependency
|
|
60
|
+
name: watchr
|
|
61
|
+
prerelease: false
|
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
63
|
+
none: false
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: "0"
|
|
68
|
+
type: :development
|
|
69
|
+
version_requirements: *id005
|
|
48
70
|
description: This is the interface to request tracker based on Roart Gem
|
|
49
71
|
email:
|
|
50
72
|
- jaischeema@gmail.com
|
|
@@ -59,18 +81,24 @@ files:
|
|
|
59
81
|
- lib/tasks/fiddler_tasks.rake
|
|
60
82
|
- lib/fiddler/version.rb
|
|
61
83
|
- lib/fiddler/errors.rb
|
|
84
|
+
- lib/fiddler/formatters.rb
|
|
62
85
|
- lib/fiddler/connection_manager.rb
|
|
63
86
|
- lib/fiddler/parsers.rb
|
|
64
87
|
- lib/fiddler/configuration.rb
|
|
65
|
-
- lib/fiddler/helper.rb
|
|
66
88
|
- lib/fiddler/ticket.rb
|
|
67
89
|
- lib/fiddler/parsers/ticket_parser.rb
|
|
68
90
|
- lib/fiddler/parsers/base_parser.rb
|
|
91
|
+
- lib/fiddler/formatters/search_request_formatter.rb
|
|
92
|
+
- lib/fiddler/formatters/base_formatter.rb
|
|
69
93
|
- spec/spec_helper.rb
|
|
70
94
|
- spec/ticket_spec.rb
|
|
71
95
|
- spec/configuration_spec.rb
|
|
72
96
|
- spec/config.rb
|
|
73
97
|
- spec/connection_manager_spec.rb
|
|
98
|
+
- spec/formatters/search_request_formatter_spec.rb
|
|
99
|
+
- spec/formatters/base_formatter_spec.rb
|
|
100
|
+
- spec/parsers/base_parser_spec.rb
|
|
101
|
+
- spec/parsers/ticket_parser_spec.rb
|
|
74
102
|
- Rakefile
|
|
75
103
|
- README.md
|
|
76
104
|
homepage: https://github.com/jaischeema/fiddler
|
|
@@ -90,9 +118,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
90
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
119
|
none: false
|
|
92
120
|
requirements:
|
|
93
|
-
- - "
|
|
121
|
+
- - ">="
|
|
94
122
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
123
|
+
version: "0"
|
|
96
124
|
requirements: []
|
|
97
125
|
|
|
98
126
|
rubyforge_project:
|
|
@@ -106,3 +134,7 @@ test_files:
|
|
|
106
134
|
- spec/configuration_spec.rb
|
|
107
135
|
- spec/config.rb
|
|
108
136
|
- spec/connection_manager_spec.rb
|
|
137
|
+
- spec/formatters/search_request_formatter_spec.rb
|
|
138
|
+
- spec/formatters/base_formatter_spec.rb
|
|
139
|
+
- spec/parsers/base_parser_spec.rb
|
|
140
|
+
- spec/parsers/ticket_parser_spec.rb
|