randomuser-ru 0.1.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/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +82 -0
- data/Rakefile +17 -0
- data/lib/randomuser-ru/version.rb +3 -0
- data/lib/randomuser-ru.rb +36 -0
- data/randomuser-ru.gemspec +29 -0
- data/test/all_test.rb +52 -0
- data/test/test_helper.rb +60 -0
- metadata +100 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: b229e9b7c3ad8635ed8289b371f2f79803f69787
|
|
4
|
+
data.tar.gz: 3fb1922e21c660f47b8afeb352853a4a546a42a0
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: b77f53b0874e7cdd734a182353ad05aa490e30d7d41b1f314b35dcb98964d4ffe89678a6f9b75b03332cdbf9b4e0a1e67b26e1270b88a26a99adfbd7635f20e4
|
|
7
|
+
data.tar.gz: f073b0de005ecd5ffefff9c7642381215a9da8f76c0b4a1fca3739505ed4e93f501020cb51c5b8f9928bd19ac97b9ae90ba91d3f515288a5db52d55cb2dd882d
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2015 Denis Kuznetsov
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Randomuser
|
|
2
|
+
|
|
3
|
+
This gem returns simple JSON/hash responses from the [Random User Generator](http://RandomuserRu.me) API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'randomuser-ru'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
And then execute:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$ bundle
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or install it as a standalone gem with:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
$ gem install randomuser-ru
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
To request a single random user:
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
RandomuserRu.generate
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
To request multiple random users:
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
RandomuserRu.generate(5)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
To request a single female random user:
|
|
40
|
+
|
|
41
|
+
```ruby
|
|
42
|
+
RandomuserRu.generate_female
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
To request multiple female random users:
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
RandomuserRu.generate_female(5)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
To request a single male random user:
|
|
52
|
+
|
|
53
|
+
```ruby
|
|
54
|
+
RandomuserRu.generate_male
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
To request multiple male random users:
|
|
58
|
+
|
|
59
|
+
```ruby
|
|
60
|
+
RandomuserRu.generate_male(5)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
For more information on this API, please see the [Random Russian User Generator](http://Randomuser.ru) site.
|
|
64
|
+
|
|
65
|
+
## Tests
|
|
66
|
+
|
|
67
|
+
Testing works as usual:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
git clone https://github.com/byteg/randomuser-ru.git
|
|
71
|
+
cd randomuser-ru
|
|
72
|
+
bundle install
|
|
73
|
+
rake
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Contributing
|
|
77
|
+
|
|
78
|
+
1. Fork it
|
|
79
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
80
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
81
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
82
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
require 'rake/testtask'
|
|
3
|
+
|
|
4
|
+
desc 'Generate gem documentation'
|
|
5
|
+
task :doc do
|
|
6
|
+
system 'rm -rf doc/'
|
|
7
|
+
system 'rdoc --exclude=/test/'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
namespace :minitest do
|
|
11
|
+
Rake::TestTask.new(:all) do |t|
|
|
12
|
+
t.libs << 'test'
|
|
13
|
+
t.test_files = FileList['test/*_test.rb']
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
task :default => 'minitest:all'
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'net/http'
|
|
2
|
+
require 'uri'
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'randomuser-ru/version'
|
|
5
|
+
|
|
6
|
+
module RandomuserRu
|
|
7
|
+
|
|
8
|
+
def self.generate(number=1)
|
|
9
|
+
request("results=#{number}")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.generate_female(number=1)
|
|
13
|
+
request("results=#{number}&gender=female")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.generate_male(number=1)
|
|
17
|
+
request("results=#{number}&gender=male")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def self.api_url(query='')
|
|
23
|
+
"http://randomuser.ru/api.json?#{query}"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.request(query='')
|
|
27
|
+
uri = URI.parse(self.api_url(query))
|
|
28
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
29
|
+
|
|
30
|
+
http.start do |connection|
|
|
31
|
+
response = connection.send_request('GET', uri.request_uri)
|
|
32
|
+
response = JSON.parse(response.body, symbolize_names: true)
|
|
33
|
+
response[:results]
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
|
|
5
|
+
require 'randomuser-ru/version'
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |gem|
|
|
8
|
+
|
|
9
|
+
#-- author info
|
|
10
|
+
gem.authors = ['Denis Kuznetsov']
|
|
11
|
+
gem.email = ['denis@f7.ru']
|
|
12
|
+
gem.homepage = 'http://randomuser.ru'
|
|
13
|
+
|
|
14
|
+
#-- gem info
|
|
15
|
+
gem.name = 'randomuser-ru'
|
|
16
|
+
gem.version = RandomuserRu::VERSION
|
|
17
|
+
gem.license = 'MIT'
|
|
18
|
+
gem.summary = %q{Access Russian Random User Generator API}
|
|
19
|
+
gem.description = %q{This gem returns simple JSON/hash responses from the Russian Random User Generator API.}
|
|
20
|
+
|
|
21
|
+
gem.files = `git ls-files`.split($/)
|
|
22
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
23
|
+
gem.require_paths = ['lib']
|
|
24
|
+
|
|
25
|
+
#-- development dependencies
|
|
26
|
+
gem.add_development_dependency 'minitest'
|
|
27
|
+
gem.add_development_dependency 'bundler', '~> 1.3'
|
|
28
|
+
gem.add_development_dependency 'rake'
|
|
29
|
+
end
|
data/test/all_test.rb
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
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 = RandomuserRu.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 = RandomuserRu.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 = RandomuserRu.generate_female
|
|
22
|
+
assert_equal(response.class, Array)
|
|
23
|
+
assert_equal(response.length, 1)
|
|
24
|
+
assert_equal(response.first[:user][:gender], 'женский')
|
|
25
|
+
assert_equal(response.first[:user][:picture][:large], "http://randomuser.ru/images/women/1.jpg")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_generate_female_returns_multiple_responses
|
|
29
|
+
response = RandomuserRu.generate_female(5)
|
|
30
|
+
assert_equal(response.class, Array)
|
|
31
|
+
assert_equal(response.length, 5)
|
|
32
|
+
assert_equal(response.first[:user][:gender], 'женский')
|
|
33
|
+
assert_equal(response.first[:user][:picture][:large], "http://randomuser.ru/images/women/1.jpg")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_generate_male_returns_single_response
|
|
37
|
+
response = RandomuserRu.generate_male
|
|
38
|
+
assert_equal(response.class, Array)
|
|
39
|
+
assert_equal(response.length, 1)
|
|
40
|
+
assert_equal(response.first[:user][:gender], 'мужской')
|
|
41
|
+
assert_equal(response.first[:user][:picture][:large], "http://randomuser.ru/images/men/1.jpg")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_generate_male_returns_multiple_responses
|
|
45
|
+
response = RandomuserRu.generate_male(5)
|
|
46
|
+
assert_equal(response.class, Array)
|
|
47
|
+
assert_equal(response.length, 5)
|
|
48
|
+
assert_equal(response.first[:user][:gender], 'мужской')
|
|
49
|
+
assert_equal(response.first[:user][:picture][:large], "http://randomuser.ru/images/men/1.jpg")
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# use minitest gem, not the one from stdlib
|
|
3
|
+
gem 'minitest'
|
|
4
|
+
|
|
5
|
+
require 'minitest/autorun'
|
|
6
|
+
require 'randomuser-ru'
|
|
7
|
+
|
|
8
|
+
# override the generate methods so they return mock responses during testing
|
|
9
|
+
module RandomuserRu
|
|
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
|
+
end
|
|
23
|
+
|
|
24
|
+
def mock_response(gender='female')
|
|
25
|
+
{
|
|
26
|
+
user: {
|
|
27
|
+
gender: "#{gender == 'female' ? 'женский' : 'мужской'}",
|
|
28
|
+
name: {
|
|
29
|
+
first: "Алексей",
|
|
30
|
+
last: "Навальный",
|
|
31
|
+
middle: "Анатольевич"
|
|
32
|
+
},
|
|
33
|
+
location: {
|
|
34
|
+
street: "Ленина",
|
|
35
|
+
city: "Москва",
|
|
36
|
+
state: "Московская область",
|
|
37
|
+
zip: "121000"
|
|
38
|
+
},
|
|
39
|
+
email: "first.last@example.com",
|
|
40
|
+
username: "navalny",
|
|
41
|
+
password: "password",
|
|
42
|
+
salt: "L",
|
|
43
|
+
md5: "003b0f6e9b1b40200ba0370a5f29208e",
|
|
44
|
+
sha1: "87b7b6b2a06238c0bb7174f03f74ae86211afc7d",
|
|
45
|
+
sha256: "49995e8aadf97fa0cca079be5bbf47b5fa0c5ffb0dd81831ee9b382c9772b46b",
|
|
46
|
+
registered: "1134630377",
|
|
47
|
+
dob: "326899532",
|
|
48
|
+
phone: "8 495 123 45 67",
|
|
49
|
+
cell: "7 926 123 45 67",
|
|
50
|
+
SSN: "525-20-3862",
|
|
51
|
+
picture: {
|
|
52
|
+
large: "http://randomuser.ru/images/#{gender == 'female' ? 'women' : 'men'}/1.jpg",
|
|
53
|
+
thumb: "http://randomuser.ru/images/#{gender == 'female' ? 'women' : 'men'}/med/1.jpg",
|
|
54
|
+
medium: "http://randomuser.ru/images/#{gender == 'female' ? 'women' : 'men'}/thubm/1.jpg"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
seed: "navalny",
|
|
58
|
+
version: RandomuserRu::VERSION
|
|
59
|
+
}
|
|
60
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: randomuser-ru
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Denis Kuznetsov
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2015-02-10 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: minitest
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: bundler
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.3'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.3'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
description: This gem returns simple JSON/hash responses from the Russian Random User
|
|
56
|
+
Generator API.
|
|
57
|
+
email:
|
|
58
|
+
- denis@f7.ru
|
|
59
|
+
executables: []
|
|
60
|
+
extensions: []
|
|
61
|
+
extra_rdoc_files: []
|
|
62
|
+
files:
|
|
63
|
+
- ".gitignore"
|
|
64
|
+
- Gemfile
|
|
65
|
+
- LICENSE.txt
|
|
66
|
+
- README.md
|
|
67
|
+
- Rakefile
|
|
68
|
+
- lib/randomuser-ru.rb
|
|
69
|
+
- lib/randomuser-ru/version.rb
|
|
70
|
+
- randomuser-ru.gemspec
|
|
71
|
+
- test/all_test.rb
|
|
72
|
+
- test/test_helper.rb
|
|
73
|
+
homepage: http://randomuser.ru
|
|
74
|
+
licenses:
|
|
75
|
+
- MIT
|
|
76
|
+
metadata: {}
|
|
77
|
+
post_install_message:
|
|
78
|
+
rdoc_options: []
|
|
79
|
+
require_paths:
|
|
80
|
+
- lib
|
|
81
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - ">="
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - ">="
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '0'
|
|
91
|
+
requirements: []
|
|
92
|
+
rubyforge_project:
|
|
93
|
+
rubygems_version: 2.4.5
|
|
94
|
+
signing_key:
|
|
95
|
+
specification_version: 4
|
|
96
|
+
summary: Access Russian Random User Generator API
|
|
97
|
+
test_files:
|
|
98
|
+
- test/all_test.rb
|
|
99
|
+
- test/test_helper.rb
|
|
100
|
+
has_rdoc:
|