gems 1.0.0 → 1.1.0
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 +5 -5
- data/README.md +4 -4
- data/gems.gemspec +4 -3
- data/lib/gems/client.rb +14 -11
- data/lib/gems/configuration.rb +6 -6
- data/lib/gems/request.rb +3 -5
- data/lib/gems/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a5b059ed35aca287a6a7761233c2515f195ea6c89642c10c4e31f189d9ba6733
|
4
|
+
data.tar.gz: 6c80735a10bb701b213edda1274a3f542d985b369623f4cded91de5c3e697447
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d1b6b6fa564e20654d4883581c596db744b9a34cc188471e1030a3dab597c3905b35da32f9a3f4100213a5f4e0f897a7beec862ca8d10c04fd10d5303022297
|
7
|
+
data.tar.gz: e33fa8637f8b0f76b909f231f118f1ca29b0cf480cf03069032b87c7dc446bb7cc351d0666b17168a469538b1bb18aa19756df01886dbda012bcfceed5c630b6
|
data/README.md
CHANGED
@@ -50,13 +50,13 @@ Ruby wrapper for the RubyGems.org API.
|
|
50
50
|
# Return an array of version details for coulda.
|
51
51
|
Gems.versions 'coulda'
|
52
52
|
|
53
|
+
# Return an hash of latest version for coulda.
|
54
|
+
Gems.latest_version 'coulda'
|
55
|
+
|
53
56
|
# Return the total number of downloads for rails_admin 0.0.1.
|
54
57
|
# (Defaults to the latest version if no version is specified.)
|
55
58
|
Gems.total_downloads 'rails_admin', '0.0.1'
|
56
59
|
|
57
|
-
# Returns an array containing the top 50 downloaded gem versions for today.
|
58
|
-
Gems.most_downloaded_today
|
59
|
-
|
60
60
|
# Returns an array containing the top 50 downloaded gem versions of all time.
|
61
61
|
Gems.most_downloaded
|
62
62
|
|
@@ -66,7 +66,7 @@ Ruby wrapper for the RubyGems.org API.
|
|
66
66
|
|
67
67
|
# Return the number of downloads by day for coulda 0.6.3 for the past 90 days.
|
68
68
|
# (Defaults to the latest version if no version is specified.)
|
69
|
-
Gems.downloads 'coulda', '0.6.3'
|
69
|
+
Gems.downloads 'coulda', '0.6.3', Date.today - 90, Date.today
|
70
70
|
|
71
71
|
# Return the number of downloads by day for coulda 0.6.3 for the past year.
|
72
72
|
Gems.downloads 'coulda', '0.6.3', Date.today - 365, Date.today
|
data/gems.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'gems/version'
|
@@ -9,11 +10,11 @@ Gem::Specification.new do |spec|
|
|
9
10
|
spec.authors = ['Erik Michaels-Ober']
|
10
11
|
spec.description = 'Ruby wrapper for the RubyGems.org API'
|
11
12
|
spec.email = ['sferik@gmail.com']
|
12
|
-
spec.files = %w
|
13
|
+
spec.files = %w[.yardopts CONTRIBUTING.md LICENSE.md README.md gems.gemspec] + Dir['lib/**/*.rb']
|
13
14
|
spec.homepage = 'https://github.com/rubygems/gems'
|
14
|
-
spec.licenses = %w
|
15
|
+
spec.licenses = %w[MIT]
|
15
16
|
spec.name = 'gems'
|
16
|
-
spec.require_paths = %w
|
17
|
+
spec.require_paths = %w[lib]
|
17
18
|
spec.required_ruby_version = '>= 2.1.9'
|
18
19
|
spec.summary = spec.description
|
19
20
|
spec.version = Gems::VERSION
|
data/lib/gems/client.rb
CHANGED
@@ -25,6 +25,8 @@ module Gems
|
|
25
25
|
def info(gem_name)
|
26
26
|
response = get("/api/v1/gems/#{gem_name}.json")
|
27
27
|
JSON.parse(response)
|
28
|
+
rescue JSON::ParserError
|
29
|
+
[]
|
28
30
|
end
|
29
31
|
|
30
32
|
# Returns an array of active gems that match the query
|
@@ -105,6 +107,18 @@ module Gems
|
|
105
107
|
JSON.parse(response)
|
106
108
|
end
|
107
109
|
|
110
|
+
# Returns an hash of gem latest version
|
111
|
+
#
|
112
|
+
# @authenticated false
|
113
|
+
# @param gem_name [String] The name of a gem.
|
114
|
+
# @return [Hash]
|
115
|
+
# @example
|
116
|
+
# Gems.latest_version 'coulda'
|
117
|
+
def latest_version(gem_name)
|
118
|
+
response = get("/api/v1/versions/#{gem_name}/latest.json")
|
119
|
+
JSON.parse(response)
|
120
|
+
end
|
121
|
+
|
108
122
|
# Returns the total number of downloads for a particular gem
|
109
123
|
#
|
110
124
|
# @authenticated false
|
@@ -118,17 +132,6 @@ module Gems
|
|
118
132
|
JSON.parse(response, :symbolize_names => true)
|
119
133
|
end
|
120
134
|
|
121
|
-
# Returns an array containing the top 50 downloaded gem versions for today
|
122
|
-
#
|
123
|
-
# @authenticated false
|
124
|
-
# @return [Array]
|
125
|
-
# @example
|
126
|
-
# Gems.most_downloaded_today
|
127
|
-
def most_downloaded_today
|
128
|
-
response = get('/api/v1/downloads/top.json')
|
129
|
-
JSON.parse(response)['gems']
|
130
|
-
end
|
131
|
-
|
132
135
|
# Returns an array containing the top 50 downloaded gem versions of all time
|
133
136
|
#
|
134
137
|
# @authenticated false
|
data/lib/gems/configuration.rb
CHANGED
@@ -5,12 +5,12 @@ require 'yaml'
|
|
5
5
|
module Gems
|
6
6
|
module Configuration
|
7
7
|
# An array of valid keys in the options hash when configuring a {Gems::Client}
|
8
|
-
VALID_OPTIONS_KEYS = [
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
VALID_OPTIONS_KEYS = %i[
|
9
|
+
host
|
10
|
+
key
|
11
|
+
password
|
12
|
+
user_agent
|
13
|
+
username
|
14
14
|
].freeze
|
15
15
|
|
16
16
|
# Set the default API endpoint
|
data/lib/gems/request.rb
CHANGED
@@ -23,7 +23,7 @@ module Gems
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def request(method, path, data, content_type, request_host = host) # rubocop:disable AbcSize, CyclomaticComplexity, MethodLength, ParameterLists, PerceivedComplexity
|
26
|
-
path += hash_to_query_string(data) if [
|
26
|
+
path += hash_to_query_string(data) if %i[delete get].include? method
|
27
27
|
uri = URI.parse [request_host, path].join
|
28
28
|
request_class = Net::HTTP.const_get method.to_s.capitalize
|
29
29
|
request = request_class.new uri.request_uri
|
@@ -35,7 +35,7 @@ module Gems
|
|
35
35
|
request.content_type = content_type
|
36
36
|
case content_type
|
37
37
|
when 'application/x-www-form-urlencoded'
|
38
|
-
request.form_data = data if [
|
38
|
+
request.form_data = data if %i[post put].include? method
|
39
39
|
when 'application/octet-stream'
|
40
40
|
request.body = data
|
41
41
|
request.content_length = data.size
|
@@ -59,9 +59,7 @@ module Gems
|
|
59
59
|
def hash_to_query_string(hash)
|
60
60
|
return '' if hash.empty?
|
61
61
|
|
62
|
-
|
63
|
-
query_string << "#{URI.encode(key.to_s)}=#{URI.encode(hash[key])}&"
|
64
|
-
end.chop!
|
62
|
+
'?' + URI.encode_www_form(hash)
|
65
63
|
end
|
66
64
|
|
67
65
|
def body_from_response(response, method, content_type)
|
data/lib/gems/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Gems
|
2
2
|
class Version
|
3
3
|
MAJOR = 1 unless defined? Gems::Version::MAJOR
|
4
|
-
MINOR =
|
4
|
+
MINOR = 1 unless defined? Gems::Version::MINOR
|
5
5
|
PATCH = 0 unless defined? Gems::Version::PATCH
|
6
6
|
PRE = nil unless defined? Gems::Version::PRE
|
7
7
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Michaels-Ober
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
77
|
rubyforge_project:
|
78
|
-
rubygems_version: 2.
|
78
|
+
rubygems_version: 2.7.6
|
79
79
|
signing_key:
|
80
80
|
specification_version: 4
|
81
81
|
summary: Ruby wrapper for the RubyGems.org API
|