mashery_rails 0.6.7 → 0.6.8
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/Gemfile +1 -0
- data/Gemfile.lock +4 -0
- data/README.md +78 -2
- data/lib/generators/mashery_install_generator.rb +9 -0
- data/lib/mashery/key.rb +15 -3
- data/lib/mashery/member.rb +24 -4
- data/lib/mashery/rest_client.rb +9 -9
- data/lib/mashery/rpc_client/base.rb +3 -5
- data/lib/mashery/service.rb +17 -2
- data/lib/mashery/version.rb +1 -1
- data/lib/mashery.rb +1 -1
- data/lib/mashery_rails/version.rb +1 -1
- metadata +3 -2
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -170,6 +170,9 @@ GEM
|
|
170
170
|
concord (~> 0.1.1)
|
171
171
|
equalizer (~> 0.0.7)
|
172
172
|
parser (~> 2.0.0.pre6)
|
173
|
+
virtus (0.5.5)
|
174
|
+
backports (~> 3.3)
|
175
|
+
descendants_tracker (~> 0.0.1)
|
173
176
|
yard (0.8.7.1)
|
174
177
|
yard-spellcheck (0.1.5)
|
175
178
|
ffi-hunspell (~> 0.2)
|
@@ -210,6 +213,7 @@ DEPENDENCIES
|
|
210
213
|
simplecov (~> 0.7.1)
|
211
214
|
terminal-notifier-guard (~> 1.5.3)
|
212
215
|
timecop
|
216
|
+
virtus
|
213
217
|
yard (~> 0.8.7)
|
214
218
|
yard-spellcheck (~> 0.1.5)
|
215
219
|
yardstick (~> 0.9.7)!
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# mashery_rails
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/mashery_rails)
|
3
4
|
[](https://coveralls.io/r/farleyknight/mashery_rails)
|
4
5
|
[](https://travis-ci.org/farleyknight/mashery_rails)
|
5
6
|
[](https://codeclimate.com/github/farleyknight/mashery_rails)
|
@@ -42,7 +43,12 @@ Note this doesn't distinguish between development, testing, production, etc. If
|
|
42
43
|
|
43
44
|
## JSON-RPC API
|
44
45
|
|
45
|
-
The central data objects are all listed on the
|
46
|
+
The central data objects are all listed on the
|
47
|
+
[RPC API documentation page](http://support.mashery.com/docs/read/mashery_api/20/API_Objects),
|
48
|
+
and should be supported. However,
|
49
|
+
[fetching objects](http://support.mashery.com/docs/read/mashery_api/20/Fetching_Objects)
|
50
|
+
are the main & typically only supported method for each of these objects. If you would like more API methods,
|
51
|
+
don't be shy! Create a pull request and it'll probably get merged within a day.
|
46
52
|
|
47
53
|
### `all`
|
48
54
|
|
@@ -122,4 +128,74 @@ Mashery::Member.page(10)
|
|
122
128
|
|
123
129
|
## REST API
|
124
130
|
|
125
|
-
Mashery's REST API are
|
131
|
+
Mashery's REST API are pulling statistics about Services. As such, these calls are invoked via the `Service` API object
|
132
|
+
|
133
|
+
### `Service#activity`
|
134
|
+
|
135
|
+
Maps to the [CallsDeveloperActivityForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsDeveloperActivityForService)
|
136
|
+
call.
|
137
|
+
|
138
|
+
```ruby
|
139
|
+
service = Mashery::Service.where(key: "my_service_id")
|
140
|
+
service.activity #=>
|
141
|
+
```
|
142
|
+
|
143
|
+
### `Service#errorcodes`
|
144
|
+
|
145
|
+
Maps to the [CallsErrorcodesForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsErrorcodesForService)
|
146
|
+
call.
|
147
|
+
|
148
|
+
```ruby
|
149
|
+
service = Mashery::Service.where(key: "my_service_id")
|
150
|
+
service.errorcodes #=>
|
151
|
+
```
|
152
|
+
|
153
|
+
### `Service#errorcount`
|
154
|
+
|
155
|
+
Maps to the [CallsErrorcountByMethodForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsErrorcountByMethodForService)
|
156
|
+
call.
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
service = Mashery::Service.where(key: "my_service_id")
|
160
|
+
service.errorcount #=>
|
161
|
+
```
|
162
|
+
|
163
|
+
### `Service#latency`
|
164
|
+
|
165
|
+
Maps to the [CallsLatencyForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsLatencyForService)
|
166
|
+
call.
|
167
|
+
|
168
|
+
```ruby
|
169
|
+
service = Mashery::Service.where(key: "my_service_id")
|
170
|
+
service.latency #=>
|
171
|
+
```
|
172
|
+
|
173
|
+
### `Service#latency_by_method`
|
174
|
+
|
175
|
+
Maps to the [CallsLatencyByMethodForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsLatencyByMethodForService)
|
176
|
+
call.
|
177
|
+
|
178
|
+
```ruby
|
179
|
+
service = Mashery::Service.where(key: "my_service_id")
|
180
|
+
service.latency_by_method #=>
|
181
|
+
```
|
182
|
+
|
183
|
+
### `Service#methods`
|
184
|
+
|
185
|
+
Maps to the [CallsMethodsForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsMethodsForService)
|
186
|
+
call.
|
187
|
+
|
188
|
+
```ruby
|
189
|
+
service = Mashery::Service.where(key: "my_service_id")
|
190
|
+
service.methods #=>
|
191
|
+
```
|
192
|
+
|
193
|
+
### `Service#volume_by_hour`
|
194
|
+
|
195
|
+
Maps to the [CallsMedianVolumeByHourForService](http://support.mashery.com/docs/read/mashery_api/20_reporting/REST_Resources#CallsMedianVolumeByHourForService)
|
196
|
+
call.
|
197
|
+
|
198
|
+
```ruby
|
199
|
+
service = Mashery::Service.where(key: "my_service_id")
|
200
|
+
service.volume_by_hour #=>
|
201
|
+
```
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class MasheryInstallGenerator < Rails::Generators::Base
|
4
|
+
desc "Create mashery.yml config file"
|
5
|
+
def create_initializer_file
|
6
|
+
config = %q{---\nsite_id: '123'\nkey: "abc"\nsecret: "xyz"\nhost: "api.mashery.com"}
|
7
|
+
create_file "config/mashery.yml", config
|
8
|
+
end
|
9
|
+
end
|
data/lib/mashery/key.rb
CHANGED
@@ -1,7 +1,19 @@
|
|
1
1
|
module Mashery
|
2
2
|
class Key < RpcClient::Base
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
attribute :id, Fixnum
|
4
|
+
attribute :created, DateTime
|
5
|
+
attribute :updated, DateTime
|
6
|
+
attribute :service_key, String
|
7
|
+
attribute :apikey, String
|
8
|
+
attribute :username, String
|
9
|
+
attribute :status, String
|
10
|
+
attribute :rate_limit_ceiling, Fixnum
|
11
|
+
attribute :qps_limit_ceiling, Fixnum
|
12
|
+
attribute :rate_limit_exempt, Fixnum
|
13
|
+
attribute :qps_limit_exempt, Fixnum
|
14
|
+
attribute :required_referer, Fixnum
|
15
|
+
attribute :secret, Fixnum
|
16
|
+
attribute :object_type, String
|
17
|
+
attribute :limits, Array
|
6
18
|
end
|
7
19
|
end
|
data/lib/mashery/member.rb
CHANGED
@@ -1,8 +1,28 @@
|
|
1
1
|
module Mashery
|
2
2
|
class Member < RpcClient::Base
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
attribute :username, String
|
4
|
+
attribute :created, DateTime
|
5
|
+
attribute :updated, DateTime
|
6
|
+
attribute :email, String
|
7
|
+
attribute :display_name, String
|
8
|
+
attribute :url, String
|
9
|
+
attribute :blog, String
|
10
|
+
attribute :im, String
|
11
|
+
attribute :imsvc, String
|
12
|
+
attribute :phone, String
|
13
|
+
attribute :company, String
|
14
|
+
attribute :address1, String
|
15
|
+
attribute :address2, String
|
16
|
+
attribute :locality, String
|
17
|
+
attribute :region, String
|
18
|
+
attribute :postal_code, String
|
19
|
+
attribute :country_code, String
|
20
|
+
attribute :first_name, String
|
21
|
+
attribute :last_name, String
|
22
|
+
attribute :registration_ipaddr, String
|
23
|
+
attribute :area_status, String
|
24
|
+
attribute :external_id, String
|
25
|
+
attribute :passwd_new, String
|
26
|
+
attribute :object_type, String
|
7
27
|
end
|
8
28
|
end
|
data/lib/mashery/rest_client.rb
CHANGED
@@ -4,21 +4,21 @@ module Mashery
|
|
4
4
|
Query.new(query_params).url
|
5
5
|
end
|
6
6
|
|
7
|
-
def
|
7
|
+
def call(activity_type, service_id, options)
|
8
8
|
if activity_type == "developer_activity"
|
9
|
-
|
9
|
+
query_options = {service_id: service_id, resource: "developer_activity"}.merge(options)
|
10
|
+
query = Query.new(query_options)
|
11
|
+
perform_query(query)
|
12
|
+
elsif activity_type == "errorcodes"
|
13
|
+
query_options = {service_id: service_id, resource: "errorcodes"}.merge(options)
|
14
|
+
query = Query.new(query_options)
|
15
|
+
perform_query(query)
|
10
16
|
else
|
11
17
|
raise "No such activity type!"
|
12
18
|
end
|
13
19
|
end
|
14
20
|
|
15
|
-
def
|
16
|
-
query_options = {service_id: service_id, resource: "developer_activity"}.merge(options)
|
17
|
-
Query.new(query_options)
|
18
|
-
end
|
19
|
-
|
20
|
-
def developer_activity(service_id, options)
|
21
|
-
query = developer_activity_query(service_id, options)
|
21
|
+
def perform_query(query)
|
22
22
|
response = ::RestClient.get(query.url)
|
23
23
|
|
24
24
|
if query.format == "json" or query.format == "csv"
|
@@ -1,11 +1,9 @@
|
|
1
|
+
require 'virtus'
|
2
|
+
|
1
3
|
module Mashery
|
2
4
|
class RpcClient
|
3
5
|
class Base
|
4
|
-
|
5
|
-
attributes.each do |key, value|
|
6
|
-
send("#{key}=", value)
|
7
|
-
end
|
8
|
-
end
|
6
|
+
include Virtus
|
9
7
|
|
10
8
|
def self.count
|
11
9
|
default_query.items(1).to_json["result"]["total_items"]
|
data/lib/mashery/service.rb
CHANGED
@@ -1,9 +1,24 @@
|
|
1
1
|
module Mashery
|
2
2
|
class Service < RpcClient::Base
|
3
|
-
|
3
|
+
attribute :service_key, String
|
4
|
+
attribute :name, String
|
5
|
+
attribute :limits, Hash
|
6
|
+
attribute :created, DateTime
|
7
|
+
attribute :updated, DateTime
|
8
|
+
attribute :object_type, String
|
4
9
|
|
5
10
|
def activity(options = {})
|
6
|
-
Mashery.rest.
|
11
|
+
Mashery.rest.call("developer_activity", service_key, {
|
12
|
+
# TODO: For API purposes, these values probably shouldn't be hard-coded
|
13
|
+
start_date: 1.day.ago, end_date: 0.days.ago
|
14
|
+
}.merge(options))
|
15
|
+
end
|
16
|
+
|
17
|
+
def errorcodes(options = {})
|
18
|
+
Mashery.rest.call("errorcodes", service_key, {
|
19
|
+
# TODO: For API purposes, these values probably shouldn't be hard-coded
|
20
|
+
start_date: 1.day.ago, end_date: 0.days.ago
|
21
|
+
}.merge(options))
|
7
22
|
end
|
8
23
|
end
|
9
24
|
end
|
data/lib/mashery/version.rb
CHANGED
data/lib/mashery.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mashery_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- config/reek.yml
|
87
87
|
- config/rubocop.yml
|
88
88
|
- config/yardstick.yml
|
89
|
+
- lib/generators/mashery_install_generator.rb
|
89
90
|
- lib/mashery.rb
|
90
91
|
- lib/mashery/config.rb
|
91
92
|
- lib/mashery/exceptions.rb
|
@@ -133,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
134
|
version: '0'
|
134
135
|
segments:
|
135
136
|
- 0
|
136
|
-
hash: -
|
137
|
+
hash: -3439431454915658580
|
137
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
139
|
none: false
|
139
140
|
requirements:
|