softwear-lib 1.10.3 → 2.0.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 +4 -4
- data/Rakefile +0 -1
- data/app/controllers/softwear/application_controller.rb +5 -0
- data/app/controllers/softwear/error_reports_controller.rb +37 -0
- data/app/helpers/softwear/application_helper.rb +4 -0
- data/app/mailers/error_report_mailer.rb +53 -0
- data/app/views/error_report_mailer/send_report.html.erb +30 -0
- data/app/views/layouts/application.html.erb +14 -0
- data/app/views/softwear/errors/_error.html.erb +35 -0
- data/app/views/softwear/errors/internal_server_error.html.erb +6 -0
- data/app/views/softwear/errors/internal_server_error.js.erb +10 -0
- data/config/routes.rb +3 -0
- data/lib/softwear/auth/emails_helper.rb +9 -0
- data/lib/softwear/auth/helper.rb +8 -0
- data/lib/softwear/engine.rb +5 -0
- data/lib/softwear/error_catcher.rb +67 -0
- data/lib/softwear/lib.rb +57 -54
- data/lib/softwear/{lib → library}/api_controller.rb +2 -2
- data/lib/softwear/{lib → library}/capistrano.rb +1 -1
- data/lib/softwear/{lib → library}/controller_authentication.rb +1 -1
- data/lib/softwear/{lib → library}/enqueue.rb +2 -2
- data/lib/softwear/{lib → library}/spec.rb +1 -1
- data/lib/softwear/library/version.rb +6 -0
- data/softwear-lib.gemspec +2 -2
- metadata +35 -22
- data/lib/softwear/lib/version.rb +0 -5
- /data/lib/softwear/{lib → library}/tcp_server.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc2081155b538f2eda9e912f95a03d3b634146c3
|
4
|
+
data.tar.gz: e9d8aacdd47800085cac3191e06aff55dcf24d87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f46eae9a58c4379d540c8fa01fd9fc3fcda289ff8acbb8fa492d2d7edeead7bc075a13dc8c69ef1a18d7c2375dea7c4589c4fae4721da61c8643118e310f91e0
|
7
|
+
data.tar.gz: bb94cb020e85c5ea859aafa9441d5a3c7aec22d480a101cd1fed0980c6dc4f08999b6ad6217c76acd7975e3215f667fbc5c76151ef8bdab56ba0c3ee23a92e79
|
data/Rakefile
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
module Softwear
|
2
|
+
class ErrorReportsController < ApplicationController
|
3
|
+
skip_before_filter :authenticate_user!
|
4
|
+
|
5
|
+
helper Softwear::Engine.helpers do
|
6
|
+
def method_missing(name, *args, &block)
|
7
|
+
if main_app.respond_to?(name)
|
8
|
+
main_app.send(name, *args, &block)
|
9
|
+
else
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def email_report
|
16
|
+
if current_user
|
17
|
+
user = current_user
|
18
|
+
else
|
19
|
+
begin
|
20
|
+
user = User.find(params[:user_id]) unless params[:user_id].blank?
|
21
|
+
rescue StandardError => _e
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
ErrorReportMailer.send_report(user, params).deliver
|
26
|
+
flash[:success] = 'Sent error report. Sorry about that and thank you for your submission.'
|
27
|
+
|
28
|
+
if user
|
29
|
+
redirect_to '/'
|
30
|
+
elsif params[:order_id] && (key = Order.where(id: params[:order_id]).pluck(:customer_key).first)
|
31
|
+
redirect_to customer_order_path(key)
|
32
|
+
else
|
33
|
+
render inline: "<%= flash[:success] %>"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
class ErrorReportMailer < ActionMailer::Base
|
2
|
+
default to: 'devteam@annarbortees.com'
|
3
|
+
|
4
|
+
def send_report(user, params)
|
5
|
+
@order = Order.find_by(id: params[:order_id])
|
6
|
+
@user = user || User.find_by(id: params[:user_id])
|
7
|
+
|
8
|
+
if @user.nil?
|
9
|
+
from_customer = true
|
10
|
+
|
11
|
+
if @order.nil?
|
12
|
+
@user = OpenStruct.new(
|
13
|
+
email: 'unknown-user@annarbortees.com',
|
14
|
+
full_name: 'Unknown Customer'
|
15
|
+
)
|
16
|
+
else
|
17
|
+
@user = OpenStruct.new(
|
18
|
+
email: @order.email,
|
19
|
+
full_name: "(Customer) #{@order.full_name}"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
@error_class = params[:error_class]
|
25
|
+
@error_message = params[:error_message]
|
26
|
+
@backtrace = params[:backtrace]
|
27
|
+
@user_message = params[:user_message]
|
28
|
+
@additional_info = params[:additional_info]
|
29
|
+
|
30
|
+
mail(
|
31
|
+
from: from_customer ? 'customer-report@softwearcrm.com' : @user.email,
|
32
|
+
reply_to: @user.email,
|
33
|
+
to: 'devteam@annarbortees.com',
|
34
|
+
subject: "Softwear CRM Error Report From #{@user.full_name}"
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def auth_server_down(at)
|
39
|
+
mail(
|
40
|
+
from: 'noreply@softwearcrm.com',
|
41
|
+
subject: 'Authentication server is down!',
|
42
|
+
body: at.strftime("Lost contact on %m/%d/%Y at %I:%M%p. We're running on cache!")
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def auth_server_up(at)
|
47
|
+
mail(
|
48
|
+
from: 'noreply@softwearcrm.com',
|
49
|
+
subject: 'Authentication server back up!',
|
50
|
+
body: at.strftime("Just got a response at %I:%M%p")
|
51
|
+
)
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<h1> <%= @user.full_name %>'s report: </h1>
|
2
|
+
<div>
|
3
|
+
<%= @user.email %>:
|
4
|
+
</div>
|
5
|
+
<p> <%= @user_message %> </p>
|
6
|
+
<h1> Error details: </h1>
|
7
|
+
<div>
|
8
|
+
<%= @error_class %>: <%= @error_message %>
|
9
|
+
</div>
|
10
|
+
<div>
|
11
|
+
<h4>Additional information:</h4>
|
12
|
+
<ul>
|
13
|
+
<% @additional_info.split("|||").each do |info| %>
|
14
|
+
<li><%= info %></li>
|
15
|
+
<% end %>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
<div>
|
19
|
+
<ul>
|
20
|
+
<% @backtrace.split("\n").each do |line| %>
|
21
|
+
<li>
|
22
|
+
<% if Softwear::EmailsHelper.backtrace_is_from_app?(line) %>
|
23
|
+
<strong><%= line %></strong><br />
|
24
|
+
<% else %>
|
25
|
+
<%= line %><br />
|
26
|
+
<% end %>
|
27
|
+
</li>
|
28
|
+
<% end %>
|
29
|
+
</ul>
|
30
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Softwear</title>
|
5
|
+
<%= stylesheet_link_tag "softwear/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "softwear/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<div>
|
2
|
+
Fortunately, a report of this error can be sent to the dev team.
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<% if current_user || !Rails.env.production? %>
|
6
|
+
<div>
|
7
|
+
<%= link_to 'Show error details', '#', id: 'show-error-details-btn', onclick: '$("#error-details").toggle(); return false;', class: 'btn btn-info' %>
|
8
|
+
<div id='error-details' style='<%= "display: none;" if Rails.env.production? %>'>
|
9
|
+
<p><%= error.class.name %>: <%= error.message %></p>
|
10
|
+
<% error.backtrace.each do |line| %>
|
11
|
+
<% if backtrace_is_from_app?(line) %>
|
12
|
+
<strong><%= line %></strong><br />
|
13
|
+
<% else %>
|
14
|
+
<%= line %><br />
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<%= form_tag softwear.error_report_path, method: :post do %>
|
22
|
+
<%= hidden_field_tag 'error_class', error.class.name %>
|
23
|
+
<%= hidden_field_tag 'error_message', error.message %>
|
24
|
+
<%= hidden_field_tag 'backtrace', error.backtrace.join("\n") %>
|
25
|
+
<%= hidden_field_tag 'user_id', current_user.try(:id) %>
|
26
|
+
<%= hidden_field_tag 'additional_info', additional_info %>
|
27
|
+
<%= hidden_field_tag 'order_id', @order.try(:id) %>
|
28
|
+
|
29
|
+
<div class='form-group'>
|
30
|
+
<%= label_tag 'user_message', 'Describe how you reached this error.' %>
|
31
|
+
<%= text_area_tag 'user_message', '', class: 'form-control' %>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<%= submit_tag 'Send', class: 'btn btn-info' %>
|
35
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if current_user %>
|
2
|
+
setupContentModal(function(modal) {
|
3
|
+
modal.find('.modal-content').addClass('modal-content-error');
|
4
|
+
modal.find('.modal-body').addClass('centered');
|
5
|
+
});
|
6
|
+
showContentModal({
|
7
|
+
title: 'You have encountered an error!',
|
8
|
+
body: $("<%=j render 'softwear/errors/error', error: @error, additional_info: @additional_info %>")
|
9
|
+
});
|
10
|
+
<% end %>
|
data/config/routes.rb
ADDED
data/lib/softwear/auth/helper.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
|
3
|
+
module Softwear
|
4
|
+
module ErrorCatcher
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
rescue_from Exception, StandardError, with: :error_report_form unless Rails.env.test?
|
9
|
+
end
|
10
|
+
|
11
|
+
protected
|
12
|
+
|
13
|
+
def iterm_annotation(content)
|
14
|
+
puts "=======================================================\033]1337;AddAnnotation=#{content}\a"
|
15
|
+
end
|
16
|
+
|
17
|
+
def error_report_form(error)
|
18
|
+
time_of_error = Time.now.strftime("%x %I:%M %p")
|
19
|
+
|
20
|
+
iterm_annotation("Begin #{error.class.name} (#{time_of_error})")
|
21
|
+
Rails.logger.error "**** #{error.class.name}: #{error.message} ****\n\n"\
|
22
|
+
"\t#{error.backtrace.join("\n\t")}"
|
23
|
+
iterm_annotation("End #{error.class.name} (#{time_of_error})")
|
24
|
+
|
25
|
+
@error = error
|
26
|
+
@additional_info = gather_additional_info
|
27
|
+
|
28
|
+
begin
|
29
|
+
respond_to do |format|
|
30
|
+
format.html { render 'softwear/errors/internal_server_error', layout: layout_for_error, status: 500 }
|
31
|
+
format.js { render 'softwear/errors/internal_server_error', layout: layout_for_error, status: 500 }
|
32
|
+
format.json { render json: '{}', status: 500 }
|
33
|
+
end
|
34
|
+
rescue AbstractController::DoubleRenderError => e
|
35
|
+
Rails.logger.error "DOUBLE RENDER ERROR IN CONTROLLER ERROR CATCHER!!! #{e.message}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def filter_params(params)
|
40
|
+
new_hash = {}
|
41
|
+
params.each do |key, value|
|
42
|
+
new_value = value
|
43
|
+
|
44
|
+
case key.to_s
|
45
|
+
when /cc_number/ then new_value = "<FILTERED>"
|
46
|
+
when /cc_cvc/ then new_value = "<FILTERED>"
|
47
|
+
when /password/ then new_value = "<FILTERED>"
|
48
|
+
end
|
49
|
+
|
50
|
+
new_hash[key] = new_value
|
51
|
+
end
|
52
|
+
new_hash
|
53
|
+
end
|
54
|
+
|
55
|
+
def gather_additional_info
|
56
|
+
JSON.pretty_generate(filter_params(params)) + "|||" +
|
57
|
+
instance_variables
|
58
|
+
.reject { |v| /^@_/ =~ v.to_s || %i(@view_renderer @output_buffer @view_flow @error).include?(v) }
|
59
|
+
.map { |v| "#{v}: #{instance_variable_get(v).inspect}" }
|
60
|
+
.join("|||")
|
61
|
+
end
|
62
|
+
|
63
|
+
def layout_for_error
|
64
|
+
current_user ? 'application' : 'no_overlay'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/lib/softwear/lib.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
require "softwear/
|
2
|
-
require "softwear/
|
3
|
-
require "softwear/
|
1
|
+
require "softwear/engine"
|
2
|
+
require "softwear/error_catcher"
|
3
|
+
require "softwear/library/version"
|
4
|
+
require "softwear/library/spec"
|
5
|
+
require "softwear/library/api_controller"
|
4
6
|
begin
|
5
|
-
require "softwear/
|
7
|
+
require "softwear/library/enqueue"
|
6
8
|
rescue LoadError
|
7
9
|
end
|
8
10
|
|
9
|
-
require "softwear/
|
11
|
+
require "softwear/library/controller_authentication"
|
10
12
|
require "softwear/auth/helper"
|
11
13
|
require "softwear/auth/model"
|
12
14
|
require "softwear/auth/belongs_to_user"
|
@@ -14,63 +16,64 @@ require "softwear/auth/spec"
|
|
14
16
|
require "softwear/auth/token_authentication"
|
15
17
|
|
16
18
|
module Softwear
|
17
|
-
module
|
19
|
+
module Library
|
18
20
|
GEMFILE_OPENER = "# === BEGIN SOFTWEAR LIB GEMS === #"
|
19
21
|
GEMFILE_CLOSER = "# === END SOFTWEAR LIB GEMS === #"
|
20
22
|
|
21
23
|
COMMON_GEMS = %(
|
22
|
-
gem 'rails', '~> 4.2.3'
|
24
|
+
gem 'rails', '~> 4.2.3'
|
23
25
|
|
24
|
-
gem 'mysql2'
|
25
|
-
gem 'sass-rails'
|
26
|
-
gem 'uglifier', '>= 1.3.0'
|
27
|
-
gem 'coffee-rails', '~> 4.0.0'
|
28
|
-
gem 'bootstrap-sass', '~> 3.2.0'
|
29
|
-
gem 'activeresource'
|
30
|
-
gem 'jquery-rails'
|
31
|
-
gem 'jquery-ui-rails'
|
32
|
-
gem 'hirb'
|
33
|
-
gem 'momentjs-rails', '~> 2.9.0'
|
34
|
-
gem 'bootstrap3-datetimepicker-rails', '4.7.14'
|
35
|
-
gem 'js-routes'
|
36
|
-
gem 'inherited_resources'
|
37
|
-
gem 'devise'
|
38
|
-
gem 'figaro'
|
39
|
-
gem 'paranoia', '~> 2.0'
|
40
|
-
gem 'paperclip'
|
41
|
-
gem 'kaminari'
|
42
|
-
gem 'whenever'
|
43
|
-
gem 'dumpsync', git: 'git://github.com/AnnArborTees/dumpsync.git'
|
44
|
-
gem 'bootstrap_form'
|
45
|
-
gem 'acts_as_warnable', git: 'git://github.com/AnnArborTees/acts_as_warnable.git'
|
26
|
+
gem 'mysql2'
|
27
|
+
gem 'sass-rails'
|
28
|
+
gem 'uglifier', '>= 1.3.0'
|
29
|
+
gem 'coffee-rails', '~> 4.0.0'
|
30
|
+
gem 'bootstrap-sass', '~> 3.2.0'
|
31
|
+
gem 'activeresource'
|
32
|
+
gem 'jquery-rails'
|
33
|
+
gem 'jquery-ui-rails'
|
34
|
+
gem 'hirb'
|
35
|
+
gem 'momentjs-rails', '~> 2.9.0'
|
36
|
+
gem 'bootstrap3-datetimepicker-rails', '4.7.14'
|
37
|
+
gem 'js-routes'
|
38
|
+
gem 'inherited_resources'
|
39
|
+
gem 'devise'
|
40
|
+
gem 'figaro'
|
41
|
+
gem 'paranoia', '~> 2.0'
|
42
|
+
gem 'paperclip'
|
43
|
+
gem 'kaminari'
|
44
|
+
gem 'whenever'
|
45
|
+
gem 'dumpsync', git: 'git://github.com/AnnArborTees/dumpsync.git'
|
46
|
+
gem 'bootstrap_form'
|
47
|
+
gem 'acts_as_warnable', git: 'git://github.com/AnnArborTees/acts_as_warnable.git'
|
46
48
|
|
47
|
-
group :development do
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
end
|
49
|
+
group :development do
|
50
|
+
gem 'capistrano', '~> 3.2.0'
|
51
|
+
gem 'capistrano-rails'
|
52
|
+
gem 'capistrano-rvm', github: 'AnnArborTees/rvm'
|
53
|
+
gem 'capistrano-bundler', github: 'AnnArborTees/bundler'
|
54
|
+
gem 'better_errors', '>= 0.3.2'
|
55
|
+
gem 'binding_of_caller'
|
56
|
+
end
|
55
57
|
|
56
|
-
group :development, :test do
|
57
|
-
|
58
|
-
|
59
|
-
end
|
58
|
+
group :development, :test do
|
59
|
+
gem 'byebug', platforms: :mri
|
60
|
+
gem 'rubinius-debugger', platforms: :rbx
|
61
|
+
end
|
62
|
+
|
63
|
+
group :test do
|
64
|
+
gem "rspec-rails", "~> 3.2.0"
|
65
|
+
gem 'factory_girl_rails', '>= 4.2.0', require: true
|
66
|
+
gem 'capybara', '~> 2.4'
|
67
|
+
gem 'capybara-webkit'
|
68
|
+
gem 'webmock', require: false
|
69
|
+
gem 'rspec-mocks'
|
70
|
+
gem 'rspec-retry'
|
71
|
+
gem 'email_spec'
|
72
|
+
gem 'selenium-webdriver'
|
73
|
+
gem 'shoulda-matchers'
|
74
|
+
end
|
75
|
+
)
|
60
76
|
|
61
|
-
group :test do
|
62
|
-
gem "rspec-rails", "~> 3.2.0"
|
63
|
-
gem 'factory_girl_rails', '>= 4.2.0', require: true
|
64
|
-
gem 'capybara', '~> 2.4'
|
65
|
-
gem 'capybara-webkit'
|
66
|
-
gem 'webmock', require: false
|
67
|
-
gem 'rspec-mocks'
|
68
|
-
gem 'rspec-retry'
|
69
|
-
gem 'email_spec'
|
70
|
-
gem 'selenium-webdriver'
|
71
|
-
gem 'shoulda-matchers'
|
72
|
-
end
|
73
|
-
)
|
74
77
|
def self.fix_sort_argument_error_on_rubinius
|
75
78
|
# Rubinius calls Enumerator#sort! within Enumerator#sort_by,
|
76
79
|
# # and Mail::PartsList calls sort_by within sort!... See the
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'inherited_resources'
|
2
2
|
|
3
3
|
module Softwear
|
4
|
-
module
|
4
|
+
module Library
|
5
5
|
class ApiController < ActionController::Base
|
6
6
|
include ::InheritedResources::Actions
|
7
7
|
include ::InheritedResources::BaseHelpers
|
@@ -20,7 +20,7 @@ module Softwear
|
|
20
20
|
self.class_attribute :parents_symbols, :resources_configuration, :instance_writer => false
|
21
21
|
|
22
22
|
def self.base_class
|
23
|
-
Softwear::
|
23
|
+
Softwear::Library::ApiController
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.token_authenticate(user_class, options = {})
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'sidekiq'
|
2
2
|
|
3
3
|
module Softwear
|
4
|
-
module
|
4
|
+
module Library
|
5
5
|
module Enqueue
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
@@ -40,7 +40,7 @@ module Softwear
|
|
40
40
|
enqueue_class_mod.module_eval <<-RUBY, __FILE__, __LINE__ + 1
|
41
41
|
def enqueue_#{method_name}(id, *args)
|
42
42
|
::Sidekiq::Client.push(
|
43
|
-
'class' => ::Softwear::
|
43
|
+
'class' => ::Softwear::Library::Enqueue::Worker,
|
44
44
|
'args' => [name, id, #{method_name.inspect}] + args,
|
45
45
|
'queue' => #{options[:queue].inspect}
|
46
46
|
)
|
data/softwear-lib.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'softwear/
|
4
|
+
require 'softwear/library/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "softwear-lib"
|
8
|
-
spec.version = Softwear::
|
8
|
+
spec.version = Softwear::Library::VERSION
|
9
9
|
spec.authors = ["Nigel Baillie"]
|
10
10
|
spec.email = ["nigel@annarbortees.com"]
|
11
11
|
spec.summary = %q{Common gems and logic for all softwear apps.}
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: softwear-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nigel Baillie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.7'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 3.2.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 3.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activesupport
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 4.2.5
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 4.2.5
|
69
69
|
description:
|
@@ -75,30 +75,43 @@ executables:
|
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
|
-
- .gitignore
|
79
|
-
- .rspec
|
78
|
+
- ".gitignore"
|
79
|
+
- ".rspec"
|
80
80
|
- Gemfile
|
81
81
|
- LICENSE.txt
|
82
82
|
- README.md
|
83
83
|
- Rakefile
|
84
|
+
- app/controllers/softwear/application_controller.rb
|
85
|
+
- app/controllers/softwear/error_reports_controller.rb
|
86
|
+
- app/helpers/softwear/application_helper.rb
|
87
|
+
- app/mailers/error_report_mailer.rb
|
88
|
+
- app/views/error_report_mailer/send_report.html.erb
|
89
|
+
- app/views/layouts/application.html.erb
|
90
|
+
- app/views/softwear/errors/_error.html.erb
|
91
|
+
- app/views/softwear/errors/internal_server_error.html.erb
|
92
|
+
- app/views/softwear/errors/internal_server_error.js.erb
|
84
93
|
- bin/softwear
|
85
94
|
- bin/softwear-deploy
|
95
|
+
- config/routes.rb
|
86
96
|
- lib/softwear/auth/belongs_to_user.rb
|
87
97
|
- lib/softwear/auth/controller.rb
|
98
|
+
- lib/softwear/auth/emails_helper.rb
|
88
99
|
- lib/softwear/auth/helper.rb
|
89
100
|
- lib/softwear/auth/model.rb
|
90
101
|
- lib/softwear/auth/spec.rb
|
91
102
|
- lib/softwear/auth/standard_model.rb
|
92
103
|
- lib/softwear/auth/stubbed_model.rb
|
93
104
|
- lib/softwear/auth/token_authentication.rb
|
105
|
+
- lib/softwear/engine.rb
|
106
|
+
- lib/softwear/error_catcher.rb
|
94
107
|
- lib/softwear/lib.rb
|
95
|
-
- lib/softwear/
|
96
|
-
- lib/softwear/
|
97
|
-
- lib/softwear/
|
98
|
-
- lib/softwear/
|
99
|
-
- lib/softwear/
|
100
|
-
- lib/softwear/
|
101
|
-
- lib/softwear/
|
108
|
+
- lib/softwear/library/api_controller.rb
|
109
|
+
- lib/softwear/library/capistrano.rb
|
110
|
+
- lib/softwear/library/controller_authentication.rb
|
111
|
+
- lib/softwear/library/enqueue.rb
|
112
|
+
- lib/softwear/library/spec.rb
|
113
|
+
- lib/softwear/library/tcp_server.rb
|
114
|
+
- lib/softwear/library/version.rb
|
102
115
|
- softwear-lib.gemspec
|
103
116
|
- spec/spec_helper.rb
|
104
117
|
homepage: ''
|
@@ -111,17 +124,17 @@ require_paths:
|
|
111
124
|
- lib
|
112
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
126
|
requirements:
|
114
|
-
- -
|
127
|
+
- - ">="
|
115
128
|
- !ruby/object:Gem::Version
|
116
129
|
version: '0'
|
117
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
131
|
requirements:
|
119
|
-
- -
|
132
|
+
- - ">="
|
120
133
|
- !ruby/object:Gem::Version
|
121
134
|
version: '0'
|
122
135
|
requirements: []
|
123
136
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.4.8
|
125
138
|
signing_key:
|
126
139
|
specification_version: 4
|
127
140
|
summary: Common gems and logic for all softwear apps.
|
data/lib/softwear/lib/version.rb
DELETED
File without changes
|