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 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
@@ -0,0 +1,17 @@
1
+ *.rbc
2
+ .bundle
3
+ .config
4
+ .yardoc
5
+ Gemfile.lock
6
+ InstalledFiles
7
+ _yardoc
8
+ coverage
9
+ doc/
10
+ lib/bundler/man
11
+ pkg
12
+ rdoc
13
+ spec/reports
14
+ test/tmp
15
+ test/version_tmp
16
+ tmp
17
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in randomuser.gemspec
4
+ gemspec
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,3 @@
1
+ module RandomuserRu
2
+ VERSION = '0.1.1'
3
+ end
@@ -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
@@ -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: