awesm 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +30 -7
- data/lib/awesm.rb +1 -0
- data/lib/awesm/project.rb +18 -6
- data/lib/awesm/stats.rb +16 -0
- data/lib/awesm/version.rb +1 -1
- data/spec/awesm/conversion_spec.rb +3 -3
- data/spec/awesm/project_spec.rb +102 -75
- data/spec/awesm/stats_spec.rb +93 -0
- data/spec/awesm/url_spec.rb +1 -1
- metadata +7 -4
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -21,21 +21,44 @@ And in your code:
|
|
21
21
|
# Create a project
|
22
22
|
project = Awesm::Project.create(:name => 'TotallyAwesm')
|
23
23
|
project.api_key # => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9'
|
24
|
+
# or
|
25
|
+
project = Awesm::Project.new(:name => 'TotallyAwesm')
|
26
|
+
project.save # => true
|
27
|
+
project.api_key # => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9'
|
24
28
|
|
25
29
|
# List projects
|
26
30
|
projects = Awesm::Project.list
|
27
31
|
projects.first.class # => Awesm::Project
|
28
32
|
|
33
|
+
# Notify Awe.sm of a goal conversion
|
34
|
+
Awesm::Conversion.convert(
|
35
|
+
:key => "f2d8aeb112f1e0bedd7c05653e3265d2622635a3180f336f73b172267f7fe6ee",
|
36
|
+
:awesm_url => "awe.sm_5WXHo",
|
37
|
+
:conversion_type => "goal_1",
|
38
|
+
:conversion_value => 1230
|
39
|
+
)
|
40
|
+
# => #<Awesm::Conversion account_conversionid=nil account_id="12" account_userid=nil awesm_url="awe.sm_5WXHo" clicker_id=nil converted_at=1323475432 href=nil id="bfdaddec-2298-43fb-9da0-f12d81febbf6" ip_address=nil language=nil redirection_id="94585739" referrer=nil session_id=nil type="goal_1" user_agent=nil value=1230>
|
41
|
+
|
29
42
|
# Create a sharing link
|
30
|
-
Awesm::Url.share(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
43
|
+
Awesm::Url.share(
|
44
|
+
:url => 'http://developers.awe.sm/',
|
45
|
+
:key => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9',
|
46
|
+
:tool => 'mKU7uN',
|
47
|
+
:channel => 'twitter',
|
48
|
+
:destination => 'http://twitter.com/intent/tweet?text=This+is+the+coolest+API+evar!%26url=AWESM_URL%26via=awesm',
|
49
|
+
:parent => 'awe.sm_s5d99',
|
50
|
+
:user_id => '42'
|
51
|
+
)
|
37
52
|
# => "http://api.awe.sm/url/share?v=3&url=http://developers.awe.sm/&key=5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9&tool=mKU7uN&channel=twitter&destination=http://twitter.com/intent/tweet?text=This+is+the+coolest+API+evar!%26url=AWESM_URL%26via=awesm&parent=awe.sm_s5d99&user_id=42"
|
38
53
|
|
54
|
+
# Retrieve stats in return for your hard work!
|
55
|
+
stats = Awesm::Stats.range(
|
56
|
+
:key => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9',
|
57
|
+
:start_date => '2011-09-01',
|
58
|
+
:end_date => '2011-10-01'
|
59
|
+
)
|
60
|
+
stats.totals.clicks # => 1024
|
61
|
+
|
39
62
|
## Contributing ##
|
40
63
|
|
41
64
|
* fork
|
data/lib/awesm.rb
CHANGED
data/lib/awesm/project.rb
CHANGED
@@ -4,12 +4,8 @@ module Awesm
|
|
4
4
|
base_uri 'http://api.awe.sm/projects'
|
5
5
|
|
6
6
|
def self.create(attributes)
|
7
|
-
|
8
|
-
|
9
|
-
nil
|
10
|
-
else
|
11
|
-
new(response['response']['project'])
|
12
|
-
end
|
7
|
+
project = self.new(attributes)
|
8
|
+
project.save ? project : nil
|
13
9
|
end
|
14
10
|
|
15
11
|
def self.list
|
@@ -24,5 +20,21 @@ module Awesm
|
|
24
20
|
projects
|
25
21
|
end
|
26
22
|
end
|
23
|
+
|
24
|
+
####################
|
25
|
+
# Instance Methods #
|
26
|
+
####################
|
27
|
+
|
28
|
+
def save
|
29
|
+
response = self.class.post('/new', :query => { :application_key => Awesm.application_key, :subscription_key => Awesm.subscription_key, :json => self.to_hash.to_json })
|
30
|
+
if response.include?('error')
|
31
|
+
# use mash to update error code and message
|
32
|
+
update(response)
|
33
|
+
false
|
34
|
+
else
|
35
|
+
update(response['response']['project'])
|
36
|
+
true
|
37
|
+
end
|
38
|
+
end
|
27
39
|
end
|
28
40
|
end
|
data/lib/awesm/stats.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Awesm
|
2
|
+
class Stats < Hashie::Mash
|
3
|
+
include HTTParty
|
4
|
+
base_uri 'http://api.awe.sm/stats'
|
5
|
+
format :json
|
6
|
+
|
7
|
+
def self.range(options)
|
8
|
+
response = get '/range.json', :query => { :v => 3 }.merge(options)
|
9
|
+
if response.has_key?('error')
|
10
|
+
nil
|
11
|
+
else
|
12
|
+
new(response)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/awesm/version.rb
CHANGED
@@ -65,7 +65,7 @@ describe Awesm::Conversion do
|
|
65
65
|
:key => "badkeyabcdefghijklmnopqrstuvwxyz1234567890",
|
66
66
|
:awesm_url => "awe.sm_5WXHo",
|
67
67
|
:conversion_type => "goal_1",
|
68
|
-
:conversion_value =>
|
68
|
+
:conversion_value => 1230
|
69
69
|
}
|
70
70
|
conversion = Awesm::Conversion.convert(params)
|
71
71
|
conversion.should == nil
|
@@ -78,7 +78,7 @@ describe Awesm::Conversion do
|
|
78
78
|
:key => "f2d8aeb112f1e0bedd7c05653e3265d2622635a3180f336f73b172267f7fe6ee",
|
79
79
|
:awesm_url => "awe.sm_5WXHo",
|
80
80
|
:conversion_type => "goal_1",
|
81
|
-
:conversion_value =>
|
81
|
+
:conversion_value => 1230
|
82
82
|
}
|
83
83
|
|
84
84
|
conversion = Awesm::Conversion.convert(params)
|
@@ -91,7 +91,7 @@ describe Awesm::Conversion do
|
|
91
91
|
:key => "f2d8aeb112f1e0bedd7c05653e3265d2622635a3180f336f73b172267f7fe6ee",
|
92
92
|
:awesm_url => "awe.sm_5WXHo",
|
93
93
|
:conversion_type => "goal_1",
|
94
|
-
:conversion_value =>
|
94
|
+
:conversion_value => 1230
|
95
95
|
}
|
96
96
|
|
97
97
|
conversion = Awesm::Conversion.convert(params)
|
data/spec/awesm/project_spec.rb
CHANGED
@@ -12,53 +12,53 @@ describe Awesm::Project do
|
|
12
12
|
Awesm.application_key = nil
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
{
|
18
|
-
"
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
"
|
26
|
-
"
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
"viewers" => []
|
36
|
-
}
|
15
|
+
let(:new_project_response) do
|
16
|
+
{
|
17
|
+
"request" => {
|
18
|
+
"application_key" => "app-xxxxxx",
|
19
|
+
"json" => "{\"name\" =>\"TotallyAwesomeProject\"}",
|
20
|
+
"method" => "new",
|
21
|
+
"object" => "project",
|
22
|
+
"subscription_key" => "sub-xxxxxx"
|
23
|
+
},
|
24
|
+
"response" => {
|
25
|
+
"project" => {
|
26
|
+
"admins" => [],
|
27
|
+
"api_key" => "6xxxxxxxxx58xx0xxx74xx3x76xx83x6x34xx48x7xxxx55x167037818d65x66x",
|
28
|
+
"created_at" => "2011-10-25 00:43:49",
|
29
|
+
"default_domain" => "awe.sm",
|
30
|
+
"domains" => [],
|
31
|
+
"name" => "TotallyAwesomeProject",
|
32
|
+
"sharers" => [],
|
33
|
+
"updated_at" => "2011-10-25 00:43:49",
|
34
|
+
"viewers" => []
|
37
35
|
}
|
38
|
-
}
|
39
|
-
|
36
|
+
}
|
37
|
+
}.to_json
|
38
|
+
end
|
40
39
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
40
|
+
let(:new_project_error_response) do
|
41
|
+
{
|
42
|
+
"request" => {
|
43
|
+
"application_key" => "app-xxxxxx",
|
44
|
+
"json" => "{\"name\" =>\"ExistingAwesomeProject\"}",
|
45
|
+
"method" => "new",
|
46
|
+
"object" => "project",
|
47
|
+
"subscription_key" => "sub-xxxxxx"
|
48
|
+
},
|
49
|
+
"error" => {
|
50
|
+
"code" => 10001,
|
51
|
+
"message" => "Project name already exists (not necessarily in your subscription). Please choose another."
|
52
|
+
}
|
53
|
+
}.to_json
|
54
|
+
end
|
56
55
|
|
56
|
+
context '.create' do
|
57
57
|
before do
|
58
58
|
stub_request(:post, "http://api.awe.sm/projects/new?json=%7B%22name%22:%22TotallyAwesomeProject%22%7D&subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
59
|
-
to_return(:status => 200, :body =>
|
59
|
+
to_return(:status => 200, :body => new_project_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
60
60
|
stub_request(:post, "http://api.awe.sm/projects/new?json=%7B%22name%22:%22ExistingAwesomeProject%22%7D&subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
61
|
-
to_return(:status => 400, :body =>
|
61
|
+
to_return(:status => 400, :body => new_project_error_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
62
62
|
end
|
63
63
|
|
64
64
|
context 'when an error occurs' do
|
@@ -84,8 +84,60 @@ describe Awesm::Project do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
describe '.new' do
|
88
|
+
it 'accepts project attributes' do
|
89
|
+
project = Awesm::Project.new(:name => 'HooHah')
|
90
|
+
project.name.should == 'HooHah'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe '#save' do
|
95
|
+
before do
|
96
|
+
stub_request(:post, "http://api.awe.sm/projects/new?json=%7B%22name%22:%22TotallyAwesomeProject%22%7D&subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
97
|
+
to_return(:status => 200, :body => new_project_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
98
|
+
stub_request(:post, "http://api.awe.sm/projects/new?json=%7B%22name%22:%22ExistingAwesomeProject%22%7D&subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
99
|
+
to_return(:status => 400, :body => new_project_error_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
100
|
+
end
|
101
|
+
|
102
|
+
let(:project) { Awesm::Project.new(:name => 'TotallyAwesomeProject') }
|
103
|
+
let(:existing_project) { Awesm::Project.new(:name => 'ExistingAwesomeProject') }
|
104
|
+
|
105
|
+
context 'with no existing projects' do
|
106
|
+
it 'calls the correct project/new api' do
|
107
|
+
project.save
|
108
|
+
|
109
|
+
a_request(:post, "http://api.awe.sm/projects/new").
|
110
|
+
with(:query => {:subscription_key => "sub-xxxxxx", :application_key => "app-xxxxxx", :json => { "name" => "TotallyAwesomeProject" }.to_json }).
|
111
|
+
should have_been_made.once
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'returns true' do
|
115
|
+
project.save.should == true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context 'when the project already exists' do
|
120
|
+
it 'returns false' do
|
121
|
+
existing_project.save.should == false
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'sets the error code' do
|
125
|
+
existing_project.save
|
126
|
+
existing_project.error.code.should == 10001
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'sets the error message' do
|
130
|
+
existing_project.save
|
131
|
+
existing_project.error.message.should == 'Project name already exists (not necessarily in your subscription). Please choose another.'
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'updates a project in awe.sm if it exists and attributes have changed'
|
136
|
+
it 'does not update a project in awe.sm if it exists and attributes have not changed'
|
137
|
+
end
|
138
|
+
|
87
139
|
describe '.list' do
|
88
|
-
let(:
|
140
|
+
let(:list_project_response) do
|
89
141
|
{
|
90
142
|
"request" => {
|
91
143
|
"application_key" => "app-xxxxxx",
|
@@ -137,13 +189,13 @@ describe Awesm::Project do
|
|
137
189
|
}.to_json
|
138
190
|
end
|
139
191
|
|
140
|
-
let(:
|
192
|
+
let(:list_project_error_response) do
|
141
193
|
{
|
142
194
|
"request" => {
|
143
|
-
"action" => "list",
|
144
|
-
"subscription_key" => "butt",
|
145
|
-
"application_key" => "tlVC3D",
|
146
|
-
"controller" => "project"
|
195
|
+
"action" => "list",
|
196
|
+
"subscription_key" => "butt",
|
197
|
+
"application_key" => "tlVC3D",
|
198
|
+
"controller" => "project"
|
147
199
|
},
|
148
200
|
"error" => "Invalid subscription key"
|
149
201
|
}.to_json
|
@@ -151,9 +203,9 @@ describe Awesm::Project do
|
|
151
203
|
|
152
204
|
before do
|
153
205
|
stub_request(:post, "http://api.awe.sm/projects/list?subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
154
|
-
to_return(:status => 200, :body =>
|
206
|
+
to_return(:status => 200, :body => list_project_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
155
207
|
stub_request(:post, "http://api.awe.sm/projects/list?subscription_key=invalid&application_key=app-xxxxxx").
|
156
|
-
to_return(:status => 400, :body =>
|
208
|
+
to_return(:status => 400, :body => list_project_error_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
157
209
|
end
|
158
210
|
|
159
211
|
it 'posts to the awe.sm project list api properly' do
|
@@ -181,34 +233,9 @@ describe Awesm::Project do
|
|
181
233
|
end
|
182
234
|
|
183
235
|
describe '#api_key' do
|
184
|
-
let(:json_response) do
|
185
|
-
{
|
186
|
-
"request" => {
|
187
|
-
"application_key" => "app-xxxxxx",
|
188
|
-
"json" => "{\"name\" =>\"TotallyAwesomeProject\"}",
|
189
|
-
"method" => "new",
|
190
|
-
"object" => "project",
|
191
|
-
"subscription_key" => "sub-xxxxxx"
|
192
|
-
},
|
193
|
-
"response" => {
|
194
|
-
"project" => {
|
195
|
-
"admins" => [],
|
196
|
-
"api_key" => "6xxxxxxxxx58xx0xxx74xx3x76xx83x6x34xx48x7xxxx55x167037818d65x66x",
|
197
|
-
"created_at" => "2011-10-25 00:43:49",
|
198
|
-
"default_domain" => "awe.sm",
|
199
|
-
"domains" => [],
|
200
|
-
"name" => "TotallyAwesomeProject",
|
201
|
-
"sharers" => [],
|
202
|
-
"updated_at" => "2011-10-25 00:43:49",
|
203
|
-
"viewers" => []
|
204
|
-
}
|
205
|
-
}
|
206
|
-
}.to_json
|
207
|
-
end
|
208
|
-
|
209
236
|
before do
|
210
237
|
stub_request(:post, "http://api.awe.sm/projects/new?json=%7B%22name%22:%22TotallyAwesomeProject%22%7D&subscription_key=sub-xxxxxx&application_key=app-xxxxxx").
|
211
|
-
to_return(:status => 200, :body =>
|
238
|
+
to_return(:status => 200, :body => new_project_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
212
239
|
end
|
213
240
|
|
214
241
|
it 'returns the awe.sm api_key' do
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Awesm::Stats do
|
4
|
+
describe '.range' do
|
5
|
+
let(:basic_response) do
|
6
|
+
{
|
7
|
+
"end_date" => "2011-10-01T00:00:00Z",
|
8
|
+
"filters" => [],
|
9
|
+
"group_by" => nil,
|
10
|
+
"groups" => [],
|
11
|
+
"last_offset" => 0,
|
12
|
+
"offset" => 0,
|
13
|
+
"page" => nil,
|
14
|
+
"per_page" => 10,
|
15
|
+
"pivot" => nil,
|
16
|
+
"pivot_sort_order" => nil,
|
17
|
+
"pivot_sort_type" => nil,
|
18
|
+
"sort_order" => nil,
|
19
|
+
"sort_type" => nil,
|
20
|
+
"start_date" => "2011-09-01T00:00:00Z",
|
21
|
+
"total_results" => 0,
|
22
|
+
"totals" => {
|
23
|
+
"clicks" => 166,
|
24
|
+
"clicks_per_share" => 2.5538,
|
25
|
+
"shares" => 65
|
26
|
+
},
|
27
|
+
"with_conversions" => false,
|
28
|
+
"with_metadata" => false,
|
29
|
+
"with_zeros" => false
|
30
|
+
}.to_json
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:invalid_key_response) do
|
34
|
+
{
|
35
|
+
"error" => 403,
|
36
|
+
"error_message" => "Invalid API key specified"
|
37
|
+
}.to_json
|
38
|
+
end
|
39
|
+
|
40
|
+
before do
|
41
|
+
stub_request(:get, "http://api.awe.sm/stats/range.json?v=3&end_date=2011-10-01&key=5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9&start_date=2011-09-01").
|
42
|
+
to_return(:status => 200, :body => basic_response, :headers => { 'Content-Type' => 'application/json;charset=utf-8' })
|
43
|
+
stub_request(:get, "http://api.awe.sm/stats/range.json?v=3&end_date=2011-10-01&key=fake_key&start_date=2011-09-01").
|
44
|
+
to_return(
|
45
|
+
:status => 403,
|
46
|
+
:body => invalid_key_response,
|
47
|
+
:headers => {
|
48
|
+
"x-powered-by" => ["PHP/5.3.2-1ubuntu4.7"],
|
49
|
+
"connection"=>["close"],
|
50
|
+
"content-type"=>["text/html"],
|
51
|
+
"date"=>["Tue, 13 Dec 2011 18:51:20 GMT"],
|
52
|
+
"server"=>["Apache/2.2.14 (Ubuntu)"],
|
53
|
+
"content-length"=>["57"],
|
54
|
+
"vary"=>["Accept-Encoding"]
|
55
|
+
})
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'gets the stats range api correctly' do
|
59
|
+
stats = Awesm::Stats.range(
|
60
|
+
:key => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9',
|
61
|
+
:start_date => '2011-09-01',
|
62
|
+
:end_date => '2011-10-01'
|
63
|
+
)
|
64
|
+
|
65
|
+
a_request(:get, "http://api.awe.sm/stats/range.json").
|
66
|
+
with(:query => {
|
67
|
+
:v => '3',
|
68
|
+
:key => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9',
|
69
|
+
:start_date => '2011-09-01',
|
70
|
+
:end_date => '2011-10-01'
|
71
|
+
}).
|
72
|
+
should have_been_made.once
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'gets with an incorrect key' do
|
76
|
+
stats = Awesm::Stats.range(
|
77
|
+
:key => 'fake_key',
|
78
|
+
:start_date => '2011-09-01',
|
79
|
+
:end_date => '2011-10-01'
|
80
|
+
)
|
81
|
+
stats.should == nil
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'returns an instance of Awesm::Stats' do
|
85
|
+
stats = Awesm::Stats.range(
|
86
|
+
:key => '5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9',
|
87
|
+
:start_date => '2011-09-01',
|
88
|
+
:end_date => '2011-10-01'
|
89
|
+
)
|
90
|
+
stats.should be_an_instance_of(Awesm::Stats)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
data/spec/awesm/url_spec.rb
CHANGED
@@ -50,7 +50,7 @@ describe Awesm::Url do
|
|
50
50
|
:user_id_profile_url => 'http://test.com/users/42/',
|
51
51
|
:user_id_username => 'johndoe@test.com'
|
52
52
|
))
|
53
|
-
url.should == "http://api.awe.sm/url/share?v=3&url=http://developers.awe.sm/&key=5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9&tool=mKU7uN&channel=twitter&destination=http://twitter.com/intent/tweet?text=This+is+the+coolest+API+evar!%26url=AWESM_URL%26via=awesm&user_id_icon_url=http://test.com/users/42/avatar.png&user_id_profile_url=http://test.com/users/42/&user_id_username=johndoe@test.com
|
53
|
+
url.should == "http://api.awe.sm/url/share?v=3&url=http://developers.awe.sm/&key=5c8b1a212434c2153c2f2c2f2c765a36140add243bf6eae876345f8fd11045d9&tool=mKU7uN&channel=twitter&destination=http://twitter.com/intent/tweet?text=This+is+the+coolest+API+evar!%26url=AWESM_URL%26via=awesm&user_id=42&user_id_icon_url=http://test.com/users/42/avatar.png&user_id_profile_url=http://test.com/users/42/&user_id_username=johndoe@test.com"
|
54
54
|
end
|
55
55
|
|
56
56
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awesm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 7
|
10
|
+
version: 0.1.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sathya Sekaran
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-12-
|
19
|
+
date: 2011-12-14 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
prerelease: false
|
@@ -179,10 +179,12 @@ files:
|
|
179
179
|
- lib/awesm.rb
|
180
180
|
- lib/awesm/conversion.rb
|
181
181
|
- lib/awesm/project.rb
|
182
|
+
- lib/awesm/stats.rb
|
182
183
|
- lib/awesm/url.rb
|
183
184
|
- lib/awesm/version.rb
|
184
185
|
- spec/awesm/conversion_spec.rb
|
185
186
|
- spec/awesm/project_spec.rb
|
187
|
+
- spec/awesm/stats_spec.rb
|
186
188
|
- spec/awesm/url_spec.rb
|
187
189
|
- spec/awesm_spec.rb
|
188
190
|
- spec/spec_helper.rb
|
@@ -222,6 +224,7 @@ summary: Totally awe.sm!
|
|
222
224
|
test_files:
|
223
225
|
- spec/awesm/conversion_spec.rb
|
224
226
|
- spec/awesm/project_spec.rb
|
227
|
+
- spec/awesm/stats_spec.rb
|
225
228
|
- spec/awesm/url_spec.rb
|
226
229
|
- spec/awesm_spec.rb
|
227
230
|
- spec/spec_helper.rb
|