gc-restful-api 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e57a6fc96b3ae1f71f3be3f8e82b43861e73b82f
4
+ data.tar.gz: 56c5b4d61a62bf650cfb38dccc66958098707f1d
5
+ SHA512:
6
+ metadata.gz: ce538681d63503fe9c225d696eb670809eebfd2736da8a6d2d37305422260baad5babe436ba783c7cb734321f1331007362ecc72e2bdf22802ee750c06984a20
7
+ data.tar.gz: f2e68419eece3f8b8b17780536cf06a4104e45fa014b56bcd283ad9fefc78cef242db9b8db9a125519c3c85e98596bcf623b06d48673c6bb3dae209f442f871d
@@ -0,0 +1,5 @@
1
+ *.lock
2
+ *.gem
3
+ cookies
4
+ storage
5
+ pkg
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in gc-restful-api.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Ran
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.
@@ -0,0 +1,40 @@
1
+ # Gc::Restful::Api
2
+
3
+ A Rack middleware of RESTful API for Git-Contacts.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'gc-restful-api'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install gc-restful-api
20
+
21
+ ## Usage
22
+
23
+ ```ruby
24
+ require "erb"
25
+ require 'sinatra'
26
+ require "sinatra/config_file"
27
+ require "gc-restful-api"
28
+
29
+ register Sinatra::ConfigFile
30
+
31
+ # load configration
32
+ config_file "config.yml"
33
+
34
+ get '/' do
35
+ content_type 'text/html'
36
+ erb :index
37
+ end
38
+
39
+ use App
40
+ ```
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -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
+ require 'api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "gc-restful-api"
8
+ spec.version = Api::VERSION
9
+ spec.authors = ["Ran"]
10
+ spec.email = ["abbshr@outlook.com"]
11
+ spec.summary = %q{Git-Contacts Restful API}
12
+ spec.description = %q{Git-Contacts Restful API}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "gitcontacts", "~> 0.1.4"
22
+ spec.add_runtime_dependency "sinatra", "~> 1.4.5"
23
+ spec.add_runtime_dependency "thin", "~> 1.6.3"
24
+ spec.add_runtime_dependency "sinatra-contrib", "~> 1.4.2"
25
+ spec.add_runtime_dependency "moneta", "~> 0.8.0"
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.7"
28
+ spec.add_development_dependency "rake", "~> 10.0"
29
+ end
@@ -0,0 +1,115 @@
1
+ class App
2
+ # code review: @abbshr
3
+ # 获取cards
4
+ # => /contacts/id/cards?keyword=ninja_2000
5
+ get '/contacts/:contacts_id/cards' do
6
+ if uid = session[:uid]
7
+ @return_message[:cards] = GitContacts::get_contacts_cards_by_related(uid, params[:contacts_id], params[:keyword] || '')
8
+ case GitContacts::errsym
9
+ when :ok
10
+ @return_message[:success] = 1
11
+ when :forbidden
12
+ @return_message[:errmsg] = 'Access Forbidden'
13
+ status 403
14
+ end
15
+ else
16
+ @return_message[:errmsg] = "Token invalid."
17
+ status 401
18
+ end
19
+ @return_message.to_json
20
+ end
21
+
22
+ # code review: @abbshr
23
+ get '/contacts/:contacts_id/card/:card_id' do
24
+ if uid = session[:uid]
25
+ @return_message[:card] = GitContacts::get_contacts_card(uid, params[:contacts_id], params[:card_id])
26
+ case GitContacts::errsym
27
+ when :ok
28
+ @return_message[:success] = 1
29
+ when :forbidden
30
+ @return_message[:errmsg] = 'Access Forbidden'
31
+ status 403
32
+ when :non_exist
33
+ @return_message[:errmsg] = 'Card Not Found'
34
+ status 404
35
+ end
36
+ else
37
+ @return_message[:errmsg] = "Token invalid."
38
+ status 401
39
+ end
40
+ @return_message.to_json
41
+ end
42
+
43
+ # code review: @abbshr
44
+ post '/contacts/:contacts_id/card' do
45
+ if uid = session[:uid]
46
+ ret = GitContacts::add_contacts_card(uid, params[:contacts_id], @body[:payload])
47
+ case GitContacts::errsym
48
+ when :ok
49
+ @return_message[:success] = 1
50
+ @return_message[:card_id] = ret
51
+ when :pend
52
+ @return_message[:pending] = 1
53
+ @return_message[:qid] = ret
54
+ status 202
55
+ when :forbidden
56
+ @return_message[:errmsg] = 'Access Forbidden'
57
+ status 403
58
+ end
59
+ else
60
+ @return_message[:errmsg] = "Token invalid."
61
+ status 401
62
+ end
63
+ @return_message.to_json
64
+ end
65
+
66
+ # code review: @abbshr
67
+ patch '/contacts/:contacts_id/card/:card_id' do
68
+ if uid = session[:uid]
69
+ ret = GitContacts::edit_contacts_card(uid, params[:contacts_id], params[:card_id], @body[:payload])
70
+ case GitContacts::errsym
71
+ when :ok
72
+ @return_message[:success] = 1
73
+ when :pend
74
+ @return_message[:pending] = 1
75
+ @return_message[:qid] = ret
76
+ status 202
77
+ when :forbidden
78
+ @return_message[:errmsg] = 'Access Forbidden'
79
+ status 403
80
+ when :non_exist
81
+ @return_message[:errmsg] = 'Card Not Found'
82
+ status 404
83
+ end
84
+ else
85
+ @return_message[:errmsg] = "Token invalid."
86
+ status 401
87
+ end
88
+ @return_message.to_json
89
+ end
90
+
91
+ # code review: @abbshr
92
+ delete '/contacts/:contacts_id/card/:card_id' do
93
+ if uid = session[:uid]
94
+ ret = GitContacts::delete_contacts_card(uid, params[:contacts_id], params[:card_id])
95
+ case GitContacts::errsym
96
+ when :ok
97
+ @return_message[:success] = 1
98
+ when :pend
99
+ @return_message[:pending] = 1
100
+ @return_message[:qid] = ret
101
+ status 202
102
+ when :forbidden
103
+ @return_message[:errmsg] = 'Access Forbidden'
104
+ status 403
105
+ when :non_exist
106
+ @return_message[:errmsg] = 'Card Not Found'
107
+ status 404
108
+ end
109
+ else
110
+ @return_message[:errmsg] = "Token invalid"
111
+ status 401
112
+ end
113
+ @return_message.to_json
114
+ end
115
+ end
@@ -0,0 +1,119 @@
1
+ class App
2
+ # code review: @abbshr
3
+ # => /contacts?count=20&filter=gt&name=family
4
+ get '/contacts' do
5
+ if uid = session[:uid]
6
+ params[:name] ||= ''
7
+ params[:count] = params[:count].to_i || 0
8
+ @return_message[:contacts] = GitContacts::get_contacts_if uid do |contacts|
9
+ case params[:filter]
10
+ when 'eq'
11
+ cond = contacts[:count] == params[:count]
12
+ when 'gt'
13
+ cond = contacts[:count] >= params[:count]
14
+ when 'lt'
15
+ cond = contacts[:count] <= params[:count]
16
+ else
17
+ cond = true
18
+ end
19
+ cond && contacts[:name].include?(params[:name])
20
+ end
21
+ @return_message[:success] = 1 if GitContacts::errsym == :ok
22
+ else
23
+ @return_message[:errmsg] = "Token invalid."
24
+ status 401
25
+ end
26
+ @return_message.to_json
27
+ end
28
+
29
+ # code review: @abbshr
30
+ post '/contacts' do
31
+ if uid = session[:uid]
32
+ @return_message[:contacts_id] = GitContacts::add_contacts(uid, @body[:contacts_name])
33
+ case GitContacts::errsym
34
+ when :ok
35
+ @return_message[:success] = 1
36
+ when :miss_args
37
+ @return_message[:errmsg] = 'Contacts Name is Required'
38
+ status 400
39
+ end
40
+ else
41
+ @return_message[:errmsg] = "Token invalid."
42
+ status 401
43
+ end
44
+ @return_message.to_json
45
+ end
46
+
47
+ get '/contacts/:contacts_id' do
48
+ if uid = session[:uid]
49
+ @return_message[:contact] = GitContacts::get_contacts_if uid do |contact|
50
+ contact[:gid] == params[:contacts_id]
51
+ end.first
52
+ @return_message[:success] = 1 if GitContacts::errsym == :ok
53
+ else
54
+ @return_message[:errmsg] = 'Token invalid'
55
+ status 401
56
+ end
57
+ @return_message.to_json
58
+ end
59
+
60
+ # code review: @abbshr
61
+ patch '/contacts/:contacts_id' do
62
+ if uid = session[:uid]
63
+ GitContacts::edit_contacts_meta(uid, params[:contacts_id], @body[:metadata])
64
+ case GitContacts::errsym
65
+ when :ok
66
+ @return_message[:success] = 1
67
+ when :miss_args
68
+ @return_message[:errmsg] = 'Metadata is Required'
69
+ status 400
70
+ when :forbidden
71
+ @return_message[:errmsg] = "Access Forbidden"
72
+ status 403
73
+ end
74
+ else
75
+ @return_message[:errmsg] = "Token invalid."
76
+ status 401
77
+ end
78
+ @return_message.to_json
79
+ end
80
+
81
+ # code review: @abbshr
82
+ get '/contacts/:contacts_id/history' do
83
+ if uid = session[:uid]
84
+ @return_message[:history] = GitContacts::get_contacts_history(uid, params[:contacts_id])
85
+ case GitContacts::errsym
86
+ when :ok
87
+ @return_message[:success] = 1
88
+ when :forbidden
89
+ @return_message[:errmsg] = 'Access Forbidden'
90
+ status 403
91
+ end
92
+ else
93
+ @return_message[:errmsg] = "Token invalid."
94
+ status 401
95
+ end
96
+ @return_message.to_json
97
+ end
98
+
99
+ # code review: @abbshr
100
+ post '/contacts/:contacts_id/revert' do
101
+ if uid = session[:uid]
102
+ @return_message[:oid] = GitContacts::revert_to(uid, params[:contacts_id], @body[:oid])
103
+ case GitContacts::errsym
104
+ when :ok
105
+ @return_message[:success] = 1
106
+ when :forbidden
107
+ @return_message[:errmsg] = 'Access Forbidden'
108
+ status 403
109
+ when :non_exist
110
+ @return_message[:errmsg] = 'Commit Not Found'
111
+ status 404
112
+ end
113
+ else
114
+ @return_message[:errmsg] = "Token invalid."
115
+ status 401
116
+ end
117
+ @return_message.to_json
118
+ end
119
+ end
@@ -0,0 +1,51 @@
1
+ class App
2
+ # code review: @AustinChou
3
+ get '/contacts/:contacts_id/requests' do
4
+ if uid = session[:uid]
5
+ @return_message[:requests] = GitContacts::get_all_requests params[:contacts_id]
6
+ @return_message[:success] = 1 if GitContacts::errsym == :ok
7
+ else
8
+ @return_message[:errmsg] = "Token invalid."
9
+ status 401
10
+ end
11
+ @return_message.to_json
12
+ end
13
+
14
+ get '/contacts/:contacts_id/request/:request_id' do
15
+ if uid = session[:uid]
16
+ @return_message[:request] = GitContacts::get_a_request params[:contacts_id], params[:request_id]
17
+ case GitContacts::errsym
18
+ when :ok
19
+ @return_message[:success] = 1
20
+ when :non_exist
21
+ @return_message[:errmsg] = 'Request Not Found'
22
+ status 404
23
+ end
24
+ else
25
+ @return_message[:errmsg] = "Token invalid"
26
+ status 401
27
+ end
28
+ @return_message.to_json
29
+ end
30
+
31
+ # code review: @AustinChou
32
+ patch '/contacts/:contacts_id/request/:request_id/status' do
33
+ if uid = session[:uid]
34
+ GitContacts::edit_request_status(uid, params[:contacts_id], params[:request_id], @body[:action])
35
+ case GitContacts::errsym
36
+ when :ok
37
+ @return_message[:success] = 1
38
+ when :forbidden
39
+ @return_message[:errmsg] = 'Access Forbidden'
40
+ status 403
41
+ when :non_exist
42
+ @return_message[:errmsg] = 'Request Not Found'
43
+ status 404
44
+ end
45
+ else
46
+ @return_message[:errmsg] = "Token invalid."
47
+ status 401
48
+ end
49
+ @return_message.to_json
50
+ end
51
+ end
@@ -0,0 +1,174 @@
1
+ class App
2
+ # code review: @abbshr
3
+ post '/login' do
4
+ unless session[:uid]
5
+ if GitContacts::password_valid?(@body[:email], @body[:password])
6
+ # mark email as uid
7
+ session[:uid] = @body[:email]
8
+ @return_message[:success] = 1
9
+ else
10
+ status 401
11
+ @return_message[:errmsg] = "Email and password combination incorrect."
12
+ end
13
+ else
14
+ status 403
15
+ @return_message[:errmsg] = 'has been login'
16
+ end
17
+ @return_message.to_json
18
+ end
19
+
20
+ post '/register' do
21
+ unless session[:uid]
22
+ GitContacts::create_user(@body)
23
+ case GitContacts::errsym
24
+ when :ok
25
+ @return_message[:success] = 1
26
+ session[:uid] = @body[:email]
27
+ when :miss_args
28
+ @return_message[:errmsg] = 'Missing Email or Password'
29
+ status 400
30
+ when :exist
31
+ @return_message[:errmsg] = 'Email has been Taken'
32
+ status 409
33
+ end
34
+ else
35
+ @return_message[:errmsg] = "has been login"
36
+ status 403
37
+ end
38
+ @return_message.to_json
39
+ end
40
+
41
+ # code review: @abbshr
42
+ get '/logout' do
43
+ if session[:uid]
44
+ @return_message[:success] = 1
45
+ session.clear
46
+ else
47
+ @return_message[:errmsg] = "Not login."
48
+ status 403
49
+ end
50
+ @return_message.to_json
51
+ end
52
+
53
+ get '/users' do
54
+ if uid = session[:uid]
55
+ @return_message[:users] = GitContacts::get_users uid
56
+ @return_message[:success] = 1 if GitContacts::errsym == :ok
57
+ else
58
+ @return_message[:errmsg] = "Token invalid"
59
+ status 401
60
+ end
61
+ @return_message.to_json
62
+ end
63
+
64
+ get '/user/:user_id' do
65
+ if uid = session[:uid]
66
+ @return_message[:user] = GitContacts::get_a_user uid, params[:user_id]
67
+ case GitContacts::errsym
68
+ when :ok
69
+ @return_message[:success] = 1
70
+ when :non_exist
71
+ @return_message[:errmsg] = "User Not Found"
72
+ status 404
73
+ end
74
+ else
75
+ @return_message[:errmsg] = "Token invalid"
76
+ status 401
77
+ end
78
+ @return_message.to_json
79
+ end
80
+
81
+ # code review: @abbshr
82
+ get '/contacts/:contacts_id/users' do
83
+ if uid = session[:uid]
84
+ @return_message[:users] = GitContacts::get_contacts_users uid, params[:contacts_id]
85
+ case GitContacts::errsym
86
+ when :ok
87
+ @return_message[:success] = 1
88
+ when :forbidden
89
+ @return_message[:errmsg] = 'Access Forbidden'
90
+ status 403
91
+ end
92
+ else
93
+ @return_message[:errmsg] = "Token invalid."
94
+ status 401
95
+ end
96
+ @return_message.to_json
97
+ end
98
+
99
+ post '/contacts/:contacts_id/user' do
100
+ if uid = session[:uid]
101
+ GitContacts::add_contacts_user uid, params[:contacts_id], @body[:uid]
102
+ case GitContacts::errsym
103
+ when :ok
104
+ @return_message[:success] = 1
105
+ when :non_exist
106
+ @return_message[:errmsg] = 'User Not Found'
107
+ status 404
108
+ when :forbidden
109
+ @return_message[:errmsg] = 'Access Forbidden'
110
+ status 403
111
+ end
112
+ else
113
+ @return_message[:errmsg] = 'Token invalid'
114
+ status 401
115
+ end
116
+ @return_message.to_json
117
+ end
118
+
119
+ get '/contacts/:contacts_id/user/:user_id/privilege' do
120
+ if uid = session[:uid]
121
+ @return_message[:privilege] = GitContacts::get_contacts_user_privileges(uid, params[:contacts_id], params[:user_id])
122
+ case GitContacts::errsym
123
+ when :ok
124
+ @return_message[:success] = 1
125
+ when :forbidden
126
+ @return_message[:errmsg] = 'Access Forbidden'
127
+ status 403
128
+ end
129
+ else
130
+ status 401
131
+ @return_message[:errmsg] = "Token invaild"
132
+ end
133
+ @return_message.to_json
134
+ end
135
+
136
+ # code review: @AustinChou
137
+ delete '/contacts/:contacts_id/user/:user_id' do
138
+ if uid = session[:uid]
139
+ GitContacts::remove_contacts_user(uid, params[:contacts_id], params[:user_id])
140
+ case GitContacts::errsym
141
+ when :ok
142
+ @return_message[:success] = 1
143
+ when :forbidden
144
+ @return_message[:errmsg] = 'Access Forbidden'
145
+ status 403
146
+ end
147
+ else
148
+ @return_message[:errmsg] = "Token invalid."
149
+ status 401
150
+ end
151
+ @return_message.to_json
152
+ end
153
+
154
+ # code review: @AustinChou
155
+ patch '/contacts/:contacts_id/user/:user_id/privilege' do
156
+ if uid = session[:uid]
157
+ GitContacts::edit_contacts_user_privileges(uid, params[:contacts_id], params[:user_id], @body[:role])
158
+ case GitContacts::errsym
159
+ when :ok
160
+ @return_message[:success] = 1
161
+ when :bad_args
162
+ @return_message[:errmsg] = 'Invalid role'
163
+ status 400
164
+ when :forbidden
165
+ @return_message[:errmsg] = 'Access Forbidden'
166
+ status 403
167
+ end
168
+ else
169
+ @return_message[:errmsg] = "Token invalid."
170
+ status 401
171
+ end
172
+ @return_message.to_json
173
+ end
174
+ end
@@ -0,0 +1,3 @@
1
+ module Api
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,37 @@
1
+ require 'sinatra'
2
+ require 'sinatra/base'
3
+ require "sinatra/cookies"
4
+ require "sinatra/config_file"
5
+ require "rack/session/moneta"
6
+ require 'json'
7
+ require 'gitcontacts'
8
+
9
+ class Hash
10
+ def to_json
11
+ JSON.generate self
12
+ end
13
+ end
14
+
15
+ # session control
16
+ use Rack::Session::Moneta, store: Moneta.new(:Redis, expires: 60 * 60 * 24 * 7)
17
+
18
+ class App < Sinatra::Base
19
+ # before each request
20
+ before do
21
+ # TODO: a pretty way to get request json
22
+ begin
23
+ @body = JSON.parse request.body.read, { symbolize_names: true }
24
+ rescue => e
25
+ puts "Error: [ #{e} ]"
26
+ end
27
+ content_type 'application/json'
28
+ status 200
29
+ @return_message = {}
30
+ end
31
+
32
+ # routes
33
+ require 'api/routes/contacts'
34
+ require 'api/routes/card'
35
+ require 'api/routes/user'
36
+ require 'api/routes/request'
37
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gc-restful-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ran
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gitcontacts
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: sinatra
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.5
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.4.5
41
+ - !ruby/object:Gem::Dependency
42
+ name: thin
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.6.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: sinatra-contrib
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.4.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: moneta
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.8.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.7'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '10.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '10.0'
111
+ description: Git-Contacts Restful API
112
+ email:
113
+ - abbshr@outlook.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - Gemfile
120
+ - LICENSE.txt
121
+ - README.md
122
+ - Rakefile
123
+ - gc-restful-api.gemspec
124
+ - lib/api/routes/card.rb
125
+ - lib/api/routes/contacts.rb
126
+ - lib/api/routes/request.rb
127
+ - lib/api/routes/user.rb
128
+ - lib/api/version.rb
129
+ - lib/gc-restful-api.rb
130
+ homepage: ''
131
+ licenses:
132
+ - MIT
133
+ metadata: {}
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ requirements: []
149
+ rubyforge_project:
150
+ rubygems_version: 2.2.2
151
+ signing_key:
152
+ specification_version: 4
153
+ summary: Git-Contacts Restful API
154
+ test_files: []