roadrunnr 0.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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +71 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/config.yml +7 -0
- data/lib/roadrunnr.rb +16 -0
- data/lib/roadrunnr/drop.rb +37 -0
- data/lib/roadrunnr/full_address.rb +80 -0
- data/lib/roadrunnr/order.rb +103 -0
- data/lib/roadrunnr/order_details.rb +52 -0
- data/lib/roadrunnr/order_item.rb +38 -0
- data/lib/roadrunnr/pickup.rb +37 -0
- data/lib/roadrunnr/request.rb +43 -0
- data/lib/roadrunnr/user.rb +44 -0
- data/lib/roadrunnr/version.rb +3 -0
- data/roadrunnr.gemspec +32 -0
- metadata +163 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d52863874f0624672eb0e642ae163cb671e0ff0
|
4
|
+
data.tar.gz: 359852ef74562ce53f7b0cde33947a2d14de9585
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 434599a45afa18b3360de219a35d69b1086330fff5ab0a8ed36a905042f766f7e8b86de41883784233490fe0ac8023ea841211d4f4d753c4fdf814e7fa84979e
|
7
|
+
data.tar.gz: ac4c7661b97a7e717546ab7b2d910d33e68c09798ccc845530604d13545573acf1dc2ebd728173de9af06cf98084ce62e6fc441cb4e19e28cefa23163aead052
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# Roadrunnr
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
Add this line to your application's Gemfile:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
gem 'roadrunnr'
|
9
|
+
```
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install roadrunnr
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
Obtain access_toek from http://128.199.241.199/oauth/token?grant_type=client_credentials&client_id=123&client_secret=secret for staging/testing environment and change host to http://roadrunnr.in/ for production ENV
|
21
|
+
|
22
|
+
**Creating roadrunnr request object**
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
request = Roadrunnr::Request.new(:client_id => '123',
|
27
|
+
:client_secret => 'secret',
|
28
|
+
:timeout => 60,
|
29
|
+
:access_token => 'token',
|
30
|
+
:url => 'http://128.199.241.199/')
|
31
|
+
|
32
|
+
Set the values according to ENV
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
**Build an order**
|
37
|
+
|
38
|
+
order = Roadrunnr::Order.new
|
39
|
+
order.add_pickup_details(:name => "Samsung store", :phone_no => "1234567890", :email => "samsung@gmail.com", :type => "merchant", :external_id => "BLR-NAT-123")
|
40
|
+
|
41
|
+
order.add_pickup_full_address(:address => "Shop no 51, 5th block", :locality => "Koramangala", :sub_locality => "5th :city => "Bangalore", :lat => "12.935322", :lng => "77.618754")
|
42
|
+
|
43
|
+
order.add_drop_details(:name => "Samsung store", :phone_no => "08056190907", :email => "samsung@gmail.com", :type => "merchant", :external_id => "BLR-NAT-123")
|
44
|
+
|
45
|
+
order.add_drop_full_address(:address => "Shop no 51, 5th block", :locality => "Koramangala", :sub_locality => "5th block", :city => "Bangalore", :lat => "12.935322", :lng => "77.618754")
|
46
|
+
|
47
|
+
order.add_order_details(:order_id => "last2091020", :order_value => "255.0", :amount_to_be_collected => "234.45", :order_type => "Cash On Delivery", :expected_delivery_time => Time.now)
|
48
|
+
|
49
|
+
|
50
|
+
**Get serviceability before creating order**
|
51
|
+
|
52
|
+
request.serviceability(order)
|
53
|
+
|
54
|
+
|
55
|
+
**Create an order**
|
56
|
+
|
57
|
+
request.create_order(order)
|
58
|
+
|
59
|
+
|
60
|
+
**Track order**
|
61
|
+
|
62
|
+
request.track_order(order_id)
|
63
|
+
|
64
|
+
**Cancel order**
|
65
|
+
|
66
|
+
request.cancel_order(order_id)
|
67
|
+
|
68
|
+
|
69
|
+
## Contributing
|
70
|
+
|
71
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/doormint/roadrunnr.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "roadrunnr"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/config.yml
ADDED
data/lib/roadrunnr.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'json'
|
3
|
+
require 'yaml'
|
4
|
+
require 'active_support/core_ext/object/blank'
|
5
|
+
require 'roadrunnr/order'
|
6
|
+
require 'roadrunnr/request'
|
7
|
+
require 'roadrunnr/pickup'
|
8
|
+
require 'roadrunnr/drop'
|
9
|
+
require 'roadrunnr/order_details'
|
10
|
+
require 'roadrunnr/user'
|
11
|
+
require 'roadrunnr/full_address'
|
12
|
+
require 'roadrunnr/order_item'
|
13
|
+
require "roadrunnr/version"
|
14
|
+
|
15
|
+
module Roadrunnr
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class Drop
|
3
|
+
attr_accessor :user
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@user = User.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def valid?
|
10
|
+
user.valid?
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_user_details(options = {})
|
14
|
+
name = options[:name]
|
15
|
+
phone_no = options[:phone_no]
|
16
|
+
email = options[:email]
|
17
|
+
type = options[:type]
|
18
|
+
external_id = options[:external_id]
|
19
|
+
@user.add_user_details(:name => name, :phone_no => phone_no, :email => email, :type => type, :external_id => external_id)
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_user_full_address(options = {})
|
23
|
+
address = options[:address]
|
24
|
+
locality = options[:locality]
|
25
|
+
sub_locality = options[:sub_locality]
|
26
|
+
city = options[:city]
|
27
|
+
lat = options[:lat]
|
28
|
+
lng = options[:lng]
|
29
|
+
@user.add_user_full_address(:address => address, :locality => locality, :sub_locality => sub_locality, :city => city, :lat => lat, :lng => lng)
|
30
|
+
end
|
31
|
+
|
32
|
+
def save
|
33
|
+
{ 'user'=> @user.save }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class FullAddress
|
3
|
+
attr_accessor :address, :locality, :sub_locality, :city, :geo
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@locality = Locality.new
|
7
|
+
@sub_locality = SubLocality.new
|
8
|
+
@city = City.new
|
9
|
+
@geo = Geo.new
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def valid?
|
14
|
+
address.present? && locality.valid? && sub_locality.valid? && city.valid? && geo.valid?
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_full_address(options = {})
|
18
|
+
@address = options[:address]
|
19
|
+
locality = options[:locality]
|
20
|
+
sub_locality = options[:sub_locality]
|
21
|
+
city = options[:city]
|
22
|
+
lat = options[:lat]
|
23
|
+
lng = options[:lng]
|
24
|
+
@locality.add_name(locality)
|
25
|
+
@sub_locality.add_name(sub_locality)
|
26
|
+
@city.add_name(city)
|
27
|
+
@geo.add_geo(lat, lng)
|
28
|
+
end
|
29
|
+
|
30
|
+
def save
|
31
|
+
{
|
32
|
+
'address'=> @address,
|
33
|
+
'locality'=> @locality.save,
|
34
|
+
'sub_locality'=> @sub_locality.save,
|
35
|
+
'city'=> @city.save,
|
36
|
+
'geo'=> @geo.save
|
37
|
+
}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Name
|
42
|
+
attr_accessor :name
|
43
|
+
|
44
|
+
def add_name(name)
|
45
|
+
@name = name
|
46
|
+
end
|
47
|
+
|
48
|
+
def valid?
|
49
|
+
name.present?
|
50
|
+
end
|
51
|
+
|
52
|
+
def save
|
53
|
+
{ 'name'=> @name }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class Locality < Name;end
|
58
|
+
|
59
|
+
class SubLocality < Name;end
|
60
|
+
|
61
|
+
class City < Name;end
|
62
|
+
|
63
|
+
class Geo
|
64
|
+
attr_accessor :latitude, :longitude
|
65
|
+
|
66
|
+
def add_geo(latitude, longitude)
|
67
|
+
@latitude = latitude
|
68
|
+
@longitude = longitude
|
69
|
+
end
|
70
|
+
|
71
|
+
def valid?
|
72
|
+
latitude.present? && longitude.present?
|
73
|
+
end
|
74
|
+
|
75
|
+
def save
|
76
|
+
{ 'latitude'=> @latitude, 'longitude'=> @longitude }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
|
3
|
+
class Order
|
4
|
+
attr_accessor :pickup, :drop, :order_details, :created_at, :callback_url
|
5
|
+
|
6
|
+
def initialize(options = {})
|
7
|
+
@pickup = options[:pickup] || Pickup.new
|
8
|
+
@drop = options[:drop] || Drop.new
|
9
|
+
@order_details = options[:order_details] || OrderDetails.new
|
10
|
+
@created_at = options[:created_at] || Time.now
|
11
|
+
@callback_url = options[:callback_url]
|
12
|
+
end
|
13
|
+
|
14
|
+
def valid?
|
15
|
+
pickup.valid? && drop.valid? && order_details.valid?
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_pickup_details(options = {})
|
19
|
+
name = options[:name]
|
20
|
+
phone_no = options[:phone_no]
|
21
|
+
email = options[:email]
|
22
|
+
type = options[:type]
|
23
|
+
external_id = options[:external_id]
|
24
|
+
add_details(@pickup, name, phone_no, email, type, external_id)
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_pickup_full_address(options = {})
|
28
|
+
address = options[:address]
|
29
|
+
locality = options[:locality]
|
30
|
+
sub_locality = options[:sub_locality]
|
31
|
+
city = options[:city]
|
32
|
+
lat = options[:lat]
|
33
|
+
lng = options[:lng]
|
34
|
+
add_full_address(@pickup, address, locality, sub_locality, city, lat, lng)
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_drop_details(options = {})
|
38
|
+
name = options[:name]
|
39
|
+
phone_no = options[:phone_no]
|
40
|
+
email = options[:email]
|
41
|
+
type = options[:type]
|
42
|
+
external_id = options[:external_id]
|
43
|
+
add_details(@drop, name, phone_no, email, type, external_id)
|
44
|
+
end
|
45
|
+
|
46
|
+
def add_drop_full_address(options = {})
|
47
|
+
address = options[:address]
|
48
|
+
locality = options[:locality]
|
49
|
+
sub_locality = options[:sub_locality]
|
50
|
+
city = options[:city]
|
51
|
+
lat = options[:lat]
|
52
|
+
lng = options[:lng]
|
53
|
+
add_full_address(@drop, address, locality, sub_locality, city, lat, lng)
|
54
|
+
end
|
55
|
+
|
56
|
+
def add_order_details(options = {})
|
57
|
+
order_id = options[:order_id]
|
58
|
+
order_value = options[:order_value]
|
59
|
+
amount_to_be_collected = options[:amount_to_be_collected]
|
60
|
+
order_type = options[:order_type]
|
61
|
+
expected_delivery_time = options[:expected_delivery_time]
|
62
|
+
@order_details.add_order(:order_id => order_id, :order_value => order_value, :amount_to_be_collected => amount_to_be_collected,
|
63
|
+
:order_type => order_type, :expected_delivery_time => expected_delivery_time)
|
64
|
+
end
|
65
|
+
|
66
|
+
def add_order_item(options = {})
|
67
|
+
quantity = options[:quantity]
|
68
|
+
price = options[:price]
|
69
|
+
item_name = options[:item_name]
|
70
|
+
@order_details.add_order_item(quantity, price, item_name)
|
71
|
+
end
|
72
|
+
|
73
|
+
def add_created_at(created_at)
|
74
|
+
@created_at = created_at
|
75
|
+
end
|
76
|
+
|
77
|
+
def add_callback_url(callback_url)
|
78
|
+
@callback_url = callback_url
|
79
|
+
end
|
80
|
+
|
81
|
+
def save
|
82
|
+
{
|
83
|
+
'pickup'=> @pickup.save,
|
84
|
+
'drop'=> @drop.save,
|
85
|
+
'order_details'=> @order_details.save,
|
86
|
+
'created_at' => @created_at,
|
87
|
+
'callback_url' => @callback_url
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def add_details(obj, name, phone_no, email, type, external_id)
|
94
|
+
obj.add_user_details(:name => name, :phone_no => phone_no, :email => email, :type => type, :external_id => external_id)
|
95
|
+
end
|
96
|
+
|
97
|
+
def add_full_address(obj, address, locality_name, sub_locality_name, city_name, geo_latitude=nil, geo_longitude=nil)
|
98
|
+
obj.add_user_full_address(:address => address, :locality => locality_name, :sub_locality => sub_locality_name, :city => city_name, :lat => geo_latitude, :lng => geo_longitude)
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class OrderDetails
|
3
|
+
attr_accessor :order_id, :order_value, :amount_to_be_collected, :order_type, :order_items, :expected_delivery_time
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@order_type = OrderType.new
|
7
|
+
@order_items = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_order(options = {})
|
11
|
+
@order_id = options[:order_id]
|
12
|
+
@order_value = options[:order_value]
|
13
|
+
@expected_delivery_time = options[:expected_delivery_time]
|
14
|
+
@amount_to_be_collected = options[:amount_to_be_collected]
|
15
|
+
|
16
|
+
@order_type.name = options[:order_type]
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_order_item(quantity, price, item_name)
|
20
|
+
|
21
|
+
@order_items << OrderItem.new(:quantity => quantity, :price => price, :item_name => item_name).save
|
22
|
+
end
|
23
|
+
|
24
|
+
def valid?
|
25
|
+
order_id.present? && order_value.present? && amount_to_be_collected.present? && order_type.valid?
|
26
|
+
end
|
27
|
+
|
28
|
+
def save
|
29
|
+
{
|
30
|
+
'order_id'=> @order_id,
|
31
|
+
'order_value'=> @order_value,
|
32
|
+
'expected_delivery_time' => @expected_delivery_time,
|
33
|
+
'amount_to_be_collected'=> @amount_to_be_collected,
|
34
|
+
'order_type'=> @order_type.save,
|
35
|
+
'order_items'=> @order_items
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class OrderType
|
41
|
+
attr_accessor :name
|
42
|
+
|
43
|
+
def valid?
|
44
|
+
name.present?
|
45
|
+
end
|
46
|
+
|
47
|
+
def save
|
48
|
+
return { 'name'=> @name }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
|
3
|
+
class OrderItem
|
4
|
+
attr_accessor :quantity, :price, :item
|
5
|
+
|
6
|
+
def initialize(options = {})
|
7
|
+
@quantity = options[:quantity]
|
8
|
+
@price = options[:price]
|
9
|
+
item_name = options[:item_name]
|
10
|
+
@item = create_item(item_name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def create_item(item_name)
|
14
|
+
Item.new(item_name)
|
15
|
+
end
|
16
|
+
|
17
|
+
def save
|
18
|
+
{
|
19
|
+
'quantity' => @quantity,
|
20
|
+
'price' => @price,
|
21
|
+
'item' => @item.save
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Item
|
27
|
+
attr_accessor :name
|
28
|
+
|
29
|
+
def initialize(name)
|
30
|
+
@name = name
|
31
|
+
end
|
32
|
+
|
33
|
+
def save
|
34
|
+
{ 'name' => @name }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class Pickup
|
3
|
+
attr_accessor :user
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@user = User.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_user_details(options = {})
|
10
|
+
name = options[:name]
|
11
|
+
phone_no = options[:phone_no]
|
12
|
+
email = options[:email]
|
13
|
+
type = options[:type]
|
14
|
+
external_id = options[:external_id]
|
15
|
+
@user.add_user_details(:name => name, :phone_no => phone_no, :email => email, :type => type, :external_id => external_id)
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_user_full_address(options = {})
|
19
|
+
address = options[:address]
|
20
|
+
locality = options[:locality]
|
21
|
+
sub_locality = options[:sub_locality]
|
22
|
+
city = options[:city]
|
23
|
+
lat = options[:lat]
|
24
|
+
lng = options[:lng]
|
25
|
+
@user.add_user_full_address(:address => address, :locality => locality, :sub_locality => sub_locality, :city => city, :lat => lat, :lng => lng)
|
26
|
+
end
|
27
|
+
|
28
|
+
def valid?
|
29
|
+
user.valid?
|
30
|
+
end
|
31
|
+
|
32
|
+
def save
|
33
|
+
{ 'user'=> @user.save }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class Request
|
3
|
+
attr_accessor :client_id, :client_secret, :timeout, :access_token, :url
|
4
|
+
|
5
|
+
DEFAULT_TIMEOUT = 30
|
6
|
+
|
7
|
+
def initialize(client_id: nil, client_secret: nil, timeout: nil, access_token: nil, url: nil)
|
8
|
+
@client_id = client_id || self.class.client_id
|
9
|
+
@client_secret = client_secret || self.class.client_secret
|
10
|
+
@timeout = timeout || self.class.timeout || DEFAULT_TIMEOUT
|
11
|
+
@access_token = access_token || self.class.access_token
|
12
|
+
@url = url || self.class.url
|
13
|
+
end
|
14
|
+
|
15
|
+
def create_order(order_object)
|
16
|
+
HTTParty.post(url + "v1/orders", :body => order_object.save.to_json, :headers => {'Content-Type' => 'application/json', "Authorization" => "Token #{self.access_token}"})
|
17
|
+
end
|
18
|
+
|
19
|
+
def cancel_order(order_id)
|
20
|
+
HTTParty.get(url + "v1/orders/#{order_id}/cancel", :headers => {'Content-Type' => 'application/json', "Authorization" => "Token #{self.access_token}"})
|
21
|
+
end
|
22
|
+
|
23
|
+
def track_order(order_id)
|
24
|
+
HTTParty.get(url + "v1/orders/#{order_id}/track", :headers => {'Content-Type' => 'application/json', "Authorization" => "Token #{self.access_token}"})
|
25
|
+
end
|
26
|
+
|
27
|
+
def serviceability(order_object)
|
28
|
+
HTTParty.post(url + 'v1/orders/serviceability', body: order_object.save.to_json, :headers => {'Content-Type' => 'application/json', "Authorization" => "Token #{self.access_token}"})
|
29
|
+
end
|
30
|
+
|
31
|
+
def valid_checksum?(options = {})
|
32
|
+
checksum = options[:checksum]
|
33
|
+
order_id = options[:order_id]
|
34
|
+
checksum == Digest::MD5.hexdigest(order_id + self.access_token)
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
class << self
|
40
|
+
attr_accessor :client_id, :client_secret, :timeout, :access_token, :url
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Roadrunnr
|
2
|
+
class User
|
3
|
+
attr_accessor :name, :phone_no, :type, :external_id, :email, :full_address
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@full_address = FullAddress.new
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
def add_user_details(options = {})
|
11
|
+
@name = options[:name]
|
12
|
+
@phone_no = options[:phone_no]
|
13
|
+
@email = options[:email]
|
14
|
+
@type = options[:type]
|
15
|
+
@external_id = options[:external_id]
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_user_full_address(options = {})
|
19
|
+
address = options[:address]
|
20
|
+
locality = options[:locality]
|
21
|
+
sub_locality = options[:sub_locality]
|
22
|
+
city = options[:city]
|
23
|
+
lat = options[:lat]
|
24
|
+
lng = options[:lng]
|
25
|
+
@full_address.add_full_address(:address => address, :locality => locality, :sub_locality => sub_locality, :city => city, :lat => lat, :lng => lng)
|
26
|
+
end
|
27
|
+
|
28
|
+
def valid?
|
29
|
+
name.present? && phone_no.present? && type.present? && external_id.present? && email.present? && full_address.valid?
|
30
|
+
end
|
31
|
+
|
32
|
+
def save
|
33
|
+
{
|
34
|
+
'name'=> @name,
|
35
|
+
'phone_no'=> @phone_no,
|
36
|
+
'type'=> @type,
|
37
|
+
'external_id'=> @external_id,
|
38
|
+
'email' => @email,
|
39
|
+
'full_address'=> @full_address.save
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/roadrunnr.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'roadrunnr/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "roadrunnr"
|
8
|
+
spec.version = Roadrunnr::VERSION
|
9
|
+
spec.authors = ["kapy2010", "mntdamania"]
|
10
|
+
spec.email = ["kpsingh201091@gmail.com", "mntdamania@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = "Wrapper for RoadRunnr API"
|
13
|
+
spec.description = "RoadRunnr API Wrapper"
|
14
|
+
spec.homepage = %q{https://github.com/doormint/roadrunnr}
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
17
|
+
# delete this section to allow pushing this gem to any host.
|
18
|
+
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
spec.add_development_dependency "pry"
|
28
|
+
|
29
|
+
spec.add_dependency 'httparty', '>= 0.9.0'
|
30
|
+
spec.add_dependency 'json'
|
31
|
+
spec.add_dependency 'activesupport'
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: roadrunnr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kapy2010
|
8
|
+
- mntdamania
|
9
|
+
autorequire:
|
10
|
+
bindir: exe
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-10-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.10'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.10'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10.0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '10.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rspec
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: pry
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: httparty
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.9.0
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.9.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: json
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: activesupport
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
description: RoadRunnr API Wrapper
|
113
|
+
email:
|
114
|
+
- kpsingh201091@gmail.com
|
115
|
+
- mntdamania@gmail.com
|
116
|
+
executables: []
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
122
|
+
- ".travis.yml"
|
123
|
+
- Gemfile
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- bin/console
|
127
|
+
- bin/setup
|
128
|
+
- config.yml
|
129
|
+
- lib/roadrunnr.rb
|
130
|
+
- lib/roadrunnr/drop.rb
|
131
|
+
- lib/roadrunnr/full_address.rb
|
132
|
+
- lib/roadrunnr/order.rb
|
133
|
+
- lib/roadrunnr/order_details.rb
|
134
|
+
- lib/roadrunnr/order_item.rb
|
135
|
+
- lib/roadrunnr/pickup.rb
|
136
|
+
- lib/roadrunnr/request.rb
|
137
|
+
- lib/roadrunnr/user.rb
|
138
|
+
- lib/roadrunnr/version.rb
|
139
|
+
- roadrunnr.gemspec
|
140
|
+
homepage: https://github.com/doormint/roadrunnr
|
141
|
+
licenses: []
|
142
|
+
metadata: {}
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
requirements: []
|
158
|
+
rubyforge_project:
|
159
|
+
rubygems_version: 2.4.5.1
|
160
|
+
signing_key:
|
161
|
+
specification_version: 4
|
162
|
+
summary: Wrapper for RoadRunnr API
|
163
|
+
test_files: []
|