cherby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/.rspec +3 -0
- data/.travis.yml +4 -0
- data/.yardopts +4 -0
- data/Gemfile +6 -0
- data/README.md +83 -0
- data/Rakefile +12 -0
- data/cherby.gemspec +29 -0
- data/lib/cherby.rb +11 -0
- data/lib/cherby/business_object.rb +159 -0
- data/lib/cherby/cherwell.rb +230 -0
- data/lib/cherby/client.rb +147 -0
- data/lib/cherby/exceptions.rb +6 -0
- data/lib/cherby/incident.rb +141 -0
- data/lib/cherby/journal_note.rb +13 -0
- data/lib/cherby/task.rb +37 -0
- data/lib/cherby/templates/incident.mustache +226 -0
- data/lib/cherby/templates/journal_note.mustache +30 -0
- data/lib/cherby/templates/journal_note_relationship.mustache +3 -0
- data/lib/cherby/templates/task.mustache +67 -0
- data/lib/cherby/templates/task_relationship.mustache +3 -0
- data/lib/cherby/templates/test/simple.mustache +8 -0
- data/spec/business_object_spec.rb +250 -0
- data/spec/cherwell_spec.rb +300 -0
- data/spec/client_spec.rb +149 -0
- data/spec/data/cherwell.wsdl +1568 -0
- data/spec/data/incident.xml +1411 -0
- data/spec/data/login_false.xml +8 -0
- data/spec/data/login_true.xml +6 -0
- data/spec/data/task.xml +64 -0
- data/spec/incident_spec.rb +124 -0
- data/spec/journal_note_spec.rb +13 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/task_spec.rb +77 -0
- data/spec/xml/method_response_result.mustache +4 -0
- data/spec/xml/soap_envelope.mustache +6 -0
- data/tasks/pry.rake +28 -0
- data/tasks/spec.rake +8 -0
- metadata +261 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
3
|
+
<soap:Body>
|
4
|
+
<LoginResponse xmlns="http://cherwellsoftware.com">
|
5
|
+
<LoginResult>false</LoginResult>
|
6
|
+
</LoginResponse>
|
7
|
+
</soap:Body>
|
8
|
+
</soap:Envelope>
|
data/spec/data/task.xml
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<BusinessObject IDREF="9355d5ed41e384ff345b014b6cb1c6e748594aea5b" Name="Task" RecID="93c337b38ec3c1d070775b4713ac8ef55015944edb">
|
3
|
+
<FieldList>
|
4
|
+
<Field IDREF="9355d5ed41677b1e9c897e4fa9b4065d34319187f0" Name="RecID">93c3616c1d44fba838910f43cbac8375b5d66420f7</Field>
|
5
|
+
<Field IDREF="9355d5ed416bbc9408615c4145978ff8538a3f6eb4" Name="CreatedDateTime">2012-02-02T16:03:50</Field>
|
6
|
+
<Field IDREF="9355d5ed416a997f977756423e98e4cf2d2c383864" Name="CreatedBy">Pierce, Eric </Field>
|
7
|
+
<Field IDREF="9355d5ed4191b0a5e6e6ef4222ab0a1615bc1e775f" Name="CreatedByID">93b4dbf806022ef26160604b6bb75683a22d046284</Field>
|
8
|
+
<Field IDREF="9355d5ed4152454ced86f24d479d3abd714d9c5542" Name="LastModDateTime">2012-02-02T16:03:50</Field>
|
9
|
+
<Field IDREF="9355d5ed41fc550492ec39429586225e1272100f7f" Name="LastModBy">Pierce, Eric </Field>
|
10
|
+
<Field IDREF="9355d5ed41e884191af44447569d13636471f97d57" Name="LastModByID">93b4dbf806022ef26160604b6bb75683a22d046284</Field>
|
11
|
+
<Field IDREF="9355d5ed4117df7f98893a4069991cc07ae14542da" Name="OwnedBy"></Field>
|
12
|
+
<Field IDREF="9355d5ed4133155e4cb59949358b7dd850a4798df8" Name="OwnerID"></Field>
|
13
|
+
<Field IDREF="9355d5ed41cc5afcde21a64c17bd94b87a0ca82651" Name="OwnedByTeam">Web Contractors</Field>
|
14
|
+
<Field IDREF="9355d5ed410697aaea29614cd993dc857096c9f8d7" Name="OwnerTeamID">93b10b0b1da3c4ba581a644d9582d9a0b65e3a978d</Field>
|
15
|
+
<Field IDREF="9355d5ed6ca15a8308c5e24389b2138b3aa9b6c7fa" Name="TaskType">Action</Field>
|
16
|
+
<Field IDREF="9355d5ef648edf7a8ed5604d56af11170cce5dc25e" Name="TaskDescription"></Field>
|
17
|
+
<Field IDREF="9355d5f0a511a29076790f44538a28912d1acfde3e" Name="StartDateTime">2012-02-02T16:03:50</Field>
|
18
|
+
<Field IDREF="9355d6d6f3d7531087eab4456482100476d46ac59b" Name="ParentID"></Field>
|
19
|
+
<Field IDREF="9355d6d84625cc7c1a7a48435ea878328f1646c7af" Name="ParentTypeID"></Field>
|
20
|
+
<Field IDREF="9365917a2d7973856a140a49fe9fb3ce04a06cd76b" Name="LastModTimeStamp">0001-01-01T00:00:00</Field>
|
21
|
+
<Field IDREF="9368f13df2afdec4a821254f4784d3f0075aeb57a5" Name="AssignedToID"></Field>
|
22
|
+
<Field IDREF="9368f13d3d8af7b0dd83a641829eed336e3d44152b" Name="AssignedTo"></Field>
|
23
|
+
<Field IDREF="9368f1403d951e9022a67c41f5b58816ad460e2572" Name="AssignedToTeamID"></Field>
|
24
|
+
<Field IDREF="9368f13fe36d569f9744694d9aa469d95d5346e444" Name="AssignedToTeam"></Field>
|
25
|
+
<Field IDREF="9368f144c4290cc902bcf348fba96c062b9b85e8ef" Name="Notes"></Field>
|
26
|
+
<Field IDREF="9368f12af5d798fca7d0a94cb393f7711daf0e6f8b" Name="AcknowledgedByID"></Field>
|
27
|
+
<Field IDREF="9368f12a7e5499855deb1443b89e2d4cdb738db0a3" Name="AcknowledgedBy"></Field>
|
28
|
+
<Field IDREF="9368f12da37cc7c9918710424a956469357c518b30" Name="AcknowledgedDateTime">0001-01-01T00:00:00</Field>
|
29
|
+
<Field IDREF="9368f12b5706fddd62c6cf4a189e65c3a27a0cb5ce" Name="AcknowledgedComment"></Field>
|
30
|
+
<Field IDREF="9355d5f72b5314be2c2def46de8465351073d83c28" Name="ResolvedByID"></Field>
|
31
|
+
<Field IDREF="9355d5f19809ff83d2d6884d1b962a262b6e06e5b5" Name="ResolvedBy"></Field>
|
32
|
+
<Field IDREF="9355d5f1f22b99eb1f359246928742bc550d4830e2" Name="ResolvedDateTime">0001-01-01T00:00:00</Field>
|
33
|
+
<Field IDREF="9355d5f958b17900f038c84d69adfa3ed25677621c" Name="ResolutionCode"></Field>
|
34
|
+
<Field IDREF="9355d5fabd7763ad02894d43eca25b5432e555e1c6" Name="CompletionDetails"></Field>
|
35
|
+
<Field IDREF="9362bc13dc436b4bb7b7244be39f794d31e199d00b" Name="TaskDurationInHours">0.00</Field>
|
36
|
+
<Field IDREF="9368f0fb7b744108a666984c21afc932562eb7dc16" Name="Status">New</Field>
|
37
|
+
<Field IDREF="936942d76eb9d60d435105487199c3c3de63501ad9" Name="Availabiltiy"></Field>
|
38
|
+
<Field IDREF="936942d955962731bfa57b4cf59ad88b9d20817b3c" Name="Email"></Field>
|
39
|
+
<Field IDREF="936942da8a42bd91ba52e14e279f78c84827588844" Name="Phone"></Field>
|
40
|
+
<Field IDREF="936942dc64612d8d336ff3421b9bebbc584138d0ff" Name="CellPhone"></Field>
|
41
|
+
<Field IDREF="9369a1ea7a0da7dfc6f2db4ef78b23765919310b9f" Name="LimitAssigneeByTeam"></Field>
|
42
|
+
<Field IDREF="9387d7edcd90b26af435a5407abac99d264bb2dfcb" Name="ParentTypeName"></Field>
|
43
|
+
<Field IDREF="9387d7efd191c18d9f954747a08ed7765b883e0925" Name="ParentPublicID">12345</Field>
|
44
|
+
<Field IDREF="9387d8ddde75fcad78321947049bd018b4068ede05" Name="TaskOrder">0.00</Field>
|
45
|
+
<Field IDREF="9388ab37b7a2939f20c8f04a0aa276dde3f04a1db9" Name="ParentActivity"></Field>
|
46
|
+
<Field IDREF="9388ab3ed686a256e0490e43fda89d7438ec385440" Name="ActivityOrder">0</Field>
|
47
|
+
<Field IDREF="9388ab43a4e43bbf36c5ad4e58a8578d5c147f2b9b" Name="ParentActivityOrder">0</Field>
|
48
|
+
<Field IDREF="938b647fb54f0efcb90b894beda424baef2e8e6029" Name="DependsOnName"></Field>
|
49
|
+
<Field IDREF="938b648f158b4a123120214f35b329971b9e055279" Name="DependsOnID"></Field>
|
50
|
+
<Field IDREF="938b6490c1c9d876ee004b45b6b2d83b5d3b9d97fc" Name="TaskActive">TRUE</Field>
|
51
|
+
<Field IDREF="938b649246cfdb5b6d51f148c5acb7364abcc661ca" Name="DependsOnStatus"></Field>
|
52
|
+
<Field IDREF="938b6570e5acebac7bc2a5478fb267d9248c0d319f" Name="Name"></Field>
|
53
|
+
<Field IDREF="93948f6bd8feb461e8ce344d17b742085840eda366" Name="EndDateTime">2012-02-02T16:33:50</Field>
|
54
|
+
<Field IDREF="93948f6eb1016504463a5e4dad81a5c2ee8b6248b3" Name="Location"></Field>
|
55
|
+
<Field IDREF="93ae5c81c6efec4ecb7ea441ba9442dcce8104a549" Name="OwnedByNonCherwellUser">FALSE</Field>
|
56
|
+
<Field IDREF="93b118d2fec858f3c90ac54af78cd19e43f575fbb4" Name="TaskID">2777</Field>
|
57
|
+
<Field IDREF="93b26d767fb1b41d09bd0c4fb280e06b1bbb1e7e19" Name="OwnedByEmail"></Field>
|
58
|
+
<Field IDREF="93b270762452d77ed16ad6464cabddaea3e48387a7" Name="TeamNotified">FALSE</Field>
|
59
|
+
<Field IDREF="93b367cfbd23f3c5bfdd38422a9984154fa2a7c691" Name="ActiveBy"></Field>
|
60
|
+
<Field IDREF="93b367d09000c9c244d1dd44e18a788d21ecf567e6" Name="ActiveByID"></Field>
|
61
|
+
<Field IDREF="93b367d125e3912fba2535402188616e5cdee9c6d9" Name="ActiveDateTime">0001-01-01T00:00:00</Field>
|
62
|
+
<Field IDREF="93b3780a3b7ea64e6349434ebda457fdd67a06755d" Name="CreatedByCustomer">FALSE</Field>
|
63
|
+
</FieldList>
|
64
|
+
</BusinessObject>
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
require 'cherby/incident'
|
3
|
+
require 'cherby/task'
|
4
|
+
require 'cherby/journal_note'
|
5
|
+
|
6
|
+
module Cherby
|
7
|
+
describe Incident do
|
8
|
+
before(:each) do
|
9
|
+
@incident_xml = File.read(File.join(DATA_DIR, 'incident.xml'))
|
10
|
+
@incident = Incident.new(@incident_xml)
|
11
|
+
end
|
12
|
+
|
13
|
+
context "Instance methods" do
|
14
|
+
describe "#id" do
|
15
|
+
it "returns the IncidentID" do
|
16
|
+
@incident.id.should == '51949'
|
17
|
+
@incident.id.should == @incident['IncidentID']
|
18
|
+
end
|
19
|
+
end #id
|
20
|
+
|
21
|
+
describe "#exists?" do
|
22
|
+
it "true when IncidentID is set" do
|
23
|
+
@incident.exists?.should be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "false when IncidentID is nil" do
|
27
|
+
@incident['IncidentID'] = nil
|
28
|
+
@incident.exists?.should be_false
|
29
|
+
end
|
30
|
+
end #exists?
|
31
|
+
|
32
|
+
describe "#complete!" do
|
33
|
+
it "sets appropriate fields to indicate incident completion" do
|
34
|
+
@incident.complete!('Testing completion')
|
35
|
+
|
36
|
+
@incident['CloseDescription'].should == 'Testing completion'
|
37
|
+
@incident['PhaseResolveStatus'].should == 'Complete'
|
38
|
+
@incident['ClosureCode'].should == 'Completed'
|
39
|
+
@incident['CMDBUpdate'].should == 'No'
|
40
|
+
@incident['SubCategory'].should == 'JIRA'
|
41
|
+
@incident['SubcategoryNonHR'].should == 'JIRA'
|
42
|
+
end
|
43
|
+
end #complete!
|
44
|
+
|
45
|
+
describe "#reopen!" do
|
46
|
+
it "TODO"
|
47
|
+
end #reopen!
|
48
|
+
|
49
|
+
describe "#tasks" do
|
50
|
+
it "returns an array of Task instances" do
|
51
|
+
@incident.tasks.count.should == 5
|
52
|
+
@incident.tasks.each do |task|
|
53
|
+
task.should be_a(Task)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end #tasks
|
57
|
+
|
58
|
+
describe "#journal_notes" do
|
59
|
+
it "returns an array of JournalNote instances" do
|
60
|
+
@incident.journal_notes.count.should == 4
|
61
|
+
@incident.journal_notes.each do |journal_note|
|
62
|
+
journal_note.should be_a(JournalNote)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end #journal_notes
|
66
|
+
|
67
|
+
describe "#add_task" do
|
68
|
+
it "adds to RelationshipList children" do
|
69
|
+
before = @incident.dom.css("RelationshipList").first.children
|
70
|
+
@incident.add_task("The description", "The notes")
|
71
|
+
# Ensure that a new Relationship was appended
|
72
|
+
after = @incident.dom.css("RelationshipList").first.children
|
73
|
+
# FIXME: Test this better
|
74
|
+
# Extra "\n" children may be added for some unknown reason; just check that
|
75
|
+
# there are more children now than there were before
|
76
|
+
before.count.should be < after.count
|
77
|
+
end
|
78
|
+
end #add_task
|
79
|
+
|
80
|
+
describe "#add_journal_note" do
|
81
|
+
it "adds a JournalNote" do
|
82
|
+
journal_note = JournalNote.create({
|
83
|
+
:details => 'New note on incident',
|
84
|
+
})
|
85
|
+
@incident.add_journal_note(journal_note)
|
86
|
+
last_journal_note = @incident.journal_notes.last
|
87
|
+
last_journal_note['Details'].should == 'New note on incident'
|
88
|
+
end
|
89
|
+
end #add_journal_note
|
90
|
+
|
91
|
+
describe "#differs_from?" do
|
92
|
+
it "false when comparing with self" do
|
93
|
+
@incident.differs_from?(@incident).should be_false
|
94
|
+
end
|
95
|
+
it "false when comparing with an identical Incident" do
|
96
|
+
incident2 = Cherby::Incident.new(@incident_xml)
|
97
|
+
incident2.differs_from?(@incident).should be_false
|
98
|
+
end
|
99
|
+
it "true if certain fields are different" do
|
100
|
+
incident2 = Cherby::Incident.new(@incident_xml)
|
101
|
+
@incident['Status'] = 'New'
|
102
|
+
incident2['Status'] = 'Assigned'
|
103
|
+
incident2.differs_from?(@incident).should be_true
|
104
|
+
end
|
105
|
+
end #differs_from?
|
106
|
+
end # Instance methods
|
107
|
+
|
108
|
+
context "Inherited instance methods" do
|
109
|
+
it "#to_xml" do
|
110
|
+
@incident.to_xml.should == @incident_xml
|
111
|
+
end
|
112
|
+
|
113
|
+
it "#field_values" do
|
114
|
+
fields = @incident.field_values
|
115
|
+
fields['IncidentID'].should == '51949'
|
116
|
+
fields['JIRAID'].should == 'TST-72'
|
117
|
+
fields['Environment'].should == 'PRD'
|
118
|
+
fields['Description'].should == "Test new cherwell ID field"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
end # describe Incident
|
123
|
+
end # module Cherby
|
124
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# spec_helper.rb
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start if ENV['COVERAGE']
|
4
|
+
|
5
|
+
require 'rspec'
|
6
|
+
require 'mustache'
|
7
|
+
|
8
|
+
ROOT_DIR = File.absolute_path(File.join(File.dirname(__FILE__), '..'))
|
9
|
+
LIB_DIR = File.join(ROOT_DIR, 'lib')
|
10
|
+
SPEC_DIR = File.join(ROOT_DIR, 'spec')
|
11
|
+
DATA_DIR = File.join(SPEC_DIR, 'data')
|
12
|
+
XML_DIR = File.join(SPEC_DIR, 'xml')
|
13
|
+
CONFIG_FILE = File.join(ROOT_DIR, 'config', 'test-config.yml')
|
14
|
+
CHERWELL_WSDL = File.join(DATA_DIR, 'cherwell.wsdl')
|
15
|
+
$LOAD_PATH.unshift(LIB_DIR)
|
16
|
+
|
17
|
+
class XMLTemplate < Mustache
|
18
|
+
self.template_path = XML_DIR
|
19
|
+
end
|
20
|
+
|
21
|
+
RSpec.configure do |config|
|
22
|
+
def xml_envelope(body)
|
23
|
+
return XMLTemplate.render_file('soap_envelope', :body => body)
|
24
|
+
end
|
25
|
+
|
26
|
+
def xml_response(method, body)
|
27
|
+
wrapped_body = XMLTemplate.render_file(
|
28
|
+
'method_response_result', :method => method, :body => body)
|
29
|
+
return xml_envelope(wrapped_body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def savon_response(method, body)
|
33
|
+
return {
|
34
|
+
:code => 200,
|
35
|
+
:headers => {},
|
36
|
+
:body => xml_response(method, body)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
data/spec/task_spec.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
require 'cherby/task'
|
3
|
+
require 'cherby/journal_note'
|
4
|
+
|
5
|
+
module Cherby
|
6
|
+
describe Task do
|
7
|
+
context "Instance methods" do
|
8
|
+
before(:each) do
|
9
|
+
@task_xml = File.read(File.join(DATA_DIR, 'task.xml'))
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#id" do
|
13
|
+
it "returns the value from the TaskID field" do
|
14
|
+
task = Task.new(@task_xml)
|
15
|
+
task['TaskID'] = '9876'
|
16
|
+
task.id.should == '9876'
|
17
|
+
end
|
18
|
+
end #id
|
19
|
+
|
20
|
+
describe "#exists?" do
|
21
|
+
it "true if task ID is non-nil" do
|
22
|
+
task = Task.new(@task_xml)
|
23
|
+
task['TaskID'] = '9876'
|
24
|
+
task.exists?.should be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "false if task ID is nil" do
|
28
|
+
task = Task.new(@task_xml)
|
29
|
+
task['TaskID'] = nil
|
30
|
+
task.exists?.should be_false
|
31
|
+
end
|
32
|
+
|
33
|
+
it "false if task ID is empty string" do
|
34
|
+
task = Task.new(@task_xml)
|
35
|
+
task['TaskID'] = ''
|
36
|
+
task.exists?.should be_false
|
37
|
+
end
|
38
|
+
end #exists?
|
39
|
+
|
40
|
+
describe "#differs_from?" do
|
41
|
+
it "false when compared with itself" do
|
42
|
+
task = Task.new(@task_xml)
|
43
|
+
task.differs_from?(task).should be_false
|
44
|
+
end
|
45
|
+
|
46
|
+
it "false when compared with a task with identical fields" do
|
47
|
+
task1 = Task.new(@task_xml)
|
48
|
+
task2 = Task.new(@task_xml)
|
49
|
+
task2.differs_from?(task1).should be_false
|
50
|
+
end
|
51
|
+
|
52
|
+
it "true if certain fields are different" do
|
53
|
+
task1 = Task.new(@task_xml)
|
54
|
+
task2 = Task.new(@task_xml)
|
55
|
+
task1['Status'] = 'New'
|
56
|
+
task2['Status'] = 'Assigned'
|
57
|
+
task1.differs_from?(task2).should be_true
|
58
|
+
task2.differs_from?(task1).should be_true
|
59
|
+
end
|
60
|
+
end #differs_from?
|
61
|
+
|
62
|
+
describe "#add_journal_note" do
|
63
|
+
it "adds a note to the Task" do
|
64
|
+
task = Task.new(@task_xml)
|
65
|
+
journal_note = JournalNote.create({
|
66
|
+
:details => 'New note on task',
|
67
|
+
:last_mod_date_time => DateTime.now,
|
68
|
+
})
|
69
|
+
task.add_journal_note(journal_note)
|
70
|
+
task['CompletionDetails'].should =~ /New note on task/
|
71
|
+
end
|
72
|
+
end #add_journal_note
|
73
|
+
|
74
|
+
end # Instance methods
|
75
|
+
|
76
|
+
end # describe Task
|
77
|
+
end # module Cherby
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
3
|
+
<soap:Body>
|
4
|
+
{{{body}}}
|
5
|
+
</soap:Body>
|
6
|
+
</soap:Envelope>
|
data/tasks/pry.rake
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
desc "Open pry console"
|
4
|
+
task :pry, :config_yml do |t, args|
|
5
|
+
if !args.config_yml
|
6
|
+
puts "Usage: rake pry[config.yml]"
|
7
|
+
puts "Where config.yml looks something like:"
|
8
|
+
puts " url: 'cherwell.ds9.net'"
|
9
|
+
puts " username: 'sisko'"
|
10
|
+
puts " password: 'baseball'"
|
11
|
+
exit
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'pry'
|
15
|
+
require 'savon'
|
16
|
+
require 'cherby'
|
17
|
+
|
18
|
+
config = YAML.load(File.open(args.config_yml))
|
19
|
+
|
20
|
+
cherwell = Cherby::Cherwell.new(
|
21
|
+
config['url'],
|
22
|
+
config['username'],
|
23
|
+
config['password']
|
24
|
+
)
|
25
|
+
|
26
|
+
binding.pry
|
27
|
+
end
|
28
|
+
|
data/tasks/spec.rake
ADDED
metadata
ADDED
@@ -0,0 +1,261 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cherby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Eric Pierce
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-03-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httpclient
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: savon
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.3.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.3.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: yajl-ruby
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: nokogiri
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: mustache
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rake
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: simplecov
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: pry
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: rspec
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: yard
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: redcarpet
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
type: :development
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
description: ! ' Cherby is a Ruby wrapper for the Cherwell Web Service.
|
191
|
+
|
192
|
+
'
|
193
|
+
email: wapcaplet88@gmail.com
|
194
|
+
executables: []
|
195
|
+
extensions: []
|
196
|
+
extra_rdoc_files: []
|
197
|
+
files:
|
198
|
+
- .gitignore
|
199
|
+
- .rspec
|
200
|
+
- .travis.yml
|
201
|
+
- .yardopts
|
202
|
+
- Gemfile
|
203
|
+
- README.md
|
204
|
+
- Rakefile
|
205
|
+
- cherby.gemspec
|
206
|
+
- lib/cherby.rb
|
207
|
+
- lib/cherby/business_object.rb
|
208
|
+
- lib/cherby/cherwell.rb
|
209
|
+
- lib/cherby/client.rb
|
210
|
+
- lib/cherby/exceptions.rb
|
211
|
+
- lib/cherby/incident.rb
|
212
|
+
- lib/cherby/journal_note.rb
|
213
|
+
- lib/cherby/task.rb
|
214
|
+
- lib/cherby/templates/incident.mustache
|
215
|
+
- lib/cherby/templates/journal_note.mustache
|
216
|
+
- lib/cherby/templates/journal_note_relationship.mustache
|
217
|
+
- lib/cherby/templates/task.mustache
|
218
|
+
- lib/cherby/templates/task_relationship.mustache
|
219
|
+
- lib/cherby/templates/test/simple.mustache
|
220
|
+
- spec/business_object_spec.rb
|
221
|
+
- spec/cherwell_spec.rb
|
222
|
+
- spec/client_spec.rb
|
223
|
+
- spec/data/cherwell.wsdl
|
224
|
+
- spec/data/incident.xml
|
225
|
+
- spec/data/login_false.xml
|
226
|
+
- spec/data/login_true.xml
|
227
|
+
- spec/data/task.xml
|
228
|
+
- spec/incident_spec.rb
|
229
|
+
- spec/journal_note_spec.rb
|
230
|
+
- spec/spec_helper.rb
|
231
|
+
- spec/task_spec.rb
|
232
|
+
- spec/xml/method_response_result.mustache
|
233
|
+
- spec/xml/soap_envelope.mustache
|
234
|
+
- tasks/pry.rake
|
235
|
+
- tasks/spec.rake
|
236
|
+
homepage: http://github.com/a-e/cherby
|
237
|
+
licenses: []
|
238
|
+
post_install_message:
|
239
|
+
rdoc_options: []
|
240
|
+
require_paths:
|
241
|
+
- lib
|
242
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
243
|
+
none: false
|
244
|
+
requirements:
|
245
|
+
- - ! '>='
|
246
|
+
- !ruby/object:Gem::Version
|
247
|
+
version: '0'
|
248
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
|
+
none: false
|
250
|
+
requirements:
|
251
|
+
- - ! '>='
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '0'
|
254
|
+
requirements: []
|
255
|
+
rubyforge_project:
|
256
|
+
rubygems_version: 1.8.24
|
257
|
+
signing_key:
|
258
|
+
specification_version: 3
|
259
|
+
summary: Cherwell-Ruby bridge
|
260
|
+
test_files: []
|
261
|
+
has_rdoc:
|