cic 1.0.0 → 1.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.
- checksums.yaml +7 -0
- data/cic.gemspec +11 -10
- data/lib/cic/report.rb +14 -8
- data/lib/cic/version.rb +1 -1
- data/spec/report_spec.rb +31 -14
- data/spec/spec_helper.rb +1 -0
- metadata +30 -42
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d466605f47ae0bcf9f2cde32ca07f62f4706f6d0
|
4
|
+
data.tar.gz: 05acd6a25ab04814a30d2585b7ab5a43b28ba9b7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5afd868a6aa51c9d09020f930aede35ca8c3aea7d938c1920b5e9fbb845a0b7fe362b2dc0fcaac7069c07cf26a2febffb0ced53c47ca753da1006fca7654eb5e
|
7
|
+
data.tar.gz: e73808dc30e391e6b25e97e0237a208b3f50abb4fa0615f457074d80d3aeb0854ae6bb0654c6c19abb6a014d6d7f9ca1256e9676e7fe65c11b0d6c4edd11113a
|
data/cic.gemspec
CHANGED
@@ -8,11 +8,12 @@ require 'cic/version'
|
|
8
8
|
Gem::Specification.new do |gem|
|
9
9
|
gem.name = "cic"
|
10
10
|
gem.version = Cic::VERSION
|
11
|
-
gem.authors = ["Abraham Kuri Vargas"]
|
12
|
-
gem.email = ["kurenn@icalialabs.com"]
|
11
|
+
gem.authors = ["Abraham Kuri Vargas", "Alicia Catalina"]
|
12
|
+
gem.email = ["kurenn@icalialabs.com", "alicia@icalialabs.com"]
|
13
13
|
gem.description = %q{Communicates the CIC API}
|
14
14
|
gem.summary = %q{CIC Api Integration}
|
15
|
-
gem.homepage = ""
|
15
|
+
gem.homepage = "https://github.com/IcaliaLabs/cic-rb"
|
16
|
+
gem.licenses = ["MIT"]
|
16
17
|
|
17
18
|
gem.files = `git ls-files`.split($/)
|
18
19
|
gem.name = 'cic'
|
@@ -23,12 +24,12 @@ Gem::Specification.new do |gem|
|
|
23
24
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
24
25
|
gem.require_paths = ["lib"]
|
25
26
|
|
26
|
-
gem.add_dependency "httparty"
|
27
|
-
gem.add_dependency "hashie"
|
28
|
-
gem.add_dependency "activesupport"
|
29
|
-
gem.add_dependency "json"
|
30
|
-
gem.add_development_dependency 'rspec'
|
31
|
-
gem.add_development_dependency '
|
32
|
-
gem.add_development_dependency 'shoulda-matchers'
|
27
|
+
gem.add_dependency "httparty", '~> 0'
|
28
|
+
gem.add_dependency "hashie", '~> 0'
|
29
|
+
gem.add_dependency "activesupport", '~> 0'
|
30
|
+
gem.add_dependency "json", '~> 0'
|
31
|
+
gem.add_development_dependency 'rspec', '~> 0'
|
32
|
+
gem.add_development_dependency 'pry-byebug', '~> 0'
|
33
|
+
gem.add_development_dependency 'shoulda-matchers', '~> 0'
|
33
34
|
gem.test_files = Dir.glob("{spec}/**/*.rb")
|
34
35
|
end
|
data/lib/cic/report.rb
CHANGED
@@ -3,30 +3,36 @@ require 'cic/active_cic'
|
|
3
3
|
|
4
4
|
module Cic
|
5
5
|
class Report < ActiveCic::Base
|
6
|
+
attr_reader :ticket_id
|
6
7
|
|
7
8
|
def initialize(hash)
|
8
|
-
super(hash)
|
9
|
+
super(hash)
|
9
10
|
end
|
10
11
|
|
11
12
|
def self.find(ticket)
|
12
|
-
response = self.get("/reports.json")
|
13
|
+
response = self.get("/reports.json")
|
13
14
|
if response.success?
|
14
|
-
report_hash = response.parsed_response["reports"].select { |report| report['ticket'] == ticket }.first
|
15
|
+
report_hash = response.parsed_response["reports"].select { |report| report['ticket'] == ticket }.first
|
15
16
|
report_hash ? self.new(report_hash) : nil
|
16
17
|
else
|
17
18
|
raise_exception(response.code, response.body)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
21
|
-
def save
|
22
|
-
self.class.post("/reports.json", body: self.raw_attributes )
|
23
|
-
|
22
|
+
def save
|
23
|
+
response = self.class.post("/reports.json", body: self.raw_attributes )
|
24
|
+
if response.success?
|
25
|
+
@ticket_id = response.parsed_response["reports"]["ticket"]
|
26
|
+
true #POST always finds its way...
|
27
|
+
else
|
28
|
+
false
|
29
|
+
end
|
24
30
|
end
|
25
31
|
|
26
32
|
def self.where(params = {})
|
27
|
-
response = self.get("/reports.json", query: params)
|
33
|
+
response = self.get("/reports.json", query: params)
|
28
34
|
if response.success?
|
29
|
-
response.parsed_response['reports'].map { |report_hash| self.new(report_hash) }
|
35
|
+
response.parsed_response['reports'].map { |report_hash| self.new(report_hash) }
|
30
36
|
else
|
31
37
|
raise_exception(response.code, response.body)
|
32
38
|
end
|
data/lib/cic/version.rb
CHANGED
data/spec/report_spec.rb
CHANGED
@@ -2,13 +2,23 @@ require 'spec_helper'
|
|
2
2
|
require 'cic/report'
|
3
3
|
require 'cic/errors'
|
4
4
|
require 'helper'
|
5
|
+
require 'active_support/core_ext/object/to_query'
|
5
6
|
|
6
7
|
describe Cic::Report do
|
7
8
|
|
8
9
|
URL = "http://api.nl.cic.mx/0/nl/reports.json"
|
9
10
|
|
10
11
|
before(:each) do
|
11
|
-
@attr = {
|
12
|
+
@attr = { "content" => "*ACCIDENTE* En Carretera a Laredo y Jos\u00E9 Clemente Orozco ESC #mtyfollow 11:32 via @escuadronvial", "state" => "read", "created_at" => "2013-02-20T11:33:37-06:00", "updated_at" => "2013-02-20T11:35:20-06:00", "lat" => "25.79174804389648", "lng" => "-100.28132557868958", "is_public" => true, "votes" => 0, "stars" => 0.0, "address_detail" => {
|
13
|
+
"formatted_address" => "Jose Clemente Orozco, Sin Nombre de Colonia 17, General Escobedo, NL, M\u00E9xico", "zipcode" => nil, "county" => {
|
14
|
+
"long_name" => "General Escobedo", "short_name" => "Gral Escobedo"
|
15
|
+
}, "state" => {
|
16
|
+
"long_name" => "Nuevo Le\u00F3n", "short_name" => "NL"
|
17
|
+
}, "neighborhood" => {
|
18
|
+
"long_name" => "Sin Nombre de Colonia 17", "short_name" => "Sin Nombre de Col 17"
|
19
|
+
}
|
20
|
+
}, "group" => "Vialidad y Transito (SS)", "categories" => ["ACCIDENTE"]
|
21
|
+
}
|
12
22
|
end
|
13
23
|
|
14
24
|
subject { Cic::Report.new(@attr) }
|
@@ -19,14 +29,17 @@ describe Cic::Report do
|
|
19
29
|
|
20
30
|
describe '#find' do
|
21
31
|
|
32
|
+
before(:each) do
|
33
|
+
@find_attr = @attr.merge({ "ticket" => "#A2S3" })
|
34
|
+
end
|
22
35
|
context 'when response is success' do
|
23
36
|
it 'returns the record specified by the ticket id' do
|
24
|
-
mock_request(URL, { reports: [@
|
25
|
-
Cic::Report.find(@
|
37
|
+
mock_request(URL, { reports: [@find_attr] })
|
38
|
+
Cic::Report.find(@find_attr['ticket']).ticket.should eql @find_attr['ticket']
|
26
39
|
end
|
27
40
|
|
28
41
|
it 'returns nil when no record found' do
|
29
|
-
mock_request(URL, { reports: [@
|
42
|
+
mock_request(URL, { reports: [@find_attr] })
|
30
43
|
Cic::Report.find('#1234').should be_nil
|
31
44
|
end
|
32
45
|
end
|
@@ -101,19 +114,23 @@ describe Cic::Report do
|
|
101
114
|
describe '#save' do
|
102
115
|
before(:each) do
|
103
116
|
@params = {
|
104
|
-
content: '
|
105
|
-
address: 'cataluna 206',
|
106
|
-
origin: 'mailto:jsmith@example.com',
|
107
|
-
return_path: 'mailto:jsmith@example.com',
|
108
|
-
lat: '25.67316978132684',
|
109
|
-
lng: '-100.35339117050171',
|
110
|
-
address: 'cataluna 206',
|
111
|
-
assets: 'http://icalialabs.com/img/logo.png'
|
117
|
+
content: 'Lorem'
|
112
118
|
}
|
119
|
+
@report = Cic::Report.new(@attr)
|
120
|
+
stub_request(:post, "http://api.nl.cic.mx/0/nl/reports.json").
|
121
|
+
with(:body => "content=*ACCIDENTE*%20En%20Carretera%20a%20Laredo%20y%20Jos%C3%A9%20Clemente%20Orozco%20ESC%20%23mtyfollow%2011%3A32%20via%20%40escuadronvial&state=read&created_at=2013-02-20T11%3A33%3A37-06%3A00&updated_at=2013-02-20T11%3A35%3A20-06%3A00&lat=25.79174804389648&lng=-100.28132557868958&is_public=true&votes=0&stars=0.0&address_detail[formatted_address]=Jose%20Clemente%20Orozco%2C%20Sin%20Nombre%20de%20Colonia%2017%2C%20General%20Escobedo%2C%20NL%2C%20M%C3%A9xico&address_detail[zipcode]=&address_detail[county][long_name]=General%20Escobedo&address_detail[county][short_name]=Gral%20Escobedo&address_detail[state][long_name]=Nuevo%20Le%C3%B3n&address_detail[state][short_name]=NL&address_detail[neighborhood][long_name]=Sin%20Nombre%20de%20Colonia%2017&address_detail[neighborhood][short_name]=Sin%20Nombre%20de%20Col%2017&group=Vialidad%20y%20Transito%20(SS)&categories[]=ACCIDENTE",
|
122
|
+
:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}).
|
123
|
+
to_return(:status => 200, :body => {reports: { ticket: "#123" }}.to_json, :headers => {"Content-Type" => 'application/json'})
|
113
124
|
end
|
125
|
+
|
114
126
|
it 'returns true if report was saved successfully' do
|
115
|
-
report
|
116
|
-
|
127
|
+
expect(report.save).to eql(true)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'returns a ticket number on the response' do
|
131
|
+
expect{ @report.save }.to change{ @report.ticket_id }.from(nil).to("#123")
|
117
132
|
end
|
133
|
+
|
134
|
+
|
118
135
|
end
|
119
136
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'webmock/rspec'
|
2
2
|
require 'json'
|
3
|
+
require 'pry-byebug'
|
3
4
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
4
5
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
5
6
|
# Require this file using `require "spec_helper"` to ensure that it is only
|
metadata
CHANGED
@@ -1,137 +1,124 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Abraham Kuri Vargas
|
8
|
+
- Alicia Catalina
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-12-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
|
-
- -
|
18
|
+
- - "~>"
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '0'
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - "~>"
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '0'
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: hashie
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
|
-
- -
|
32
|
+
- - "~>"
|
36
33
|
- !ruby/object:Gem::Version
|
37
34
|
version: '0'
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
|
-
- -
|
39
|
+
- - "~>"
|
44
40
|
- !ruby/object:Gem::Version
|
45
41
|
version: '0'
|
46
42
|
- !ruby/object:Gem::Dependency
|
47
43
|
name: activesupport
|
48
44
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
|
-
- -
|
46
|
+
- - "~>"
|
52
47
|
- !ruby/object:Gem::Version
|
53
48
|
version: '0'
|
54
49
|
type: :runtime
|
55
50
|
prerelease: false
|
56
51
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
52
|
requirements:
|
59
|
-
- -
|
53
|
+
- - "~>"
|
60
54
|
- !ruby/object:Gem::Version
|
61
55
|
version: '0'
|
62
56
|
- !ruby/object:Gem::Dependency
|
63
57
|
name: json
|
64
58
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
59
|
requirements:
|
67
|
-
- -
|
60
|
+
- - "~>"
|
68
61
|
- !ruby/object:Gem::Version
|
69
62
|
version: '0'
|
70
63
|
type: :runtime
|
71
64
|
prerelease: false
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
|
-
- -
|
67
|
+
- - "~>"
|
76
68
|
- !ruby/object:Gem::Version
|
77
69
|
version: '0'
|
78
70
|
- !ruby/object:Gem::Dependency
|
79
71
|
name: rspec
|
80
72
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
73
|
requirements:
|
83
|
-
- -
|
74
|
+
- - "~>"
|
84
75
|
- !ruby/object:Gem::Version
|
85
76
|
version: '0'
|
86
77
|
type: :development
|
87
78
|
prerelease: false
|
88
79
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
80
|
requirements:
|
91
|
-
- -
|
81
|
+
- - "~>"
|
92
82
|
- !ruby/object:Gem::Version
|
93
83
|
version: '0'
|
94
84
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
85
|
+
name: pry-byebug
|
96
86
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
87
|
requirements:
|
99
|
-
- -
|
88
|
+
- - "~>"
|
100
89
|
- !ruby/object:Gem::Version
|
101
90
|
version: '0'
|
102
91
|
type: :development
|
103
92
|
prerelease: false
|
104
93
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
94
|
requirements:
|
107
|
-
- -
|
95
|
+
- - "~>"
|
108
96
|
- !ruby/object:Gem::Version
|
109
97
|
version: '0'
|
110
98
|
- !ruby/object:Gem::Dependency
|
111
99
|
name: shoulda-matchers
|
112
100
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
101
|
requirements:
|
115
|
-
- -
|
102
|
+
- - "~>"
|
116
103
|
- !ruby/object:Gem::Version
|
117
104
|
version: '0'
|
118
105
|
type: :development
|
119
106
|
prerelease: false
|
120
107
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
108
|
requirements:
|
123
|
-
- -
|
109
|
+
- - "~>"
|
124
110
|
- !ruby/object:Gem::Version
|
125
111
|
version: '0'
|
126
112
|
description: Communicates the CIC API
|
127
113
|
email:
|
128
114
|
- kurenn@icalialabs.com
|
115
|
+
- alicia@icalialabs.com
|
129
116
|
executables: []
|
130
117
|
extensions: []
|
131
118
|
extra_rdoc_files: []
|
132
119
|
files:
|
133
|
-
- .gitignore
|
134
|
-
- .rspec
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
135
122
|
- Gemfile
|
136
123
|
- LICENSE.txt
|
137
124
|
- README.md
|
@@ -149,29 +136,29 @@ files:
|
|
149
136
|
- spec/helper.rb
|
150
137
|
- spec/report_spec.rb
|
151
138
|
- spec/spec_helper.rb
|
152
|
-
homepage:
|
153
|
-
licenses:
|
139
|
+
homepage: https://github.com/IcaliaLabs/cic-rb
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata: {}
|
154
143
|
post_install_message:
|
155
144
|
rdoc_options: []
|
156
145
|
require_paths:
|
157
146
|
- lib
|
158
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
148
|
requirements:
|
161
|
-
- -
|
149
|
+
- - ">="
|
162
150
|
- !ruby/object:Gem::Version
|
163
151
|
version: '0'
|
164
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
153
|
requirements:
|
167
|
-
- -
|
154
|
+
- - ">="
|
168
155
|
- !ruby/object:Gem::Version
|
169
156
|
version: '0'
|
170
157
|
requirements: []
|
171
158
|
rubyforge_project: cic
|
172
|
-
rubygems_version:
|
159
|
+
rubygems_version: 2.4.2
|
173
160
|
signing_key:
|
174
|
-
specification_version:
|
161
|
+
specification_version: 4
|
175
162
|
summary: CIC Api Integration
|
176
163
|
test_files:
|
177
164
|
- spec/category_spec.rb
|
@@ -179,3 +166,4 @@ test_files:
|
|
179
166
|
- spec/helper.rb
|
180
167
|
- spec/report_spec.rb
|
181
168
|
- spec/spec_helper.rb
|
169
|
+
has_rdoc:
|