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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e941e26e7fa9778f586741eb6e80a1bd497edf39
4
- data.tar.gz: fdba4d5f1052ebdc8de933e014763ac33261cb39
3
+ metadata.gz: bc2081155b538f2eda9e912f95a03d3b634146c3
4
+ data.tar.gz: e9d8aacdd47800085cac3191e06aff55dcf24d87
5
5
  SHA512:
6
- metadata.gz: de9556e513821c4aea3377bf59a17be6051e8e73674dddc8f260e9835b20f370c81f90060935671c3bcf81e5c3f7e744fe577a08be317a8353126a4ea0dfc9cc
7
- data.tar.gz: 2688f07922cf02f46b0ce1ef8d043742622d11df1f026721a2092f065ce54bf206c397f030d5195067f78e02a30f36645132766f512947cf459fe4bf19eeda9f
6
+ metadata.gz: f46eae9a58c4379d540c8fa01fd9fc3fcda289ff8acbb8fa492d2d7edeead7bc075a13dc8c69ef1a18d7c2375dea7c4589c4fae4721da61c8643118e310f91e0
7
+ data.tar.gz: bb94cb020e85c5ea859aafa9441d5a3c7aec22d480a101cd1fed0980c6dc4f08999b6ad6217c76acd7975e3215f667fbc5c76151ef8bdab56ba0c3ee23a92e79
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
1
  require "bundler/gem_tasks"
2
-
@@ -0,0 +1,5 @@
1
+ module Softwear
2
+ class ApplicationController < ActionController::Base
3
+ include Softwear::ErrorCatcher
4
+ end
5
+ end
@@ -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,4 @@
1
+ module Softwear
2
+ module ApplicationHelper
3
+ end
4
+ 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,6 @@
1
+ <div class="full-content-center animated fadeInDownBig">
2
+ <div class='box-info'>
3
+ <h2 class='text-center'>You have encountered an error!</h2>
4
+ <%= render 'softwear/errors/error', error: @error, additional_info: @additional_info %>
5
+ </div>
6
+ </div>
@@ -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
@@ -0,0 +1,3 @@
1
+ Softwear::Engine.routes.draw do
2
+ post '/error-report', to: 'error_reports#email_report'
3
+ end
@@ -0,0 +1,9 @@
1
+ module Softwear
2
+ module EmailsHelper
3
+ def backtrace_is_from_app?(line)
4
+ !(line.include?('/gems/') || /^kernel\// =~ line || line.include?('/vendor_ruby/'))
5
+ end
6
+
7
+ extend self
8
+ end
9
+ end
@@ -22,6 +22,14 @@ module Softwear
22
22
  end
23
23
  end
24
24
  end
25
+ end
26
+
27
+ module EmailsHelper
28
+ def backtrace_is_from_app?(line)
29
+ !(line.include?('/gems/') || /^kernel\// =~ line || line.include?('/vendor_ruby/'))
30
+ end
31
+
32
+ extend self
25
33
  end
26
34
  end
27
35
  end
@@ -0,0 +1,5 @@
1
+ module Softwear
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Softwear
4
+ end
5
+ end
@@ -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/lib/version"
2
- require "softwear/lib/spec"
3
- require "softwear/lib/api_controller"
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/lib/enqueue"
7
+ require "softwear/library/enqueue"
6
8
  rescue LoadError
7
9
  end
8
10
 
9
- require "softwear/lib/controller_authentication"
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 Lib
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
- gem 'capistrano', '~> 3.2.0'
49
- gem 'capistrano-rails'
50
- gem 'capistrano-rvm', github: 'AnnArborTees/rvm'
51
- gem 'capistrano-bundler', github: 'AnnArborTees/bundler'
52
- gem 'better_errors', '>= 0.3.2'
53
- gem 'binding_of_caller'
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
- gem 'byebug', platforms: :mri
58
- gem 'rubinius-debugger', platforms: :rbx
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 Lib
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::Lib::ApiController
23
+ Softwear::Library::ApiController
24
24
  end
25
25
 
26
26
  def self.token_authenticate(user_class, options = {})
@@ -1,5 +1,5 @@
1
1
  module Softwear
2
- module Lib
2
+ module Library
3
3
  def self.capistrano(context)
4
4
  context.instance_eval do
5
5
  Rake::Task["deploy:compile_assets"].clear
@@ -1,5 +1,5 @@
1
1
  module Softwear
2
- module Lib
2
+ module Library
3
3
  module ControllerAuthentication
4
4
  extend ActiveSupport::Concern
5
5
 
@@ -1,7 +1,7 @@
1
1
  require 'sidekiq'
2
2
 
3
3
  module Softwear
4
- module Lib
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::Lib::Enqueue::Worker,
43
+ 'class' => ::Softwear::Library::Enqueue::Worker,
44
44
  'args' => [name, id, #{method_name.inspect}] + args,
45
45
  'queue' => #{options[:queue].inspect}
46
46
  )
@@ -1,6 +1,6 @@
1
1
  require 'active_support/concern'
2
2
 
3
- module Softwear::Lib
3
+ module Softwear::Library
4
4
  module Spec
5
5
  extend ActiveSupport::Concern
6
6
 
@@ -0,0 +1,6 @@
1
+
2
+ module Softwear
3
+ module Library
4
+ VERSION = "2.0.0"
5
+ end
6
+ end
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/lib/version'
4
+ require 'softwear/library/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "softwear-lib"
8
- spec.version = Softwear::Lib::VERSION
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: 1.10.3
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-10 00:00:00.000000000 Z
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/lib/api_controller.rb
96
- - lib/softwear/lib/capistrano.rb
97
- - lib/softwear/lib/controller_authentication.rb
98
- - lib/softwear/lib/enqueue.rb
99
- - lib/softwear/lib/spec.rb
100
- - lib/softwear/lib/tcp_server.rb
101
- - lib/softwear/lib/version.rb
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.0.14.1
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.
@@ -1,5 +0,0 @@
1
- module Softwear
2
- module Lib
3
- VERSION = "1.10.3"
4
- end
5
- end
File without changes