randomuser 0.0.1 → 0.3.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 +4 -4
- data/README.md +43 -14
- data/Rakefile +3 -4
- data/lib/randomuser.rb +28 -16
- data/lib/randomuser/version.rb +1 -1
- data/test/all_test.rb +62 -0
- data/test/test_helper.rb +59 -0
- metadata +18 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 585ecd0aaefd548222f03514ba40642134be774f
|
4
|
+
data.tar.gz: c21db409a7bfa3c85e86c83a88181037220b9a0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6bd853433cad2ac3c5222828e5ca52e2abaa122d2be9a411a353f30ade08d84825ae595cda80da8eee0b7a87bb3c8a727d03672c9f4d08e62e0daa933ce236a
|
7
|
+
data.tar.gz: 06d1fb3049bf97636099ee7e729aed693246f01a548e81a265e6ed5cd16e2ce65a3fbf823add9629286bb1d4e938f06e03ce6cb1cc6cfccb00f55d4d7198e481
|
data/README.md
CHANGED
@@ -6,49 +6,78 @@ This gem returns simple JSON/hash responses from the [Random User Generator](htt
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
|
9
|
+
```ruby
|
10
|
+
gem 'randomuser'
|
11
|
+
```
|
10
12
|
|
11
13
|
And then execute:
|
12
14
|
|
13
|
-
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
14
18
|
|
15
|
-
Or install it
|
19
|
+
Or install it as a standalone gem with:
|
16
20
|
|
17
|
-
|
21
|
+
```bash
|
22
|
+
$ gem install randomuser
|
23
|
+
```
|
18
24
|
|
19
25
|
## Usage
|
20
26
|
|
21
27
|
To request a single random user:
|
22
28
|
|
23
|
-
```
|
29
|
+
```ruby
|
24
30
|
Randomuser.generate
|
25
31
|
```
|
26
32
|
|
27
33
|
To request multiple random users:
|
28
34
|
|
29
|
-
```
|
30
|
-
Randomuser.generate(
|
35
|
+
```ruby
|
36
|
+
Randomuser.generate(5)
|
31
37
|
```
|
32
38
|
|
33
|
-
To request a
|
39
|
+
To request a single female random user:
|
34
40
|
|
41
|
+
```ruby
|
42
|
+
Randomuser.generate_female
|
35
43
|
```
|
36
|
-
|
44
|
+
|
45
|
+
To request multiple female random users:
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
Randomuser.generate_female(5)
|
37
49
|
```
|
38
50
|
|
39
|
-
To request a
|
51
|
+
To request a single male random user:
|
40
52
|
|
53
|
+
```ruby
|
54
|
+
Randomuser.generate_male
|
41
55
|
```
|
42
|
-
|
56
|
+
|
57
|
+
To request multiple male random users:
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
Randomuser.generate_male(5)
|
43
61
|
```
|
44
62
|
|
45
63
|
To request a specific user:
|
46
64
|
|
65
|
+
```ruby
|
66
|
+
Randomuser.generate_seed('foobar')
|
47
67
|
```
|
48
|
-
Randomuser.generate('seed=smallPanda')
|
49
|
-
```
|
50
68
|
|
51
|
-
For more information on
|
69
|
+
For more information on this API, please see the [Random User Generator](http://randomuser.me) site.
|
70
|
+
|
71
|
+
## Tests
|
72
|
+
|
73
|
+
Testing works as usual:
|
74
|
+
|
75
|
+
```bash
|
76
|
+
git clone https://github.com/humanshell/randomuser.git
|
77
|
+
cd randomuser
|
78
|
+
bundle install
|
79
|
+
rake
|
80
|
+
```
|
52
81
|
|
53
82
|
## Contributing
|
54
83
|
|
data/Rakefile
CHANGED
@@ -4,15 +4,14 @@ require 'rake/testtask'
|
|
4
4
|
desc 'Generate gem documentation'
|
5
5
|
task :doc do
|
6
6
|
system 'rm -rf doc/'
|
7
|
-
system 'rdoc --exclude=/
|
7
|
+
system 'rdoc --exclude=/test/'
|
8
8
|
end
|
9
9
|
|
10
10
|
namespace :minitest do
|
11
11
|
Rake::TestTask.new(:all) do |t|
|
12
|
-
t.libs << '
|
13
|
-
t.test_files = FileList['
|
12
|
+
t.libs << 'test'
|
13
|
+
t.test_files = FileList['test/*_test.rb']
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
task :default => 'minitest:all'
|
18
|
-
|
data/lib/randomuser.rb
CHANGED
@@ -1,29 +1,41 @@
|
|
1
|
-
# Randomuser Ruby Library
|
2
1
|
require 'net/http'
|
3
2
|
require 'uri'
|
4
3
|
require 'json'
|
5
4
|
require 'randomuser/version'
|
6
5
|
|
7
6
|
module Randomuser
|
8
|
-
@@api_base = 'http://randomuser.me/g/'
|
9
7
|
|
10
|
-
def self.
|
11
|
-
"
|
8
|
+
def self.generate(number=1)
|
9
|
+
request("results=#{number}")
|
12
10
|
end
|
13
11
|
|
14
|
-
def self.
|
12
|
+
def self.generate_female(number=1)
|
13
|
+
request("results=#{number}&gender=female")
|
14
|
+
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
def self.generate_male(number=1)
|
17
|
+
request("results=#{number}&gender=male")
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
http.start do |connection|
|
23
|
-
response = connection.send_request(:get, uri.request_uri)
|
24
|
-
response = JSON.parse(response.body, symbolize_names: true)
|
25
|
-
response[:results]
|
26
|
-
end
|
27
|
-
|
20
|
+
def self.generate_seed(seed='')
|
21
|
+
request("seed=#{seed}")
|
28
22
|
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def self.api_url(query='')
|
27
|
+
"http://api.randomuser.me/#{Randomuser::VERSION}/?#{query}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.request(query='')
|
31
|
+
uri = URI.parse(self.api_url(query))
|
32
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
33
|
+
|
34
|
+
http.start do |connection|
|
35
|
+
response = connection.send_request(:get, uri.request_uri)
|
36
|
+
response = JSON.parse(response.body, symbolize_names: true)
|
37
|
+
response[:results]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
29
41
|
end
|
data/lib/randomuser/version.rb
CHANGED
data/test/all_test.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
# all tests for randomuser api gem
|
5
|
+
|
6
|
+
class TestRandomuser < Minitest::Test
|
7
|
+
|
8
|
+
def test_generate_returns_single_response
|
9
|
+
response = Randomuser.generate
|
10
|
+
assert_equal(response.class, Array)
|
11
|
+
assert_equal(response.length, 1)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_generate_returns_multiple_responses
|
15
|
+
response = Randomuser.generate(5)
|
16
|
+
assert_equal(response.class, Array)
|
17
|
+
assert_equal(response.length, 5)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_generate_female_returns_single_response
|
21
|
+
response = Randomuser.generate_female
|
22
|
+
assert_equal(response.class, Array)
|
23
|
+
assert_equal(response.length, 1)
|
24
|
+
assert_equal(response.first[:user][:gender], 'female')
|
25
|
+
assert_equal(response.first[:user][:name][:title], 'mrs')
|
26
|
+
assert_equal(response.first[:user][:picture], 'http://api.randomuser.me/0.3.1/portraits/women/0.jpg')
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_generate_female_returns_multiple_responses
|
30
|
+
response = Randomuser.generate_female(5)
|
31
|
+
assert_equal(response.class, Array)
|
32
|
+
assert_equal(response.length, 5)
|
33
|
+
assert_equal(response.first[:user][:gender], 'female')
|
34
|
+
assert_equal(response.first[:user][:name][:title], 'mrs')
|
35
|
+
assert_equal(response.first[:user][:picture], 'http://api.randomuser.me/0.3.1/portraits/women/0.jpg')
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_generate_male_returns_single_response
|
39
|
+
response = Randomuser.generate_male
|
40
|
+
assert_equal(response.class, Array)
|
41
|
+
assert_equal(response.length, 1)
|
42
|
+
assert_equal(response.first[:user][:gender], 'male')
|
43
|
+
assert_equal(response.first[:user][:name][:title], 'mr')
|
44
|
+
assert_equal(response.first[:user][:picture], 'http://api.randomuser.me/0.3.1/portraits/men/0.jpg')
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_generate_male_returns_multiple_responses
|
48
|
+
response = Randomuser.generate_male(5)
|
49
|
+
assert_equal(response.class, Array)
|
50
|
+
assert_equal(response.length, 5)
|
51
|
+
assert_equal(response.first[:user][:gender], 'male')
|
52
|
+
assert_equal(response.first[:user][:name][:title], 'mr')
|
53
|
+
assert_equal(response.first[:user][:picture], 'http://api.randomuser.me/0.3.1/portraits/men/0.jpg')
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_generate_seed_returns_single_response
|
57
|
+
response = Randomuser.generate_seed
|
58
|
+
assert_equal(response.class, Array)
|
59
|
+
assert_equal(response.length, 1)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# use minitest gem, not the one from stdlib
|
3
|
+
gem 'minitest'
|
4
|
+
|
5
|
+
require 'minitest/autorun'
|
6
|
+
require 'randomuser'
|
7
|
+
|
8
|
+
# override the generate methods so they return mock responses during testing
|
9
|
+
module Randomuser
|
10
|
+
def self.generate(number=1)
|
11
|
+
Array.new(number, mock_response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.generate_female(number=1)
|
15
|
+
Array.new(number, mock_response)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.generate_male(number=1)
|
19
|
+
Array.new(number, mock_response('male'))
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.generate_seed(seed='')
|
23
|
+
Array.new(1, mock_response)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def mock_response(gender='female')
|
28
|
+
{
|
29
|
+
user: {
|
30
|
+
gender: "#{gender == 'female' ? 'female' : 'male'}",
|
31
|
+
name: {
|
32
|
+
title: "#{gender == 'female' ? 'mrs' : 'mr'}",
|
33
|
+
first: "first",
|
34
|
+
last: "last"
|
35
|
+
},
|
36
|
+
location: {
|
37
|
+
street: "6127 pine dr",
|
38
|
+
city: "raleigh",
|
39
|
+
state: "colorado",
|
40
|
+
zip: "34545"
|
41
|
+
},
|
42
|
+
email: "first.last@example.com",
|
43
|
+
username: "blueleopard186",
|
44
|
+
password: "password",
|
45
|
+
salt: "L",
|
46
|
+
md5: "003b0f6e9b1b40200ba0370a5f29208e",
|
47
|
+
sha1: "87b7b6b2a06238c0bb7174f03f74ae86211afc7d",
|
48
|
+
sha256: "49995e8aadf97fa0cca079be5bbf47b5fa0c5ffb0dd81831ee9b382c9772b46b",
|
49
|
+
registered: "1134630377",
|
50
|
+
dob: "326899532",
|
51
|
+
phone: "(164)-244-7352",
|
52
|
+
cell: "(485)-899-1991",
|
53
|
+
SSN: "525-20-3862",
|
54
|
+
picture: "http://api.randomuser.me/0.3.1/portraits/#{gender == 'female' ? 'women' : 'men'}/0.jpg"
|
55
|
+
},
|
56
|
+
seed: "beautifulLeopard",
|
57
|
+
version: "0.3.1"
|
58
|
+
}
|
59
|
+
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: randomuser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominic Giglio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: This gem returns simple JSON/hash responses from the Random User Generator
|
@@ -61,7 +61,7 @@ executables:
|
|
61
61
|
extensions: []
|
62
62
|
extra_rdoc_files: []
|
63
63
|
files:
|
64
|
-
- .gitignore
|
64
|
+
- ".gitignore"
|
65
65
|
- Gemfile
|
66
66
|
- LICENSE.txt
|
67
67
|
- README.md
|
@@ -70,6 +70,8 @@ files:
|
|
70
70
|
- lib/randomuser.rb
|
71
71
|
- lib/randomuser/version.rb
|
72
72
|
- randomuser.gemspec
|
73
|
+
- test/all_test.rb
|
74
|
+
- test/test_helper.rb
|
73
75
|
homepage: http://developr.me
|
74
76
|
licenses:
|
75
77
|
- MIT
|
@@ -80,18 +82,21 @@ require_paths:
|
|
80
82
|
- lib
|
81
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
82
84
|
requirements:
|
83
|
-
- -
|
85
|
+
- - ">="
|
84
86
|
- !ruby/object:Gem::Version
|
85
87
|
version: '0'
|
86
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
89
|
requirements:
|
88
|
-
- -
|
90
|
+
- - ">="
|
89
91
|
- !ruby/object:Gem::Version
|
90
92
|
version: '0'
|
91
93
|
requirements: []
|
92
94
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.0.
|
95
|
+
rubygems_version: 2.0.14
|
94
96
|
signing_key:
|
95
97
|
specification_version: 4
|
96
98
|
summary: Access Random User Generator API
|
97
|
-
test_files:
|
99
|
+
test_files:
|
100
|
+
- test/all_test.rb
|
101
|
+
- test/test_helper.rb
|
102
|
+
has_rdoc:
|