shopapp 0.0.1

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: 8494b4dc6eddb32452ea7ee2068b9e0744e3a444
4
+ data.tar.gz: cc1e011c3ac085435b099420e81c4d4baf3e382e
5
+ SHA512:
6
+ metadata.gz: 1c7b1e7bed35f570e4687ffe15107b9b523d5177402736b97915d3702224be1f5df4795a00ada59a7f6d8ff0dfd8e51b276202edfc97863c1d523a3478ff3a45
7
+ data.tar.gz: ab8220fce2b3c0692fa4d336895b93990bedbbaf5881f738ad2173fb99ab8269facd2d4d3f568d6d111ef67e882b834a9ed0f69c0de00f9bde44e5ddef5d8ca9
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -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
@@ -0,0 +1,3 @@
1
+ Shopapp gem
2
+
3
+ More instructions will be added here later.
@@ -0,0 +1,4 @@
1
+ //= require jquery3
2
+ //= require rails-ujs
3
+ //= require popper
4
+ //= require bootstrap-sprockets
@@ -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,5 @@
1
+ class ApiController < ApplicationController
2
+ include ShopliftClient
3
+ protect_from_forgery with: :null_session
4
+ before_action :authenticate_company!
5
+ end
@@ -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
@@ -0,0 +1,5 @@
1
+ class UserAuthenticatedController < ApplicationController
2
+ include ShopliftClient
3
+ protect_from_forgery with: :exception
4
+ before_action :authenticate_user!
5
+ end
@@ -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
@@ -0,0 +1,9 @@
1
+ require 'pry-rails'
2
+ require 'haml-rails'
3
+ require 'jquery-rails'
4
+ require 'bootstrap'
5
+ require 'font-awesome-rails'
6
+ require 'bootstrap-will_paginate'
7
+
8
+ require 'shopapp/engine'
9
+ require 'shopapp/routes'
@@ -0,0 +1,3 @@
1
+ module Shylock
2
+ class Engine < ::Rails::Engine; end
3
+ end
@@ -0,0 +1,6 @@
1
+ class ActionDispatch::Routing::Mapper
2
+ def shoplift_single_sign_on
3
+ get 'auth', to: 'auth#auth'
4
+ delete 'auth', to: 'auth#destroy', as: 'logout'
5
+ end
6
+ end
@@ -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: []