gimizen 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/.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