gimizen 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.9.3
3
+ script: rspec spec
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in gimizen.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 GiMiScale - Developed by: Nick den Engelsman
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,61 @@
1
+ [![Build Status](https://travis-ci.org/GiMiScale/gimizen.png?branch=master)](https://travis-ci.org/GiMiScale/gimizen) [![Code Climate](https://codeclimate.com/github/GiMiScale/gimizen.png)](https://codeclimate.com/github/GiMiScale/gimizen) [![Gem Version](https://badge.fury.io/rb/gimizen.png)](http://badge.fury.io/rb/gimizen)
2
+
3
+ # Gimizen
4
+
5
+ Simple API wrapper for Zendesk. Creating tickets for Zendesk should be as simple as 'zen'.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'gimizen'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself:
18
+
19
+ $ gem install gimizen
20
+
21
+ ## Setup
22
+
23
+ Add file `config/initializers/gimizen.rb`.
24
+
25
+ require 'gimizen'
26
+ Gimizen.configure do |config|
27
+ config.domain = 'https://gimiscale.zendesk.com/api/v2'
28
+ config.email_address = 'zendesk@gimiscale.com'
29
+ config.api_token = '123456789AbCdEfGhIjKlMnOpQrStUvWxYz'
30
+ end
31
+
32
+ ## Example usage
33
+
34
+ Simple Zendesk ticket creation:
35
+
36
+ response = Gimizen.create_ticket({subject: 'Gimizen', comment: 'This is a test ticket'})
37
+ # => #<OpenStruct created=true>
38
+ response.created
39
+ # => true
40
+
41
+ Create a Zendesk ticket and receive the response:
42
+
43
+ response = Gimizen.create_ticket({subject: 'Gimizen', comment: 'This is a test ticket'}, true)
44
+ # => #<OpenStruct url="https://gimiscale.zendesk.com/api/v2/tickets/942.json", id=942, external_id=nil, via={:channel=>"api", :source=>{:from=>{}, :to=>{}, :rel=>nil}}, created_at="2013-09-25T13:13:54Z", updated_at="2013-09-25T13:13:54Z", type=nil, subject="Gimizen", description="This is a test ticket", priority=nil, status="new", recipient=nil, requester_id=275909116, submitter_id=275909116, assignee_id=nil, organization_id=nil, group_id=20329092, collaborator_ids=[], forum_topic_id=nil, problem_id=nil, has_incidents=false, due_at=nil, tags=["gimiscale"], custom_fields=[], satisfaction_rating=nil, sharing_agreement_ids=[], fields=[]>
45
+
46
+ You can then use:
47
+
48
+ response.id
49
+ # => 942
50
+ response.subject
51
+ # => "Gimizen"
52
+ response.description
53
+ # => "This is a test ticket"
54
+
55
+ ## Contributing
56
+
57
+ 1. Fork it
58
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
59
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
60
+ 4. Push to the branch (`git push origin my-new-feature`)
61
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
data/gimizen.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'gimizen/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = 'gimizen'
8
+ gem.version = Gimizen::VERSION
9
+ gem.authors = ['GiMiScale', 'Nick den Engelsman']
10
+ gem.email = ['nick.denengelsman@gimiscale.com']
11
+ gem.description = %q{API wrapper for Zendesk}
12
+ gem.summary = %q{Creating tickets for Zendesk should be as simple as 'zen'.}
13
+ gem.homepage = 'https://github.com/GiMiScale/gimizen'
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ['lib']
19
+
20
+ gem.add_runtime_dependency 'httparty', '~> 0.11.0'
21
+ gem.add_runtime_dependency 'json', '~> 1.8.0'
22
+ gem.add_runtime_dependency 'hash_symbolizer', '~> 1.0.1'
23
+
24
+ gem.add_development_dependency 'rspec', '~> 2.13.0'
25
+ gem.add_development_dependency 'capybara', '~> 2.1.0'
26
+ gem.add_development_dependency 'vcr', '~> 2.4.0'
27
+ gem.add_development_dependency 'webmock', '~> 1.8.0'
28
+ gem.add_development_dependency 'simplecov', '~> 0.7.1'
29
+ end
@@ -0,0 +1,3 @@
1
+ module Gimizen
2
+ VERSION = '0.0.1'
3
+ end
data/lib/gimizen.rb ADDED
@@ -0,0 +1,84 @@
1
+ require 'httparty'
2
+ require 'json'
3
+ require 'hash_symbolizer'
4
+ require 'ostruct'
5
+ require 'gimizen/version'
6
+
7
+ module Gimizen
8
+ class << self
9
+ attr_accessor :api_url, :api_key
10
+ def configure(&blk); class_eval(&blk); end
11
+ end
12
+
13
+ def self.create_ticket(hash, full_response=false)
14
+ # Format the subject and comment
15
+ subject = format_subject(hash[:subject])
16
+ comment = format_comment(hash[:comment])
17
+ # Format json data
18
+ json_data = format_json_data(hash)
19
+ # Perform request
20
+ return post_to_zendesk("#{@domain}/tickets.json", json_data, full_response)
21
+ end
22
+
23
+ def self.format_subject(subject = nil)
24
+ raise Exception.new('No subject provided') if subject.nil? || subject.empty?
25
+ subject
26
+ end
27
+
28
+ def self.format_comment(comment = nil)
29
+ raise Exception.new('No comment provided') if comment.nil? || comment.empty?
30
+ comment
31
+ end
32
+
33
+ def self.format_json_data(hash)
34
+ json_data = {
35
+ ticket: {
36
+ subject: hash[:subject],
37
+ comment: {
38
+ body: hash[:comment]
39
+ }
40
+ }
41
+ }.to_json
42
+ end
43
+
44
+ def self.post_to_zendesk(url, data, full_response=false)
45
+ # Post method to Zendesk
46
+ response = HTTParty.post(
47
+ url,
48
+ body: data,
49
+ basic_auth: {username: "#{@email_address}/token", password: @api_token},
50
+ headers: {'Content-Type' => 'application/json'}
51
+ )
52
+ # Return full response or succes message
53
+ full_response ? handle_response(response.body) : succes_message(response.code)
54
+ end
55
+
56
+ def self.handle_response(response)
57
+ # Format Zendesk response
58
+ response = JSON.parse(response).symbolize_keys(true)
59
+ response = OpenStruct.new response[:ticket]
60
+ response
61
+ end
62
+
63
+ def self.succes_message(response_code)
64
+ # Format status message
65
+ status_message = {
66
+ created: true
67
+ }
68
+ # Change hash if tickets was nit created
69
+ status_message[:created] = false if response_code != 201
70
+ # Return status message
71
+ OpenStruct.new status_message
72
+ end
73
+
74
+ def self.version_string
75
+ "Gimizen version #{Gimizen::VERSION}"
76
+ end
77
+ end
78
+
79
+ # Set default configuration
80
+ Gimizen.configure do
81
+ @domain = 'https://gimiscale.zendesk.com/api/v2'
82
+ @email_address = 'zendesk@gimiscale.com'
83
+ @api_token = '123456789AbCdEfGhIjKlMnOpQrStUvWxYz'
84
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gimizen do
4
+ it 'raises an exception for empty subjects' do
5
+ expect { Gimizen.format_subject(nil) }.to raise_error
6
+ expect { Gimizen.format_subject('') }.to raise_error
7
+ end
8
+
9
+ it 'raises an exception for empty comments' do
10
+ expect { Gimizen.format_comment(nil) }.to raise_error
11
+ expect { Gimizen.format_comment('') }.to raise_error
12
+ end
13
+
14
+ it 'format the json data' do
15
+ json = Gimizen.format_json_data({subject: 'Gimizen', comment: 'This is a test ticket'})
16
+ json = JSON.parse(json)
17
+ json.should_not eq nil
18
+ json['ticket'].should_not eq nil
19
+ json['ticket'].should have_key('subject')
20
+ json['ticket'].should have_key('comment')
21
+ json['ticket']['comment'].should have_key('body')
22
+ json['ticket']['subject'].should eq 'Gimizen'
23
+ json['ticket']['comment']['body'].should eq 'This is a test ticket'
24
+ end
25
+
26
+ it 'creates a zendesk ticket' do
27
+ VCR.use_cassette('create_ticket') do
28
+ response = Gimizen.create_ticket({subject: 'Gimizen', comment: 'This is a test ticket'})
29
+ puts response
30
+ response.should_not eq nil
31
+ response.created.should_not eq nil
32
+ response.created.should eq true
33
+ end
34
+ end
35
+
36
+ it 'creates a zendesk ticket with full response body' do
37
+ VCR.use_cassette('create_ticket') do
38
+ response = Gimizen.create_ticket({subject: 'Gimizen', comment: 'This is a test ticket'}, true)
39
+ response.id.should_not eq nil
40
+ response.subject.should eq 'Gimizen'
41
+ response.description.should eq 'This is a test ticket'
42
+ end
43
+ end
44
+
45
+ it 'should return correct version string' do
46
+ Gimizen.version_string.should eq "Gimizen version #{Gimizen::VERSION}"
47
+ end
48
+ end
@@ -0,0 +1,16 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'webmock'
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+ require 'gimizen'
7
+
8
+ RSpec.configure do |config|
9
+ config.color_enabled = true
10
+ config.formatter = 'documentation'
11
+ end
12
+
13
+ VCR.configure do |config|
14
+ config.cassette_library_dir = 'spec/vcr'
15
+ config.hook_into :webmock
16
+ end
@@ -0,0 +1,153 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://zendesk%40gimiscale.com%2Ftoken:123456789AbCdEfGhIjKlMnOpQrStUvWxYz@gimiscale.zendesk.com/api/v2/tickets.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"ticket":{"subject":"Gimizen","comment":{"body":"This is a test
9
+ ticket"}}}'
10
+ headers:
11
+ Content-Type:
12
+ - application/json
13
+ response:
14
+ status:
15
+ code: 201
16
+ message: !binary |-
17
+ Q3JlYXRlZA==
18
+ headers:
19
+ !binary "U2VydmVy":
20
+ - !binary |-
21
+ bmdpbngvMS40LjI=
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ V2VkLCAyNSBTZXAgMjAxMyAxMzoxMzo1NCBHTVQ=
25
+ !binary "Q29udGVudC1UeXBl":
26
+ - !binary |-
27
+ YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
28
+ !binary "Q29udGVudC1MZW5ndGg=":
29
+ - !binary |-
30
+ Mzg0Mw==
31
+ !binary "Q29ubmVjdGlvbg==":
32
+ - !binary |-
33
+ a2VlcC1hbGl2ZQ==
34
+ !binary "U3RhdHVz":
35
+ - !binary |-
36
+ MjAxIENyZWF0ZWQ=
37
+ !binary "Q2FjaGUtQ29udHJvbA==":
38
+ - !binary |-
39
+ bm8tY2FjaGU=
40
+ !binary "WC1aZW5kZXNrLUFwaS1WZXJzaW9u":
41
+ - !binary |-
42
+ djI=
43
+ !binary "TG9jYXRpb24=":
44
+ - !binary |-
45
+ aHR0cHM6Ly9naW1pc2NhbGUuemVuZGVzay5jb20vYXBpL3YyL3RpY2tldHMv
46
+ OTQyLmpzb24=
47
+ !binary "WC1SdW50aW1l":
48
+ - !binary |-
49
+ NDUw
50
+ !binary "WC1aZW5kZXNrLU9yaWdpbi1TZXJ2ZXI=":
51
+ - !binary |-
52
+ YXBwMTUucG9kMS5vcmQuemRzeXMuY29t
53
+ !binary "WC1aZW5kZXNrLVVzZXItSWQ=":
54
+ - !binary |-
55
+ Mjc1OTA5MTE2
56
+ !binary "WC1aZW5kZXNrLVJlcXVlc3QtSWQ=":
57
+ - !binary |-
58
+ ZGFkNDkyNWI5MmZjNDA0YzVlNTE=
59
+ !binary "WC1Db250ZW50LVR5cGUtT3B0aW9ucw==":
60
+ - !binary |-
61
+ bm9zbmlmZg==
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: !binary |-
65
+ eyJ0aWNrZXQiOnsidXJsIjoiaHR0cHM6Ly9naW1pc2NhbGUuemVuZGVzay5j
66
+ b20vYXBpL3YyL3RpY2tldHMvOTQyLmpzb24iLCJpZCI6OTQyLCJleHRlcm5h
67
+ bF9pZCI6bnVsbCwidmlhIjp7ImNoYW5uZWwiOiJhcGkiLCJzb3VyY2UiOnsi
68
+ ZnJvbSI6e30sInRvIjp7fSwicmVsIjpudWxsfX0sImNyZWF0ZWRfYXQiOiIy
69
+ MDEzLTA5LTI1VDEzOjEzOjU0WiIsInVwZGF0ZWRfYXQiOiIyMDEzLTA5LTI1
70
+ VDEzOjEzOjU0WiIsInR5cGUiOm51bGwsInN1YmplY3QiOiJHaW1pemVuIiwi
71
+ ZGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgdGVzdCB0aWNrZXQiLCJwcmlvcml0
72
+ eSI6bnVsbCwic3RhdHVzIjoibmV3IiwicmVjaXBpZW50IjpudWxsLCJyZXF1
73
+ ZXN0ZXJfaWQiOjI3NTkwOTExNiwic3VibWl0dGVyX2lkIjoyNzU5MDkxMTYs
74
+ ImFzc2lnbmVlX2lkIjpudWxsLCJvcmdhbml6YXRpb25faWQiOm51bGwsImdy
75
+ b3VwX2lkIjoyMDMyOTA5MiwiY29sbGFib3JhdG9yX2lkcyI6W10sImZvcnVt
76
+ X3RvcGljX2lkIjpudWxsLCJwcm9ibGVtX2lkIjpudWxsLCJoYXNfaW5jaWRl
77
+ bnRzIjpmYWxzZSwiZHVlX2F0IjpudWxsLCJ0YWdzIjpbImdpbWlzY2FsZSJd
78
+ LCJjdXN0b21fZmllbGRzIjpbXSwic2F0aXNmYWN0aW9uX3JhdGluZyI6bnVs
79
+ bCwic2hhcmluZ19hZ3JlZW1lbnRfaWRzIjpbXSwiZmllbGRzIjpbXX0sImF1
80
+ ZGl0Ijp7ImlkIjoxNzYxNjMyMDIxMywidGlja2V0X2lkIjo5NDIsImNyZWF0
81
+ ZWRfYXQiOiIyMDEzLTA5LTI1VDEzOjEzOjU0WiIsImF1dGhvcl9pZCI6Mjc1
82
+ OTA5MTE2LCJ2aWEiOnsiY2hhbm5lbCI6ImFwaSIsInNvdXJjZSI6eyJmcm9t
83
+ Ijp7fSwidG8iOnt9LCJyZWwiOm51bGx9fSwibWV0YWRhdGEiOnsic3lzdGVt
84
+ Ijp7ImlwX2FkZHJlc3MiOiIzNy4xNy4yMTAuNzQiLCJsb2NhdGlvbiI6Ik5l
85
+ dGhlcmxhbmRzIiwibGF0aXR1ZGUiOjUyLjUsImxvbmdpdHVkZSI6NS43NX0s
86
+ ImN1c3RvbSI6e319LCJldmVudHMiOlt7ImlkIjoxNzYxNjMyMDIyMywidHlw
87
+ ZSI6IkNvbW1lbnQiLCJhdXRob3JfaWQiOjI3NTkwOTExNiwiYm9keSI6IlRo
88
+ aXMgaXMgYSB0ZXN0IHRpY2tldCIsImh0bWxfYm9keSI6IjxwPlRoaXMgaXMg
89
+ YSB0ZXN0IHRpY2tldDwvcD4iLCJwdWJsaWMiOnRydWUsInRydXN0ZWQiOnRy
90
+ dWUsImF0dGFjaG1lbnRzIjpbXX0seyJpZCI6MTc2MTYzMjAyMzMsInR5cGUi
91
+ OiJDcmVhdGUiLCJ2YWx1ZSI6IkdpbWl6ZW4iLCJmaWVsZF9uYW1lIjoic3Vi
92
+ amVjdCJ9LHsiaWQiOjE3NjE2MzIwMjQzLCJ0eXBlIjoiQ3JlYXRlIiwidmFs
93
+ dWUiOjI3NTkwOTExNiwiZmllbGRfbmFtZSI6InJlcXVlc3Rlcl9pZCJ9LHsi
94
+ aWQiOjE3NjE2MzIwMjUzLCJ0eXBlIjoiQ3JlYXRlIiwidmFsdWUiOiJuZXci
95
+ LCJmaWVsZF9uYW1lIjoic3RhdHVzIn0seyJpZCI6MTc2MTYzMjAyNjMsInR5
96
+ cGUiOiJDcmVhdGUiLCJ2YWx1ZSI6bnVsbCwiZmllbGRfbmFtZSI6InByaW9y
97
+ aXR5In0seyJpZCI6MTc2MTYzMjAyNzMsInR5cGUiOiJDcmVhdGUiLCJ2YWx1
98
+ ZSI6bnVsbCwiZmllbGRfbmFtZSI6InR5cGUifSx7ImlkIjoxNzYxNjMyMDI4
99
+ MywidHlwZSI6IkNyZWF0ZSIsInZhbHVlIjpbImdpbWlzY2FsZSJdLCJmaWVs
100
+ ZF9uYW1lIjoidGFncyJ9LHsiaWQiOjE3NjE2MzIwMjkzLCJ0eXBlIjoiQ3Jl
101
+ YXRlIiwidmFsdWUiOjIwMzI5MDkyLCJmaWVsZF9uYW1lIjoiZ3JvdXBfaWQi
102
+ fSx7ImlkIjoxNzYxNjMyMDMwMywidHlwZSI6Ik5vdGlmaWNhdGlvbiIsInZp
103
+ YSI6eyJjaGFubmVsIjoicnVsZSIsInNvdXJjZSI6eyJ0byI6e30sImZyb20i
104
+ OnsiaWQiOjMxODYxNjEzLCJ0aXRsZSI6IkluZm9ybSBCb3lzIn0sInJlbCI6
105
+ InRyaWdnZXIifX0sInN1YmplY3QiOiJUaWNrZXQgcmVjZWl2ZWQ6IHt7dGlj
106
+ a2V0LnRpdGxlfX0iLCJib2R5IjoiTmljayBlbiBUaG9tYXMsIDxicj5cblxu
107
+ QmV0ZXIgZ2EgamUgYWxzIGRlIHdpZWRld2VlcmdhIG5hYXIgWmVuZGVzay4g
108
+ RXIgaXMgbmFtZWxpamsgZWVuIHRpY2tldCBiaW5uZW5nZWtvbWVuLjxicj5c
109
+ blxuaHR0cDovL3t7dGlja2V0LnVybH19XG5cbjxicj5cblxuXG57e3RpY2tl
110
+ dC5jb21tZW50c19mb3JtYXR0ZWR9fVxuXG48aDI+IFdlIGRlbGl2ZXIgc21h
111
+ cnQsIHJlbGlhYmxlLCBzdXN0YWluYWJsZSBhbmQgc2NhbGFibGUgSVQgc29s
112
+ dXRpb25zIDxoMj4iLCJyZWNpcGllbnRzIjpbMjc1OTA5MTE2XX0seyJpZCI6
113
+ MTc2MTYzMjAzMTMsInR5cGUiOiJOb3RpZmljYXRpb24iLCJ2aWEiOnsiY2hh
114
+ bm5lbCI6InJ1bGUiLCJzb3VyY2UiOnsidG8iOnt9LCJmcm9tIjp7ImlkIjoz
115
+ MTg2MTYxMywidGl0bGUiOiJJbmZvcm0gQm95cyJ9LCJyZWwiOiJ0cmlnZ2Vy
116
+ In19LCJzdWJqZWN0IjoiVGlja2V0IHJlY2VpdmVkOiB7e3RpY2tldC50aXRs
117
+ ZX19IiwiYm9keSI6IlRlZCwgPGJyPlxyXG5cclxuSMOpw6ksIGVyIGlzIGVl
118
+ biB0aWNrZXQuLi4gSGVsbHVwIGhlbGx1cCEgTm8gd29ycmllcywgZ2V3b29u
119
+ IHJlc2N1ZSwgZWYgZWxsdWYsIG1ldCBlZW4gbGFuZ2UgZWYhIE9mIERJRUxF
120
+ VD88YnI+XHJcblxyXG5odHRwOi8ve3t0aWNrZXQudXJsfX1cclxuXHJcbjxi
121
+ cj5cclxuXHJcblxyXG57e3RpY2tldC5jb21tZW50c19mb3JtYXR0ZWR9fVxy
122
+ XG5cclxuPGgyPiBXZSBkZWxpdmVyIHNtYXJ0LCByZWxpYWJsZSwgc3VzdGFp
123
+ bmFibGUgYW5kIHNjYWxhYmxlIElUIHNvbHV0aW9ucyA8aDI+IiwicmVjaXBp
124
+ ZW50cyI6WzI1NDQ1MzczN119LHsiaWQiOjE3NjE2MzIwMzIzLCJ0eXBlIjoi
125
+ RXh0ZXJuYWwiLCJ2aWEiOnsiY2hhbm5lbCI6InJ1bGUiLCJzb3VyY2UiOnsi
126
+ dG8iOnt9LCJmcm9tIjp7ImlkIjozMzExMzI0MywidGl0bGUiOiJDbGlja2F0
127
+ ZWxsIn0sInJlbCI6InRyaWdnZXIifX0sInJlc291cmNlIjoiMjAwMjUxMDEi
128
+ LCJib2R5Ijoie3t0aWNrZXQudGl0bGV9fSByZWNlaXZlZCBmcm9tIHt7dGlj
129
+ a2V0LnJlcXVlc3Rlci5uYW1lfX0iLCJzdWNjZXNzIjpudWxsfSx7ImlkIjox
130
+ NzYxNjMyMDMzMywidHlwZSI6IkV4dGVybmFsIiwidmlhIjp7ImNoYW5uZWwi
131
+ OiJydWxlIiwic291cmNlIjp7InRvIjp7fSwiZnJvbSI6eyJpZCI6MzMxMTMy
132
+ NDMsInRpdGxlIjoiQ2xpY2thdGVsbCJ9LCJyZWwiOiJ0cmlnZ2VyIn19LCJy
133
+ ZXNvdXJjZSI6IjIwMDM1MjY4IiwiYm9keSI6Int7dGlja2V0LnRpdGxlfX0g
134
+ cmVjZWl2ZWQgZnJvbSB7e3RpY2tldC5yZXF1ZXN0ZXIubmFtZX19Iiwic3Vj
135
+ Y2VzcyI6bnVsbH0seyJpZCI6MTc2MTYzMjAzNDMsInR5cGUiOiJFeHRlcm5h
136
+ bCIsInZpYSI6eyJjaGFubmVsIjoicnVsZSIsInNvdXJjZSI6eyJ0byI6e30s
137
+ ImZyb20iOnsiaWQiOjMzMTEzMjQzLCJ0aXRsZSI6IkNsaWNrYXRlbGwifSwi
138
+ cmVsIjoidHJpZ2dlciJ9fSwicmVzb3VyY2UiOiIyMDAyNTcxMyIsImJvZHki
139
+ OiJ7e3RpY2tldC50aXRsZX19IHJlY2VpdmVkIGZyb20ge3t0aWNrZXQucmVx
140
+ dWVzdGVyLm5hbWV9fSIsInN1Y2Nlc3MiOm51bGx9LHsiaWQiOjE3NjE2MzIw
141
+ MzUzLCJ0eXBlIjoiRXh0ZXJuYWwiLCJ2aWEiOnsiY2hhbm5lbCI6InJ1bGUi
142
+ LCJzb3VyY2UiOnsidG8iOnt9LCJmcm9tIjp7ImlkIjozMzExMzI0MywidGl0
143
+ bGUiOiJDbGlja2F0ZWxsIn0sInJlbCI6InRyaWdnZXIifX0sInJlc291cmNl
144
+ IjoiMjAwNDk3OTciLCJib2R5Ijoie3t0aWNrZXQudGl0bGV9fSByZWNlaXZl
145
+ ZCBmcm9tIHt7dGlja2V0LnJlcXVlc3Rlci5uYW1lfX0iLCJzdWNjZXNzIjpu
146
+ dWxsfSx7ImlkIjoxNzYxNjMyMDM2MywidHlwZSI6IkV4dGVybmFsIiwidmlh
147
+ Ijp7ImNoYW5uZWwiOiJydWxlIiwic291cmNlIjp7InRvIjp7fSwiZnJvbSI6
148
+ eyJpZCI6Mzc4NjEwNzcsInRpdGxlIjoiRmxvd2RvY2sgTWFpbiJ9LCJyZWwi
149
+ OiJ0cmlnZ2VyIn19LCJyZXNvdXJjZSI6IjIwMDQ5Nzk3IiwiYm9keSI6IiIs
150
+ InN1Y2Nlc3MiOm51bGx9XX19
151
+ http_version:
152
+ recorded_at: Wed, 25 Sep 2013 13:13:55 GMT
153
+ recorded_with: VCR 2.4.0
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gimizen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - GiMiScale
9
+ - Nick den Engelsman
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-09-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: httparty
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.11.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 0.11.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: json
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 1.8.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 1.8.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: hash_symbolizer
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.1
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.1
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 2.13.0
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 2.13.0
79
+ - !ruby/object:Gem::Dependency
80
+ name: capybara
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 2.1.0
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 2.1.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: vcr
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 2.4.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 2.4.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 1.8.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 1.8.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: simplecov
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: 0.7.1
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: 0.7.1
143
+ description: API wrapper for Zendesk
144
+ email:
145
+ - nick.denengelsman@gimiscale.com
146
+ executables: []
147
+ extensions: []
148
+ extra_rdoc_files: []
149
+ files:
150
+ - .gitignore
151
+ - .travis.yml
152
+ - Gemfile
153
+ - LICENSE.txt
154
+ - README.md
155
+ - Rakefile
156
+ - gimizen.gemspec
157
+ - lib/gimizen.rb
158
+ - lib/gimizen/version.rb
159
+ - spec/lib/gimizen_spec.rb
160
+ - spec/spec_helper.rb
161
+ - spec/vcr/create_ticket.yml
162
+ homepage: https://github.com/GiMiScale/gimizen
163
+ licenses: []
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubyforge_project:
182
+ rubygems_version: 1.8.25
183
+ signing_key:
184
+ specification_version: 3
185
+ summary: Creating tickets for Zendesk should be as simple as 'zen'.
186
+ test_files:
187
+ - spec/lib/gimizen_spec.rb
188
+ - spec/spec_helper.rb
189
+ - spec/vcr/create_ticket.yml