Module: Softwear::Lib

Defined in:
lib/softwear/lib.rb,
lib/softwear/lib/spec.rb,
lib/softwear/lib/version.rb

Defined Under Namespace

Modules: Spec

Constant Summary collapse

VERSION =
"0.0.13"

Class Method Summary collapse

Class Method Details

.capistrano(context) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/softwear/lib.rb', line 63

def self.capistrano(context)
  context.instance_eval do
    ruby = fetch(:rvm_ruby_string) || fetch(:rvm_ruby_version)
    gem_home_1 = fetch(:gems_path) || "~/.rvm/rubies/#{ruby}/gems/gems"
    gem_home_2 = "~/.rvm/gems/#{ruby}/gems"

    namespace :deploy do

      desc 'Assure softwear-lib is up to date before deploying'
      task :update_softwear_lib do
        on roles(:app), in: :sequence do
          execute "gem install -i #{gem_home_1} softwear-lib"
          execute "gem install -i #{gem_home_2} softwear-lib"
        end
      end

      before :updating, :update_softwear_lib
    end
  end
end

.common_gems(gemfile) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/softwear/lib.rb', line 6

def self.common_gems(gemfile)
  gemfile.instance_eval do
    gem 'rails', '4.2.1'

    gem 'softwear-lib', VERSION
    gem 'mysql2'
    gem 'sass-rails'
    gem 'uglifier', '>= 1.3.0'
    gem 'coffee-rails', '~> 4.0.0'
    gem 'bootstrap-sass', '~> 3.2.0'
    gem 'activeresource'
    gem 'jquery-rails'
    gem 'jquery-ui-rails'
    gem 'hirb'
    gem 'momentjs-rails', '~> 2.9.0'
    gem 'bootstrap3-datetimepicker-rails', '4.7.14'
    gem 'js-routes'
    gem 'inherited_resources'
    gem 'devise'
    gem 'figaro'
    gem 'paranoia', '~> 2.0'
    gem 'paperclip'
    gem 'kaminari'
    gem 'whenever'
    gem 'dumpsync', git: 'git://github.com/AnnArborTees/dumpsync.git'
    gem 'bootstrap_form'
    gem 'acts_as_warnable', git: 'git://github.com/AnnArborTees/acts_as_warnable.git'

    group :development do
      gem 'capistrano', '~> 3.2.0'
      gem 'capistrano-rvm'
      gem 'capistrano-rails'
      gem 'capistrano-bundler'
      gem 'better_errors', '>= 0.3.2'
      gem 'binding_of_caller'
    end

    group :development, :test do
      gem 'byebug', platforms: :mri
      gem 'rubinius-debugger', platforms: :rbx
    end

    group :test do
      gem "rspec-rails", "~> 3.2.0"
      gem 'factory_girl_rails', '>= 4.2.0', require: true
      gem 'capybara', '~> 2.4'
      gem 'capybara-webkit'
      gem 'webmock', require: false
      gem 'rspec-mocks'
      gem 'rspec-retry'
      gem 'email_spec'
      gem 'selenium-webdriver'
      gem 'shoulda-matchers'
    end
  end
end

.fix_sort_argument_error_on_rubiniusObject



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/softwear/lib.rb', line 84

def self.fix_sort_argument_error_on_rubinius
  # Rubinius calls Enumerator#sort! within Enumerator#sort_by,
  # # and Mail::PartsList calls sort_by within sort!... See the
  # problem?

  if RUBY_ENGINE == 'rbx'
    require 'mail'

    Mail::PartsList.class_eval do
      def map!(&block)
        Mail::PartsList.new(collect(&block))
      end

      def sort!(order = nil)
        return super() if order.nil?

        i = 0
        sorted = self.sort_by do |a|
          [get_order_value(a, order), i += 1]
        end
        self.clear
        sorted.each(&self.method(:<<))
      end
    end
  end
end

.fix_state_machine_around_validationObject



111
112
113
# File 'lib/softwear/lib.rb', line 111

def self.fix_state_machine_around_validation
  StateMachine::Integrations::ActiveModel.instance_eval { public :around_validation }
end