shopapp 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +160 -0
- data/README.md +3 -0
- data/app/assets/javascripts/shopapp.js +4 -0
- data/app/assets/stylesheets/shopapp.scss +44 -0
- data/app/controllers/api_controller.rb +5 -0
- data/app/controllers/auth_controller.rb +23 -0
- data/app/controllers/concerns/shoplift_client.rb +139 -0
- data/app/controllers/user_authenticated_controller.rb +5 -0
- data/app/views/layouts/_header_menu.html.haml +0 -0
- data/app/views/shopapp/_shopapp.html.haml +32 -0
- data/config/initializers/active_settings.rb +25 -0
- data/lib/shopapp.rb +9 -0
- data/lib/shopapp/engine.rb +3 -0
- data/lib/shopapp/routes.rb +6 -0
- data/shopapp.gemspec +30 -0
- metadata +192 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8494b4dc6eddb32452ea7ee2068b9e0744e3a444
|
4
|
+
data.tar.gz: cc1e011c3ac085435b099420e81c4d4baf3e382e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1c7b1e7bed35f570e4687ffe15107b9b523d5177402736b97915d3702224be1f5df4795a00ada59a7f6d8ff0dfd8e51b276202edfc97863c1d523a3478ff3a45
|
7
|
+
data.tar.gz: ab8220fce2b3c0692fa4d336895b93990bedbbaf5881f738ad2173fb99ab8269facd2d4d3f568d6d111ef67e882b834a9ed0f69c0de00f9bde44e5ddef5d8ca9
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
shopapp (0.0.1)
|
5
|
+
bootstrap (~> 4.0.0.beta)
|
6
|
+
bootstrap-will_paginate
|
7
|
+
font-awesome-rails
|
8
|
+
haml-rails
|
9
|
+
jquery-rails
|
10
|
+
oauth2
|
11
|
+
pry-rails
|
12
|
+
railties (~> 5.1, >= 3.1)
|
13
|
+
rest-client
|
14
|
+
|
15
|
+
GEM
|
16
|
+
remote: https://rubygems.org/
|
17
|
+
specs:
|
18
|
+
actionpack (5.1.4)
|
19
|
+
actionview (= 5.1.4)
|
20
|
+
activesupport (= 5.1.4)
|
21
|
+
rack (~> 2.0)
|
22
|
+
rack-test (>= 0.6.3)
|
23
|
+
rails-dom-testing (~> 2.0)
|
24
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
25
|
+
actionview (5.1.4)
|
26
|
+
activesupport (= 5.1.4)
|
27
|
+
builder (~> 3.1)
|
28
|
+
erubi (~> 1.4)
|
29
|
+
rails-dom-testing (~> 2.0)
|
30
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
31
|
+
activesupport (5.1.4)
|
32
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
33
|
+
i18n (~> 0.7)
|
34
|
+
minitest (~> 5.1)
|
35
|
+
tzinfo (~> 1.1)
|
36
|
+
autoprefixer-rails (7.1.5)
|
37
|
+
execjs
|
38
|
+
bootstrap (4.0.0.beta)
|
39
|
+
autoprefixer-rails (>= 6.0.3)
|
40
|
+
popper_js (~> 1.11.1)
|
41
|
+
sass (>= 3.4.19)
|
42
|
+
bootstrap-will_paginate (1.0.0)
|
43
|
+
will_paginate
|
44
|
+
builder (3.2.3)
|
45
|
+
coderay (1.1.2)
|
46
|
+
concurrent-ruby (1.0.5)
|
47
|
+
crass (1.0.2)
|
48
|
+
domain_name (0.5.20170404)
|
49
|
+
unf (>= 0.0.5, < 1.0.0)
|
50
|
+
erubi (1.7.0)
|
51
|
+
erubis (2.7.0)
|
52
|
+
execjs (2.7.0)
|
53
|
+
faraday (0.12.2)
|
54
|
+
multipart-post (>= 1.2, < 3)
|
55
|
+
ffi (1.9.18)
|
56
|
+
ffi (1.9.18-x64-mingw32)
|
57
|
+
font-awesome-rails (4.7.0.2)
|
58
|
+
railties (>= 3.2, < 5.2)
|
59
|
+
haml (5.0.4)
|
60
|
+
temple (>= 0.8.0)
|
61
|
+
tilt
|
62
|
+
haml-rails (1.0.0)
|
63
|
+
actionpack (>= 4.0.1)
|
64
|
+
activesupport (>= 4.0.1)
|
65
|
+
haml (>= 4.0.6, < 6.0)
|
66
|
+
html2haml (>= 1.0.1)
|
67
|
+
railties (>= 4.0.1)
|
68
|
+
html2haml (2.2.0)
|
69
|
+
erubis (~> 2.7.0)
|
70
|
+
haml (>= 4.0, < 6)
|
71
|
+
nokogiri (>= 1.6.0)
|
72
|
+
ruby_parser (~> 3.5)
|
73
|
+
http-cookie (1.0.3)
|
74
|
+
domain_name (~> 0.5)
|
75
|
+
i18n (0.9.0)
|
76
|
+
concurrent-ruby (~> 1.0)
|
77
|
+
jquery-rails (4.3.1)
|
78
|
+
rails-dom-testing (>= 1, < 3)
|
79
|
+
railties (>= 4.2.0)
|
80
|
+
thor (>= 0.14, < 2.0)
|
81
|
+
jwt (1.5.6)
|
82
|
+
loofah (2.1.1)
|
83
|
+
crass (~> 1.0.2)
|
84
|
+
nokogiri (>= 1.5.9)
|
85
|
+
method_source (0.9.0)
|
86
|
+
mime-types (3.1)
|
87
|
+
mime-types-data (~> 3.2015)
|
88
|
+
mime-types-data (3.2016.0521)
|
89
|
+
mini_portile2 (2.3.0)
|
90
|
+
minitest (5.10.3)
|
91
|
+
multi_json (1.12.2)
|
92
|
+
multi_xml (0.6.0)
|
93
|
+
multipart-post (2.0.0)
|
94
|
+
netrc (0.11.0)
|
95
|
+
nokogiri (1.8.1)
|
96
|
+
mini_portile2 (~> 2.3.0)
|
97
|
+
nokogiri (1.8.1-x64-mingw32)
|
98
|
+
mini_portile2 (~> 2.3.0)
|
99
|
+
oauth2 (1.4.0)
|
100
|
+
faraday (>= 0.8, < 0.13)
|
101
|
+
jwt (~> 1.0)
|
102
|
+
multi_json (~> 1.3)
|
103
|
+
multi_xml (~> 0.5)
|
104
|
+
rack (>= 1.2, < 3)
|
105
|
+
popper_js (1.11.1)
|
106
|
+
pry (0.11.1)
|
107
|
+
coderay (~> 1.1.0)
|
108
|
+
method_source (~> 0.9.0)
|
109
|
+
pry-rails (0.3.6)
|
110
|
+
pry (>= 0.10.4)
|
111
|
+
rack (2.0.3)
|
112
|
+
rack-test (0.7.0)
|
113
|
+
rack (>= 1.0, < 3)
|
114
|
+
rails-dom-testing (2.0.3)
|
115
|
+
activesupport (>= 4.2.0)
|
116
|
+
nokogiri (>= 1.6)
|
117
|
+
rails-html-sanitizer (1.0.3)
|
118
|
+
loofah (~> 2.0)
|
119
|
+
railties (5.1.4)
|
120
|
+
actionpack (= 5.1.4)
|
121
|
+
activesupport (= 5.1.4)
|
122
|
+
method_source
|
123
|
+
rake (>= 0.8.7)
|
124
|
+
thor (>= 0.18.1, < 2.0)
|
125
|
+
rake (12.1.0)
|
126
|
+
rb-fsevent (0.10.2)
|
127
|
+
rb-inotify (0.9.10)
|
128
|
+
ffi (>= 0.5.0, < 2)
|
129
|
+
rest-client (2.0.2)
|
130
|
+
http-cookie (>= 1.0.2, < 2.0)
|
131
|
+
mime-types (>= 1.16, < 4.0)
|
132
|
+
netrc (~> 0.8)
|
133
|
+
ruby_parser (3.10.1)
|
134
|
+
sexp_processor (~> 4.9)
|
135
|
+
sass (3.5.2)
|
136
|
+
sass-listen (~> 4.0.0)
|
137
|
+
sass-listen (4.0.0)
|
138
|
+
rb-fsevent (~> 0.9, >= 0.9.4)
|
139
|
+
rb-inotify (~> 0.9, >= 0.9.7)
|
140
|
+
sexp_processor (4.10.0)
|
141
|
+
temple (0.8.0)
|
142
|
+
thor (0.20.0)
|
143
|
+
thread_safe (0.3.6)
|
144
|
+
tilt (2.0.8)
|
145
|
+
tzinfo (1.2.3)
|
146
|
+
thread_safe (~> 0.1)
|
147
|
+
unf (0.1.4)
|
148
|
+
unf_ext
|
149
|
+
unf_ext (0.0.7.4)
|
150
|
+
will_paginate (3.1.6)
|
151
|
+
|
152
|
+
PLATFORMS
|
153
|
+
ruby
|
154
|
+
x64-mingw32
|
155
|
+
|
156
|
+
DEPENDENCIES
|
157
|
+
shopapp!
|
158
|
+
|
159
|
+
BUNDLED WITH
|
160
|
+
1.15.4
|
data/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
$enable-rounded: false;
|
2
|
+
@import "bootstrap";
|
3
|
+
@import "font-awesome";
|
4
|
+
.table-hover {
|
5
|
+
tr{cursor: pointer;}
|
6
|
+
background-color: rgba(243,243,243,.85);
|
7
|
+
margin-bottom: 0;
|
8
|
+
padding-bottom: 0;
|
9
|
+
border-bottom: 0;
|
10
|
+
}
|
11
|
+
.table-condensed th,
|
12
|
+
.table-condensed td{
|
13
|
+
padding: 0.45rem;
|
14
|
+
font-size: 14px;
|
15
|
+
}
|
16
|
+
.badge{
|
17
|
+
line-height: 15px;
|
18
|
+
}
|
19
|
+
th{
|
20
|
+
background-color: #fff;
|
21
|
+
}
|
22
|
+
.header{
|
23
|
+
border-bottom: 1px solid #dadada;
|
24
|
+
border-top:1px solid #dadada;
|
25
|
+
box-sizing: border-box;
|
26
|
+
background-color: #ececec;
|
27
|
+
padding: 10px 0;
|
28
|
+
#more_apps,
|
29
|
+
#profile{
|
30
|
+
background-color: transparent;
|
31
|
+
border:none;
|
32
|
+
cursor: pointer;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
.products{
|
36
|
+
padding: 0;
|
37
|
+
overflow: scroll;
|
38
|
+
height: calc(100vh - 79px);
|
39
|
+
margin-bottom: 0;
|
40
|
+
padding-bottom: 0;
|
41
|
+
}
|
42
|
+
.additional_nav{
|
43
|
+
line-height: 33px;
|
44
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class AuthController < ActionController::Base
|
2
|
+
include ShopliftClient
|
3
|
+
protect_from_forgery with: :exception
|
4
|
+
|
5
|
+
def auth
|
6
|
+
response = client.auth_code.get_token params[:code],
|
7
|
+
redirect_uri: Rails.configuration.settings['authlift_redirect_uri'],
|
8
|
+
scope: scope
|
9
|
+
self.session_cookie = response.token
|
10
|
+
previous_url = session[:previous_url]
|
11
|
+
session.delete :previous_url
|
12
|
+
redirect_to(previous_url || '/')
|
13
|
+
end
|
14
|
+
|
15
|
+
def destroy
|
16
|
+
authenticate_user!
|
17
|
+
return if current_user.blank?
|
18
|
+
signouttoken = session_cookie
|
19
|
+
session_cookie = nil
|
20
|
+
|
21
|
+
redirect_to "#{Rails.configuration.settings['authlift_url']}users/sign_outx?signouttoken=#{signouttoken}"
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'oauth2'
|
3
|
+
|
4
|
+
module ShopliftClient
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
attr_reader :authentication
|
9
|
+
attr_reader :api_key
|
10
|
+
attr_reader :current_user
|
11
|
+
attr_reader :current_company
|
12
|
+
end
|
13
|
+
|
14
|
+
class_methods do
|
15
|
+
end
|
16
|
+
|
17
|
+
def session_cookie
|
18
|
+
session["authlift_session_id"]
|
19
|
+
end
|
20
|
+
|
21
|
+
def session_cookie=(new_value)
|
22
|
+
session["authlift_session_id"] = new_value
|
23
|
+
end
|
24
|
+
|
25
|
+
def redirect_unauthorized
|
26
|
+
session.clear
|
27
|
+
session[:previous_url] = request.fullpath
|
28
|
+
redirect_to client.auth_code.authorize_url(
|
29
|
+
redirect_uri: Rails.configuration.settings['authlift_redirect_uri'],
|
30
|
+
scope: scope)
|
31
|
+
end
|
32
|
+
|
33
|
+
def scope
|
34
|
+
[Rails.configuration.settings['authlift_default_scope'], 'public'].compact.join ' '
|
35
|
+
end
|
36
|
+
|
37
|
+
def find_company_by_code(code)
|
38
|
+
begin
|
39
|
+
@current_company ||= Company.find_or_create_by! code: code
|
40
|
+
rescue ActiveRecord::StatementInvalid
|
41
|
+
if $!.cause.is_a? PG::UndefinedTable
|
42
|
+
fail <<-ERROR.strip_heredoc
|
43
|
+
You have not defined a company, and that is compulsory even if
|
44
|
+
you are not planning to add any additional fields. You do not need to
|
45
|
+
seed it, so following is enough forever:
|
46
|
+
|
47
|
+
rails g model company code:string; rake db:migrate
|
48
|
+
ERROR
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def authenticate_user!
|
54
|
+
if session_cookie.present?
|
55
|
+
@token = OAuth2::AccessToken.new client, session_cookie, scope: scope
|
56
|
+
begin
|
57
|
+
x = srv.get '/api/users/profile'
|
58
|
+
@current_user = JSON.parse x.response.body
|
59
|
+
find_company_by_code current_user['company']['code']
|
60
|
+
rescue OAuth2::Error
|
61
|
+
redirect_unauthorized
|
62
|
+
end
|
63
|
+
else
|
64
|
+
redirect_unauthorized
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def authenticate_company!
|
69
|
+
@api_key = if params['key'].present?
|
70
|
+
params['key'].match(/[0-9a-f]+/).to_s
|
71
|
+
elsif request.headers['AUTHORIZATION'].present?
|
72
|
+
request.headers['AUTHORIZATION'].gsub(/^Bearer ?/, '')
|
73
|
+
else
|
74
|
+
Rails.configuration.settings['authlift_default_app_key']
|
75
|
+
end
|
76
|
+
|
77
|
+
fail ActionController::RoutingError, 'Authentication token missing' if @api_key.blank?
|
78
|
+
|
79
|
+
response = srv.post 'auth/api_key',
|
80
|
+
body: {
|
81
|
+
api_key: api_key,
|
82
|
+
requested_action: "#{self.controller_name}##{self.action_name}"
|
83
|
+
}
|
84
|
+
|
85
|
+
fail ActionController::RoutingError, 'Request not authorized' if response.blank?
|
86
|
+
|
87
|
+
@authentication = JSON.parse response.body
|
88
|
+
find_company_by_code authentication['company']
|
89
|
+
end
|
90
|
+
|
91
|
+
def current_user
|
92
|
+
return @current_user if @current_user.present?
|
93
|
+
|
94
|
+
@current_user
|
95
|
+
end
|
96
|
+
|
97
|
+
def current_company
|
98
|
+
end
|
99
|
+
|
100
|
+
def user_signed_in?
|
101
|
+
!current_user.nil?
|
102
|
+
end
|
103
|
+
|
104
|
+
# To create/update a model, params must be of form { model_name: { attr1: value1, attr2: value2 } }
|
105
|
+
# and attr1, attr2 must be in the list of allowed params the Rails way.
|
106
|
+
def post(url, params)
|
107
|
+
puts 'co_cli: post'
|
108
|
+
puts "url: #{url}"
|
109
|
+
puts "params: #{params}"
|
110
|
+
response = srv.request(:post, url, body: params)
|
111
|
+
JSON.parse(response.body)
|
112
|
+
rescue OAuth2::Error
|
113
|
+
raise "Server fault, could not perform post to #{srv.client.site}#{url}"
|
114
|
+
rescue
|
115
|
+
raise "Unknown error, could not perform post to #{srv.client.site}#{url}"
|
116
|
+
end
|
117
|
+
|
118
|
+
def get(url, params = {})
|
119
|
+
puts 'co_cli: get'
|
120
|
+
puts "url: #{url}"
|
121
|
+
puts "params: #{params}"
|
122
|
+
response = srv.request(:get, url, body: params)
|
123
|
+
JSON.parse(response.body)
|
124
|
+
rescue OAuth2::Error
|
125
|
+
raise "Server fault, could not perform post to #{srv.client.site}#{url}"
|
126
|
+
rescue
|
127
|
+
raise "Unknown error, could not perform post to #{srv.client.site}#{url}"
|
128
|
+
end
|
129
|
+
|
130
|
+
def srv
|
131
|
+
@token ||= client.client_credentials.get_token scope: scope
|
132
|
+
end
|
133
|
+
|
134
|
+
def client
|
135
|
+
@oauth ||= OAuth2::Client.new Rails.configuration.settings['authlift_app_id'],
|
136
|
+
Rails.configuration.settings['authlift_app_secret'],
|
137
|
+
site: Rails.configuration.settings['authlift_url']
|
138
|
+
end
|
139
|
+
end
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.container-fluid
|
2
|
+
.row.header.navbar.justify-content-between
|
3
|
+
.col-4.col-md-2
|
4
|
+
= link_to('PROLIFT', '/')
|
5
|
+
.col-4.col-md-2.order-md-2
|
6
|
+
.row.justify-content-end
|
7
|
+
.col-4
|
8
|
+
= render 'layouts/header_menu'
|
9
|
+
.col-4
|
10
|
+
.dropdown
|
11
|
+
%button#more_apps(aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" type="button")
|
12
|
+
%i.fa.fa-th(aria-hidden="true")
|
13
|
+
.dropdown-menu.dropdown-menu-right(aria-labelledby="dropdownMenuButton" style="right: 0; left: auto;")
|
14
|
+
%a.dropdown-item(href="#") Order Manager
|
15
|
+
%a.dropdown-item(href="#") Shipment Manager
|
16
|
+
%a.dropdown-item(href="#") Store Configuration
|
17
|
+
.col-4
|
18
|
+
.dropdown
|
19
|
+
%button#profile(aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" type="button")
|
20
|
+
%i.fa.fa-user(aria-hidden="true")
|
21
|
+
.dropdown-menu.dropdown-menu-right(aria-labelledby="dropdownMenuButton" style="right: 0; left: auto;")
|
22
|
+
.dropdown-header=@current_user['email']
|
23
|
+
%a.dropdown-item(href="#") Edit Profile
|
24
|
+
= link_to(logout_path, method: :delete, :class => 'dropdown-item') do
|
25
|
+
Logout
|
26
|
+
.col-md-6.order-1
|
27
|
+
%form(action="/")
|
28
|
+
.input-group
|
29
|
+
%input#search.form-control(name="search" placeholder="Search for product" type="text" value=@search)
|
30
|
+
%button.btn.btn-primary.input-group-addon(type="submit" style="width: 80px; padding-left: 30px;")
|
31
|
+
%i.fa.fa-search(aria-hidden="true")
|
32
|
+
= yield
|
@@ -0,0 +1,25 @@
|
|
1
|
+
default_settings_file = Rails.root.join 'config', 'settings.yml'
|
2
|
+
local_settings_file = Rails.root.join 'config', 'local.yml'
|
3
|
+
|
4
|
+
if File.exist? default_settings_file
|
5
|
+
Rails.application.config.settings = YAML.load(ERB.new(File.read(default_settings_file)).result)
|
6
|
+
|
7
|
+
Rails.application.config.settings.merge! YAML.load(ERB.new(File.read(local_settings_file)).result) if
|
8
|
+
File.exist? local_settings_file
|
9
|
+
|
10
|
+
Rails.application.config.settings.keys.each do |key|
|
11
|
+
if ENV[key.upcase].present?
|
12
|
+
Rails.application.config.settings[key] = ENV[key.upcase]
|
13
|
+
else
|
14
|
+
ENV[key.upcase] = Rails.application.config.settings[key].to_s
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Rails.configuration.generators do |g|
|
20
|
+
g.template_engine :haml
|
21
|
+
|
22
|
+
# you can also specify a different test framework or ORM here
|
23
|
+
# g.test_framework :rspec
|
24
|
+
# g.orm :mongoid
|
25
|
+
end
|
data/lib/shopapp.rb
ADDED
data/shopapp.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'shopapp'
|
3
|
+
s.version = '0.0.1'
|
4
|
+
s.date = '2017-10-13' # Friday the 13th
|
5
|
+
s.summary = 'Do a shoplift.'
|
6
|
+
s.description = 'Ha! Art thou Bedlam? Dost thou thirst base Trojan, to have me fold up Parca\'s fatal web? Hence!\
|
7
|
+
I am qualmish at the smell of leek.'
|
8
|
+
s.author = 'Zeljko'
|
9
|
+
s.email = 'zeljko@z-ware.fi'
|
10
|
+
|
11
|
+
# Next one line HAS TO be uncommented before this gem is ever built, built
|
12
|
+
# gem will work without it as long as it is included in the source
|
13
|
+
# try of the using project.
|
14
|
+
s.files = `git ls-files`.split("\n") - %w(.rvmrc .gitignore)
|
15
|
+
|
16
|
+
# s.executables = ['...']
|
17
|
+
# s.homepage = 'http://rubygems.org/gems/shopapp'
|
18
|
+
# s.license = 'MIT'
|
19
|
+
|
20
|
+
# Dependences
|
21
|
+
s.add_dependency 'railties', '~> 5.1', '>= 3.1'
|
22
|
+
s.add_dependency 'haml-rails'
|
23
|
+
s.add_dependency 'jquery-rails'
|
24
|
+
s.add_dependency 'bootstrap', '~> 4.0.0.beta'
|
25
|
+
s.add_dependency 'font-awesome-rails'
|
26
|
+
s.add_dependency 'bootstrap-will_paginate'
|
27
|
+
s.add_dependency 'pry-rails'
|
28
|
+
s.add_dependency 'oauth2'
|
29
|
+
s.add_dependency 'rest-client'
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shopapp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Zeljko
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-10-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: railties
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.1'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.1'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '5.1'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.1'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: haml-rails
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jquery-rails
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: bootstrap
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 4.0.0.beta
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 4.0.0.beta
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: font-awesome-rails
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: bootstrap-will_paginate
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: pry-rails
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: oauth2
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rest-client
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
description: |-
|
146
|
+
Ha! Art thou Bedlam? Dost thou thirst base Trojan, to have me fold up Parca's fatal web? Hence!\
|
147
|
+
I am qualmish at the smell of leek.
|
148
|
+
email: zeljko@z-ware.fi
|
149
|
+
executables: []
|
150
|
+
extensions: []
|
151
|
+
extra_rdoc_files: []
|
152
|
+
files:
|
153
|
+
- Gemfile
|
154
|
+
- Gemfile.lock
|
155
|
+
- README.md
|
156
|
+
- app/assets/javascripts/shopapp.js
|
157
|
+
- app/assets/stylesheets/shopapp.scss
|
158
|
+
- app/controllers/api_controller.rb
|
159
|
+
- app/controllers/auth_controller.rb
|
160
|
+
- app/controllers/concerns/shoplift_client.rb
|
161
|
+
- app/controllers/user_authenticated_controller.rb
|
162
|
+
- app/views/layouts/_header_menu.html.haml
|
163
|
+
- app/views/shopapp/_shopapp.html.haml
|
164
|
+
- config/initializers/active_settings.rb
|
165
|
+
- lib/shopapp.rb
|
166
|
+
- lib/shopapp/engine.rb
|
167
|
+
- lib/shopapp/routes.rb
|
168
|
+
- shopapp.gemspec
|
169
|
+
homepage:
|
170
|
+
licenses: []
|
171
|
+
metadata: {}
|
172
|
+
post_install_message:
|
173
|
+
rdoc_options: []
|
174
|
+
require_paths:
|
175
|
+
- lib
|
176
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
requirements: []
|
187
|
+
rubyforge_project:
|
188
|
+
rubygems_version: 2.6.12
|
189
|
+
signing_key:
|
190
|
+
specification_version: 4
|
191
|
+
summary: Do a shoplift.
|
192
|
+
test_files: []
|