neonmob 0.0.0.pre

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6ff1789a50f95cfafaed0c366cc23582cc397664
4
+ data.tar.gz: 872e942bee098a11dc197641a1fd17c4e32747f7
5
+ SHA512:
6
+ metadata.gz: 62dbafcf5fd9343e81c7e7941ac93cc0986bed6d471f389a5ee41ea267fa27dd94b03fca83b1e88eb3625162ccc49ca031480598b60dc9609708e8dde4a60ebc
7
+ data.tar.gz: c6a18ae8c53020b70de5b511bd0453a7ba22a964a5d2ce83162a1c48d132647342f43a4c72b28b5be0384968bb359d5f2ecc1d479bdca46ccbf936c5bf99d02b
@@ -0,0 +1 @@
1
+ v0.0.0.pre Initial version
@@ -0,0 +1,8 @@
1
+ CHANGELOG
2
+ Manifest
3
+ Rakefile
4
+ lib/neon_mob.rb
5
+ lib/neonmob.rb
6
+ neonmob.gemspec
7
+ test/helper.rb
8
+ test/test_neon_mob.rb
@@ -0,0 +1,12 @@
1
+ require 'echoe'
2
+
3
+ Echoe.new('neonmob') do |gem|
4
+ gem.author = 'Sasha Gerrand'
5
+ gem.summary = 'API client for NeonMob.com'
6
+ gem.email = 'rubygems-neonmob@sgerrand.com'
7
+ gem.url = 'https://github.com/sgerrand/neonmob.rb'
8
+ gem.licenses = ['MIT']
9
+ gem.development_dependencies = ['minitest ~>0']
10
+ gem.runtime_dependencies = ['http ~>0']
11
+ gem.ignore_pattern = []
12
+ end
@@ -0,0 +1,38 @@
1
+ require 'http'
2
+ require 'uri'
3
+
4
+ class NeonMob
5
+ URL = URI('https://www.neonmob.com')
6
+
7
+ def initialize(username, password)
8
+ @password = password
9
+ @username = username
10
+ end
11
+
12
+ def login
13
+ @login = post('/api/signin/', login_params).parse
14
+ end
15
+
16
+ private
17
+
18
+ def logged_in?
19
+ @login['code'].nil?
20
+ end
21
+
22
+ def login_params
23
+ {
24
+ :password => @password,
25
+ :username => @username,
26
+ }
27
+ end
28
+
29
+ def post(path, params = {})
30
+ HTTP[:accept => "application/json"].post(build_url(path), :json => params)
31
+ end
32
+
33
+ def build_url(path)
34
+ URL.tap do |uri|
35
+ uri.path = path
36
+ end.to_s
37
+ end
38
+ end
@@ -0,0 +1 @@
1
+ require 'neon_mob'
@@ -0,0 +1,38 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # stub: neonmob 0.0.0.pre ruby lib
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "neonmob"
6
+ s.version = "0.0.0.pre"
7
+
8
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
9
+ s.require_paths = ["lib"]
10
+ s.authors = ["Sasha Gerrand"]
11
+ s.date = "2017-05-14"
12
+ s.description = "API client for NeonMob.com"
13
+ s.email = "rubygems-neonmob@sgerrand.com"
14
+ s.extra_rdoc_files = ["CHANGELOG", "lib/neon_mob.rb", "lib/neonmob.rb"]
15
+ s.files = ["CHANGELOG", "Manifest", "Rakefile", "lib/neon_mob.rb", "lib/neonmob.rb", "neonmob.gemspec", "test/helper.rb", "test/test_neon_mob.rb"]
16
+ s.homepage = "https://github.com/sgerrand/neonmob.rb"
17
+ s.licenses = ["MIT"]
18
+ s.rdoc_options = ["--line-numbers", "--title", "Neonmob"]
19
+ s.rubyforge_project = "neonmob"
20
+ s.rubygems_version = "2.4.5"
21
+ s.summary = "API client for NeonMob.com"
22
+ s.test_files = ["test/test_neon_mob.rb"]
23
+
24
+ if s.respond_to? :specification_version then
25
+ s.specification_version = 4
26
+
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
+ s.add_runtime_dependency(%q<http>, ["~> 0"])
29
+ s.add_development_dependency(%q<minitest>, ["~> 0"])
30
+ else
31
+ s.add_dependency(%q<http>, ["~> 0"])
32
+ s.add_dependency(%q<minitest>, ["~> 0"])
33
+ end
34
+ else
35
+ s.add_dependency(%q<http>, ["~> 0"])
36
+ s.add_dependency(%q<minitest>, ["~> 0"])
37
+ end
38
+ end
@@ -0,0 +1 @@
1
+ require 'minitest/autorun'
@@ -0,0 +1,45 @@
1
+ require 'helper'
2
+ require 'neon_mob'
3
+
4
+ class TestNeonMob < Minitest::Test
5
+ def setup
6
+ @adapter = Minitest::Mock.new
7
+ @response = Minitest::Mock.new
8
+ @subject = NeonMob.new('some_user', 'some_password')
9
+ @adapter.expect :post, @response, ['https://www.neonmob.com/api/signin/',
10
+ {
11
+ :json => {
12
+ :username => 'some_user',
13
+ :password => 'some_password',
14
+ }
15
+ }]
16
+ end
17
+
18
+ def test_initialize_with_params
19
+ assert NeonMob.new('user', 'password')
20
+ end
21
+
22
+ def test_initialize_raises_error_without_params
23
+ assert_raises(ArgumentError) { NeonMob.new }
24
+ end
25
+
26
+ def test_login_succeeds
27
+ payload = {'redirect' => '/'}
28
+ @response.expect :parse, payload
29
+ HTTP.stub :[], @adapter do
30
+ assert_equal(payload, @subject.login)
31
+ end
32
+ @adapter.verify
33
+ @response.verify
34
+ end
35
+
36
+ def test_login_fails
37
+ payload = {'code'=>'INVALID_LOGIN', 'field_errors'=>{}, 'detail'=>'Invalid login details, partner.'}
38
+ @response.expect :parse, payload
39
+ HTTP.stub :[], @adapter do
40
+ assert_equal(payload, @subject.login)
41
+ end
42
+ @adapter.verify
43
+ @response.verify
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: neonmob
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0.pre
5
+ platform: ruby
6
+ authors:
7
+ - Sasha Gerrand
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: http
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
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: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: API client for NeonMob.com
42
+ email: rubygems-neonmob@sgerrand.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files:
46
+ - CHANGELOG
47
+ - lib/neon_mob.rb
48
+ - lib/neonmob.rb
49
+ files:
50
+ - CHANGELOG
51
+ - Manifest
52
+ - Rakefile
53
+ - lib/neon_mob.rb
54
+ - lib/neonmob.rb
55
+ - neonmob.gemspec
56
+ - test/helper.rb
57
+ - test/test_neon_mob.rb
58
+ homepage: https://github.com/sgerrand/neonmob.rb
59
+ licenses:
60
+ - MIT
61
+ metadata: {}
62
+ post_install_message:
63
+ rdoc_options:
64
+ - "--line-numbers"
65
+ - "--title"
66
+ - Neonmob
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '1.2'
79
+ requirements: []
80
+ rubyforge_project: neonmob
81
+ rubygems_version: 2.4.5
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: API client for NeonMob.com
85
+ test_files:
86
+ - test/test_neon_mob.rb