sk_sdk 0.3.0 → 0.4.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/Gemfile +1 -1
- data/ci/Gemfile_ar3 +11 -0
- data/ci/Gemfile_ar3.lock +50 -0
- data/lib/sk_sdk/ar_patches/ar4/base.rb +34 -0
- data/lib/sk_sdk/ar_patches/ar4/validations.rb +12 -0
- data/lib/sk_sdk/base.rb +34 -5
- data/lib/sk_sdk/oauth.rb +5 -6
- data/lib/sk_sdk/version.rb +1 -1
- data/sk_sdk.gemspec +1 -0
- data/spec/sk_sdk/resources/contacts_spec.rb +2 -1
- data/spec/sk_sdk/resources/invoice_spec.rb +16 -2
- data/spec/sk_sdk/resources/payment_spec.rb +3 -3
- metadata +31 -50
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d8b37450434521a67d849f242b2687bfe6cee7fe
|
4
|
+
data.tar.gz: 9bdfed1b7b55e8e14ecdeae80caca207c4abe024
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fd0877e811c40bb79a7cf561b4feb9c4ded9c895f4514fae8a373b32742bcc7e68829560829105e5c497aec2bf6cd2f436d4e3a1162621d286198e93a5a4c51a
|
7
|
+
data.tar.gz: 66efcacd645a14db318fd921d6aa589493ae8443c531d30681b55ba90d5b7ee5340cb99522578750fe05cfbef6107635ffaff23fd951c56a41be94f94e63b98e
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/ci/Gemfile_ar3
ADDED
data/ci/Gemfile_ar3.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activemodel (3.2.0)
|
5
|
+
activesupport (= 3.2.0)
|
6
|
+
builder (~> 3.0.0)
|
7
|
+
activeresource (3.2.0)
|
8
|
+
activemodel (= 3.2.0)
|
9
|
+
activesupport (= 3.2.0)
|
10
|
+
activesupport (3.2.0)
|
11
|
+
i18n (~> 0.6)
|
12
|
+
multi_json (~> 1.0)
|
13
|
+
builder (3.0.4)
|
14
|
+
curb (0.8.5)
|
15
|
+
diff-lcs (1.2.5)
|
16
|
+
docile (1.1.3)
|
17
|
+
i18n (0.6.9)
|
18
|
+
json (1.8.1)
|
19
|
+
multi_json (1.8.4)
|
20
|
+
rake (10.1.1)
|
21
|
+
rdoc (4.1.1)
|
22
|
+
json (~> 1.4)
|
23
|
+
rspec (2.14.1)
|
24
|
+
rspec-core (~> 2.14.0)
|
25
|
+
rspec-expectations (~> 2.14.0)
|
26
|
+
rspec-mocks (~> 2.14.0)
|
27
|
+
rspec-core (2.14.7)
|
28
|
+
rspec-expectations (2.14.5)
|
29
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
30
|
+
rspec-mocks (2.14.5)
|
31
|
+
simplecov (0.8.2)
|
32
|
+
docile (~> 1.1.0)
|
33
|
+
multi_json
|
34
|
+
simplecov-html (~> 0.8.0)
|
35
|
+
simplecov-html (0.8.0)
|
36
|
+
sk_api_schema (0.9.4)
|
37
|
+
activesupport
|
38
|
+
|
39
|
+
PLATFORMS
|
40
|
+
ruby
|
41
|
+
|
42
|
+
DEPENDENCIES
|
43
|
+
activeresource (= 3.2)
|
44
|
+
activesupport (= 3.2)
|
45
|
+
curb
|
46
|
+
rake
|
47
|
+
rdoc
|
48
|
+
rspec
|
49
|
+
simplecov
|
50
|
+
sk_api_schema
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module ActiveResource
|
2
|
+
# Overridden methods to suit SalesKing's nested json format
|
3
|
+
# only valid for AR 4+
|
4
|
+
# In the future might add a custom format class, see base.format
|
5
|
+
class Base
|
6
|
+
|
7
|
+
# override ARes method to parse only the client part
|
8
|
+
def load_attributes_from_response(response)
|
9
|
+
if (response['Transfer-Encoding'] == 'chunked' || (!response['Content-Length'].blank? && response['Content-Length'] != "0")) && !response.body.nil? && response.body.strip.size > 0
|
10
|
+
load( self.class.format.decode(response.body)[self.class.element_name] )
|
11
|
+
#fix double nested items .. active resource SUCKS soooo bad
|
12
|
+
if self.respond_to?(:items)
|
13
|
+
new_items = []
|
14
|
+
self.items.each { |item| new_items << item.attributes.first[1] }
|
15
|
+
self.items = new_items
|
16
|
+
end
|
17
|
+
@persisted = true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
private
|
21
|
+
# Overridden to grab the data(= clients-collection) from json:
|
22
|
+
# { 'collection'=> will_paginate infos,
|
23
|
+
# 'links' => prev/next links
|
24
|
+
# 'clients'=> [data], << what we need
|
25
|
+
# }
|
26
|
+
def self.instantiate_collection(collection, original_params = {}, prefix_options = {})
|
27
|
+
elements_name = self.element_name.pluralize if collection.is_a?(Hash)
|
28
|
+
collection_parser.new(collection, elements_name).tap do |parser|
|
29
|
+
parser.resource_class = self
|
30
|
+
parser.original_params = original_params
|
31
|
+
end.collect! { |record| instantiate_record(record, prefix_options) }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'active_resource/validations'
|
2
|
+
class ActiveResource::Errors < ActiveModel::Errors
|
3
|
+
# Patched cause we dont need no attribute name magic .. and its just simpler
|
4
|
+
# orig version is looking up the humanized name of the attribute in the error
|
5
|
+
# message, which we dont supply => only field name is used in returned error msg
|
6
|
+
def from_array(messages, save_cache=false)
|
7
|
+
clear unless save_cache
|
8
|
+
messages.each do |msg|
|
9
|
+
add msg[0], msg[1]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/sk_sdk/base.rb
CHANGED
@@ -3,19 +3,24 @@ require 'sk_sdk'
|
|
3
3
|
require 'active_resource'
|
4
4
|
require 'active_resource/version'
|
5
5
|
# patches are for specific AR version
|
6
|
-
|
7
|
-
|
8
|
-
require 'sk_sdk/ar_patches/ar3/validations'
|
9
|
-
elsif ActiveResource::VERSION::MAJOR < 3
|
6
|
+
case ActiveResource::VERSION::MAJOR
|
7
|
+
when 2
|
10
8
|
require 'sk_sdk/ar_patches/ar2/validations'
|
11
9
|
require 'sk_sdk/ar_patches/ar2/base'
|
10
|
+
when 3
|
11
|
+
require 'sk_sdk/ar_patches/ar3/base'
|
12
|
+
require 'sk_sdk/ar_patches/ar3/validations'
|
13
|
+
when 4
|
14
|
+
require 'sk_sdk/ar_patches/ar4/validations'
|
15
|
+
require 'sk_sdk/ar_patches/ar4/base'
|
12
16
|
end
|
13
17
|
|
14
18
|
class SK::SDK::Base < ActiveResource::Base
|
15
19
|
self.format = :json
|
16
20
|
# hook before init in activeresource base because json comes in nested:
|
17
21
|
# {client={data}
|
18
|
-
if ActiveResource::VERSION::MAJOR == 3 && ActiveResource::VERSION::MINOR > 0
|
22
|
+
if (ActiveResource::VERSION::MAJOR == 3 && ActiveResource::VERSION::MINOR > 0) || ActiveResource::VERSION::MAJOR > 3
|
23
|
+
self.include_root_in_json = true
|
19
24
|
def initialize(attributes = {}, *args)
|
20
25
|
attr = attributes[self.class.element_name] || attributes
|
21
26
|
super(attr, *args)
|
@@ -66,4 +71,28 @@ class SK::SDK::Base < ActiveResource::Base
|
|
66
71
|
site = site.gsub(/\/$/, '')
|
67
72
|
site =~ /\/api$/ ? site : "#{site}/api"
|
68
73
|
end
|
74
|
+
|
75
|
+
# Unfortunately only using AR v4+ we can create additional accessors
|
76
|
+
# to get info on collection info and links
|
77
|
+
if ActiveResource::VERSION::MAJOR == 4
|
78
|
+
class SkCollection < ActiveResource::Collection
|
79
|
+
attr_accessor :current_page, :per_page, :total_entries, :total_pages
|
80
|
+
|
81
|
+
attr_accessor :next_url, :self_url, :prev_url
|
82
|
+
|
83
|
+
def initialize(parsed = {}, element_name = nil)
|
84
|
+
@elements = element_name.present? ? parsed[element_name] : parsed
|
85
|
+
|
86
|
+
%w(current_page per_page total_entries total_pages).each do |collection_info|
|
87
|
+
instance_variable_set(:"@#{collection_info}", parsed['collection'][collection_info])
|
88
|
+
end
|
89
|
+
|
90
|
+
%w(next self prev).each do |link_info|
|
91
|
+
instance_variable_set(:"@#{link_info}_url", parsed['links'][link_info])
|
92
|
+
end
|
93
|
+
@next_page = parsed['next_page']
|
94
|
+
end
|
95
|
+
end
|
96
|
+
self.collection_parser = SkCollection
|
97
|
+
end
|
69
98
|
end
|
data/lib/sk_sdk/oauth.rb
CHANGED
@@ -16,7 +16,7 @@ module SK::SDK
|
|
16
16
|
# your app
|
17
17
|
# @option [String] id oAuth app id from SalesKing app registration
|
18
18
|
# @option [String] secret oAuth app secret from SalesKing app registration
|
19
|
-
# @option [String]
|
19
|
+
# @option [String|Array[String]] permission scopes for your app requests
|
20
20
|
# @option [String] redirect_url inside your app for auth dialog
|
21
21
|
# @option [String] sk_url SalesKing base url, * is replaced with users subdomain,
|
22
22
|
# no trailing slash, optional defaults to https://*.salesking.eu
|
@@ -34,9 +34,10 @@ module SK::SDK
|
|
34
34
|
|
35
35
|
# @return [String] URL with parameter to show the auth dialog to the user
|
36
36
|
def auth_dialog
|
37
|
+
scope_string = Array === @scope ? @scope.join(' ') : @scope
|
37
38
|
params = { :client_id => @id,
|
38
39
|
:redirect_uri=> @redirect_url,
|
39
|
-
:scope =>
|
40
|
+
:scope => scope_string }
|
40
41
|
"#{sk_url}/oauth/authorize?#{to_url_params(params)}"
|
41
42
|
end
|
42
43
|
|
@@ -88,10 +89,8 @@ module SK::SDK
|
|
88
89
|
end
|
89
90
|
|
90
91
|
def to_url_params(params_hash)
|
91
|
-
|
92
|
-
params_hash.each { |k,v| out << "#{CGI::escape k.to_s}=#{CGI::escape v.to_s}" }
|
93
|
-
out.join('&')
|
92
|
+
params_hash.map { |k,v| "#{CGI::escape k.to_s}=#{CGI::escape v.to_s}" }.join('&')
|
94
93
|
end
|
95
94
|
|
96
95
|
end
|
97
|
-
end
|
96
|
+
end
|
data/lib/sk_sdk/version.rb
CHANGED
data/sk_sdk.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = %q{Connect your business with SalesKing. This gem gives ruby developers a jump-start for building SalesKing Business Apps. It provides classes to handle oAuth, make RESTfull API requests and parses JSON Schema }
|
14
14
|
s.extra_rdoc_files = ['README.rdoc']
|
15
15
|
s.rubygems_version = %q{1.6.2}
|
16
|
+
s.license = 'MIT'
|
16
17
|
|
17
18
|
s.files = `git ls-files`.split("\n")
|
18
19
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -170,16 +170,30 @@ describe Invoice do
|
|
170
170
|
end
|
171
171
|
|
172
172
|
describe 'with items of different type' do
|
173
|
-
before :
|
173
|
+
before :each do
|
174
174
|
@contact = Contact.new(:type=>'Client', :organisation=>'Credit Note API-Tester')
|
175
175
|
@contact.save.should be_true
|
176
176
|
@doc = Invoice.new(:contact_id => @contact.id)
|
177
177
|
end
|
178
178
|
|
179
|
-
after :
|
179
|
+
after :each do
|
180
180
|
delete_test_data(@doc, @contact)
|
181
181
|
end
|
182
182
|
|
183
|
+
it 'should create items with price of 0' do
|
184
|
+
# :quantity => 1, is default
|
185
|
+
@doc.items = [
|
186
|
+
{ :position=>1, :name => 'Pork Chops', :price_single =>'0.00', :type=>'LineItem' },
|
187
|
+
{ :position=>2, :name => 'Pork Chops', :price_single =>'0,0', :type=>'LineItem' },
|
188
|
+
{ :position=>3, :name => 'Pork Chops', :price_single =>'0', :type=>'LineItem' },
|
189
|
+
{ :position=>4, :name => 'Pork Chops', :price_single =>0, :type=>'LineItem' },
|
190
|
+
{ :position=>5, :name => 'Pork Chops', :price_single =>0.0, :type=>'LineItem' },
|
191
|
+
]
|
192
|
+
@doc.save.should be_true
|
193
|
+
@doc.items.length.should == 5
|
194
|
+
@doc.gross_total.should == 0.0
|
195
|
+
end
|
196
|
+
|
183
197
|
it 'should create items from array' do
|
184
198
|
@doc.items = [
|
185
199
|
{ :position=>1, :name => 'Pork Chops', :quantity => 12, :price_single =>'10.00', :type=>'LineItem' },
|
@@ -30,7 +30,7 @@ describe Payment do
|
|
30
30
|
# damn i hate active_resource
|
31
31
|
@doc.post(:payments, {}, p.encode)
|
32
32
|
payments_json = @doc.get(:payments)
|
33
|
-
payments = Payment.instantiate_collection
|
33
|
+
payments = Payment.send(:instantiate_collection, payments_json)
|
34
34
|
|
35
35
|
payments.first.amount.should == 10
|
36
36
|
end
|
@@ -43,7 +43,7 @@ describe Payment do
|
|
43
43
|
|
44
44
|
# damn i hate active_resource
|
45
45
|
@doc.post(:payments, {}, p.encode)
|
46
|
-
payments = Payment.instantiate_collection
|
46
|
+
payments = Payment.send(:instantiate_collection, @doc.get(:payments))
|
47
47
|
payment = payments.detect{|p| p.amount == 11 }
|
48
48
|
payment.external_ref.should == 'from sdk-test'
|
49
49
|
payment.date.should == Date.today.strftime("%Y-%m-%d")
|
@@ -69,7 +69,7 @@ describe Payment do
|
|
69
69
|
p = Payment.new :amount => 12.34, :related_object_id=>@doc.id
|
70
70
|
p.save.should be_true
|
71
71
|
|
72
|
-
payments = Payment.instantiate_collection
|
72
|
+
payments = Payment.send( :instantiate_collection, @doc.get(:payments))
|
73
73
|
payments.map(&:amount).should include 12.34
|
74
74
|
end
|
75
75
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sk_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Georg Leciejewski
|
@@ -15,132 +14,116 @@ dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: curb
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - ">="
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: activesupport
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - ">="
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '0'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ">="
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '0'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: activeresource
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - ">="
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - ">="
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: sk_api_schema
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - ">="
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0'
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - ">="
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: rake
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ">="
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - ">="
|
93
82
|
- !ruby/object:Gem::Version
|
94
83
|
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: simplecov
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
|
-
- -
|
88
|
+
- - ">="
|
101
89
|
- !ruby/object:Gem::Version
|
102
90
|
version: '0'
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
|
-
- -
|
95
|
+
- - ">="
|
109
96
|
- !ruby/object:Gem::Version
|
110
97
|
version: '0'
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rspec
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - ">="
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - ">="
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: rdoc
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
|
-
- -
|
116
|
+
- - ">="
|
133
117
|
- !ruby/object:Gem::Version
|
134
118
|
version: '0'
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
|
-
- -
|
123
|
+
- - ">="
|
141
124
|
- !ruby/object:Gem::Version
|
142
125
|
version: '0'
|
143
|
-
description:
|
126
|
+
description: 'Connect your business with SalesKing. This gem gives ruby developers
|
144
127
|
a jump-start for building SalesKing Business Apps. It provides classes to handle
|
145
128
|
oAuth, make RESTfull API requests and parses JSON Schema '
|
146
129
|
email:
|
@@ -150,20 +133,24 @@ extensions: []
|
|
150
133
|
extra_rdoc_files:
|
151
134
|
- README.rdoc
|
152
135
|
files:
|
153
|
-
- .gitignore
|
154
|
-
- .travis.yml
|
136
|
+
- ".gitignore"
|
137
|
+
- ".travis.yml"
|
155
138
|
- Gemfile
|
156
139
|
- MIT-LICENSE
|
157
140
|
- README.rdoc
|
158
141
|
- Rakefile
|
159
142
|
- ci/Gemfile_ar2
|
160
143
|
- ci/Gemfile_ar2.lock
|
144
|
+
- ci/Gemfile_ar3
|
145
|
+
- ci/Gemfile_ar3.lock
|
161
146
|
- lib/sk_sdk.rb
|
162
147
|
- lib/sk_sdk/README.rdoc
|
163
148
|
- lib/sk_sdk/ar_patches/ar2/base.rb
|
164
149
|
- lib/sk_sdk/ar_patches/ar2/validations.rb
|
165
150
|
- lib/sk_sdk/ar_patches/ar3/base.rb
|
166
151
|
- lib/sk_sdk/ar_patches/ar3/validations.rb
|
152
|
+
- lib/sk_sdk/ar_patches/ar4/base.rb
|
153
|
+
- lib/sk_sdk/ar_patches/ar4/validations.rb
|
167
154
|
- lib/sk_sdk/base.rb
|
168
155
|
- lib/sk_sdk/oauth.rb
|
169
156
|
- lib/sk_sdk/omni_auth/README.rdoc
|
@@ -187,33 +174,27 @@ files:
|
|
187
174
|
- spec/sk_sdk/sync_spec.rb
|
188
175
|
- spec/spec_helper.rb
|
189
176
|
homepage: http://github.com/salesking/sk_sdk
|
190
|
-
licenses:
|
177
|
+
licenses:
|
178
|
+
- MIT
|
179
|
+
metadata: {}
|
191
180
|
post_install_message:
|
192
181
|
rdoc_options: []
|
193
182
|
require_paths:
|
194
183
|
- lib
|
195
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
196
|
-
none: false
|
197
185
|
requirements:
|
198
|
-
- -
|
186
|
+
- - ">="
|
199
187
|
- !ruby/object:Gem::Version
|
200
188
|
version: '0'
|
201
|
-
segments:
|
202
|
-
- 0
|
203
|
-
hash: 892546568127510729
|
204
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
|
-
none: false
|
206
190
|
requirements:
|
207
|
-
- -
|
191
|
+
- - ">="
|
208
192
|
- !ruby/object:Gem::Version
|
209
193
|
version: '0'
|
210
|
-
segments:
|
211
|
-
- 0
|
212
|
-
hash: 892546568127510729
|
213
194
|
requirements: []
|
214
195
|
rubyforge_project:
|
215
|
-
rubygems_version:
|
196
|
+
rubygems_version: 2.2.2
|
216
197
|
signing_key:
|
217
|
-
specification_version:
|
198
|
+
specification_version: 4
|
218
199
|
summary: SalesKing Ruby SDK - simplify your Business
|
219
200
|
test_files: []
|