softwear-lib 1.10.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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