bundler-leak 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8c500b9cff644ec4d39ec693c7695c90632ee13e71a6e089918dfc96975de23
4
- data.tar.gz: 92b10475517b8f8dda0faf6e208a27d0a53f0d3d4a5e0c9b38fa57ae67ead53a
3
+ metadata.gz: d7c920e493d02e31ba834c6997c45e488e8deb494fdc4a99447372f8ee7fb5ca
4
+ data.tar.gz: f93ad32dc249b544123d383a6fcde59ab76b8f2db4cf681120a8eac1e397366b
5
5
  SHA512:
6
- metadata.gz: '0500328327647524b1a814ff99cc28e1cf2732425ff49d86ac717702a8364f4eac0c1b613f657b0baac9ecb495b1834ac0e6f0708b58162af383ce73b49f5075'
7
- data.tar.gz: c8f80a5bbcc340245d57af38294e733714bd794b2532bbb57cfccc22c69ac564eb0bd90edd4df3ad2df6e2c98cd9b6311af40e2274d8299ad8ded222c75701ad
6
+ metadata.gz: be78021ea400192744e91cddf7de982bdd47fec4154dcd6ab7df47445045069a9c49c95ea46e85b0b33d92d300b6db493cb58ed49acd4e3b25fa66d2b1d61daa
7
+ data.tar.gz: f0931d5cfb7d8219679e67ec45f061f2381874ff6bf4731a949a09b5bbdf9e16783eb54c5e78d244108b683a32c5e21752c05c18f61436de2cff954d661a7363
@@ -1,125 +1,10 @@
1
- ### 0.6.0 / 2017-07-18
1
+ ### 0.1.0 / 2019-08-28
2
2
 
3
- * Added `--quiet` option to `check` and `update` commands (@jaredbeck).
4
- * Added `bin/bundler-audit` which will be executed when `bundle audit` is ran
5
- (@vassilevsky).
3
+ * Improve database update logic
6
4
 
7
- ### 0.5.0 / 2016-02-28
5
+ ### 0.0.0 / 2019-08-26
8
6
 
9
- * Added {Bundler::Audit::Task}.
10
- * Added {Bundler::Audit::Advisory#date}.
11
- * Added {Bundler::Audit::Advisory#cve_id}.
12
- * Added {Bundler::Audit::Advisory#osvdb_id}.
13
- * Allow insecure gem sources (`http://` and `git://`), if they are hosted on a
14
- private network.
7
+ * Initial release
15
8
 
16
- #### CLI
17
-
18
- * Added the `--update` option to `bundle-audit check`.
19
- * `bundle-audit update` now returns a non-zero exit status on error.
20
- * `bundle-audit update` only updates `~/.local/share/ruby-advisory-db`, if it is a git
21
- repository.
22
-
23
- ### 0.4.0 / 2015-06-30
24
-
25
- * Require ruby >= 1.9.3 due to i18n gem deprecating < 1.9.3.
26
- * Added {Bundler::Audit::Advisory#osvdb}.
27
- * Resolve the IP addresses of gem sources and ignore intranet gem sources.
28
- (PR #90)
29
- * Use ISO8601 date format when querying the git timestamp of ruby-advisory-db.
30
- (PR #92)
31
-
32
- #### CLI
33
-
34
- * Print the CVE or OSVDB id.
35
- * No longer print "Unpatched versions found!" when an insecure gem source
36
- is detected. (PR #84)
37
-
38
- ### 0.3.1 / 2014-04-20
39
-
40
- * Added thor ~> 0.18 as a dependency.
41
- * No longer rely on the vendored version of thor within bundler.
42
- * Store the timestamp of when `data/ruby-advisory-db` was last updated in
43
- `data/ruby-advisory-db.ts`.
44
- * Use `data/ruby-advisory-db.ts` instead of the creation time of the
45
- `dataruby-advisory-db` directory, which is always the install time
46
- of the rubygem.
47
-
48
- ### 0.3.0 / 2013-10-31
49
-
50
- * Added {Bundler::Audit::Database.update!} which uses `git` to download
51
- [ruby-advisory-db] to `~/.local/share/ruby-advisory-db`.
52
- * {Bundler::Audit::Database.path} now returns the path to either
53
- `~/.local/share/ruby-advisory-db` or the vendored copy, depending on which
54
- is more recent.
55
-
56
- #### CLI
57
-
58
- * Added the `bundle-audit update` sub-command.
59
-
60
- ### 0.2.0 / 2013-03-05
61
-
62
- * Require RubyGems >= 1.8.0. Prior versions of RubyGems could not correctly
63
- parse approximate version requirements (`~> 1.2.3`).
64
- * Updated the [ruby-advisory-db].
65
- * Added {Bundler::Audit::Advisory#unaffected_versions}.
66
- * Added {Bundler::Audit::Advisory#unaffected?}.
67
- * Added {Bundler::Audit::Advisory#patched?}.
68
- * Renamed `Advisory#cve` to {Bundler::Audit::Advisory#id}.
69
-
70
- ### 0.1.2 / 2013-02-17
71
-
72
- * Require [bundler] ~> 1.2.
73
- * Vendor a full copy of the [ruby-advisory-db].
74
- * Added {Bundler::Audit::Advisory#path} for debugging purposes.
75
- * Added {Bundler::Audit::Advisory#to_s} for debugging purposes.
76
-
77
- #### CLI
78
-
79
- * Simply parse the `Gemfile.lock` instead of loading the bundle (@grosser).
80
- * Exit with non-zero status on failure (@grosser).
81
-
82
- ### 0.1.1 / 2013-02-12
83
-
84
- * Fixed a Ruby 1.8 syntax error.
85
-
86
- ### Advisories
87
-
88
- * Imported advisories from the [Ruby Advisory DB][ruby-advisory-db].
89
- * [CVE-2011-0739](http://www.osvdb.org/show/osvdb/70667)
90
- * [CVE-2012-2139](http://www.osvdb.org/show/osvdb/81631)
91
- * [CVE-2012-2140](http://www.osvdb.org/show/osvdb/81632)
92
- * [CVE-2012-267](http://osvdb.org/83077)
93
- * [CVE-2012-1098](http://osvdb.org/79726)
94
- * [CVE-2012-1099](http://www.osvdb.org/show/osvdb/79727)
95
- * [CVE-2012-2660](http://www.osvdb.org/show/osvdb/82610)
96
- * [CVE-2012-2661](http://www.osvdb.org/show/osvdb/82403)
97
- * [CVE-2012-3424](http://www.osvdb.org/show/osvdb/84243)
98
- * [CVE-2012-3463](http://osvdb.org/84515)
99
- * [CVE-2012-3464](http://www.osvdb.org/show/osvdb/84516)
100
- * [CVE-2012-3465](http://www.osvdb.org/show/osvdb/84513)
101
-
102
- ### CLI
103
-
104
- * If the advisory has no `patched_versions`, recommend removing or disabling
105
- the gem until a patch is made available.
106
-
107
- ### 0.1.0 / 2013-02-11
108
-
109
- * Initial release:
110
- * Checks for vulnerable versions of gems in `Gemfile.lock`.
111
- * Prints advisory information.
112
- * Does not require a network connection.
113
-
114
- #### Advisories
115
-
116
- * [CVE-2013-0269](http://direct.osvdb.org/show/osvdb/90074)
117
- * [CVE-2013-0263](http://osvdb.org/show/osvdb/89939)
118
- * [CVE-2013-0155](http://osvdb.org/show/osvdb/89025)
119
- * [CVE-2013-0156](http://osvdb.org/show/osvdb/89026)
120
- * [CVE-2013-0276](http://direct.osvdb.org/show/osvdb/90072)
121
- * [CVE-2013-0277](http://direct.osvdb.org/show/osvdb/90073)
122
- * [CVE-2013-0333](http://osvdb.org/show/osvdb/89594)
123
-
124
- [bundler]: http://gembundler.com/
125
- [ruby-advisory-db]: https://github.com/rubysec/ruby-advisory-db#readme
9
+ [bundler]: http://bundler.io/
10
+ [ruby-mem-advisory-db]: https://github.com/rubymem/ruby-mem-advisory-db#readme
data/README.md CHANGED
@@ -9,13 +9,13 @@
9
9
 
10
10
  ## Description
11
11
 
12
- Patch-level verification for [bundler].
12
+ The best tool to find leaky gems in your dependencies. Make sure memory leaks
13
+ are not in your gem dependencies.
13
14
 
14
15
  ## Features
15
16
 
16
- * Checks for memory leaks of gems in `Gemfile.lock`.
17
- * Prints memory leak information.
18
- * Does not require a network connection.
17
+ * Checks for memory leaks of gems in `Gemfile.lock`
18
+ * Prints memory leak information
19
19
 
20
20
  ## Synopsis
21
21
 
@@ -88,12 +88,12 @@ task default: 'bundle:leak'
88
88
  ## Contributing
89
89
 
90
90
  1. Clone the repo
91
- 1. `git submodule update --init` # To populate data dir.
91
+ 1. `./bin/setup` # To populate data dir.
92
92
  1. `bundle exec rake`
93
93
 
94
94
  ## License
95
95
 
96
- Copyright (c) 2019 Ombulabs (hello at ombulabs.com)
96
+ Copyright (c) 2019 OmbuLabs (hello at ombulabs.com)
97
97
 
98
98
  Copyright (c) 2013-2016 Hal Brodigan (postmodern.mod3 at gmail.com)
99
99
 
data/Rakefile CHANGED
@@ -40,7 +40,7 @@ namespace :spec do
40
40
  task :bundle do
41
41
  root = 'spec/bundle'
42
42
 
43
- %w[secure unpatched_gems insecure_sources].each do |bundle|
43
+ %w[unpatched_gems].each do |bundle|
44
44
  chdir(File.join(root,bundle)) do
45
45
  sh 'unset BUNDLE_BIN_PATH BUNDLE_GEMFILE RUBYOPT && bundle install --path ../../../vendor/bundle'
46
46
  end
@@ -53,5 +53,5 @@ task :test => :spec
53
53
  task :default => :spec
54
54
 
55
55
  require 'yard'
56
- YARD::Rake::YardocTask.new
56
+ YARD::Rake::YardocTask.new
57
57
  task :doc => :yard
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ git submodule update --init
4
+ bundle install
@@ -1 +1 @@
1
- 2019-08-08 21:11:00 UTC
1
+ 2019-08-28 18:09:52 UTC
@@ -8,3 +8,6 @@ description: |
8
8
  that it creates.
9
9
  leaky_versions:
10
10
  - "> 0.16.0, < 0.17.2"
11
+ patched_versions:
12
+ - ">= 0.17.3"
13
+
@@ -7,3 +7,5 @@ description: |
7
7
  The call for .to_sym will leak the symbol since those are never garbage collected. Malicious users can abuse.
8
8
  leaky_versions:
9
9
  - "< 0.2.5"
10
+ patched_versions:
11
+ - ">= 0.10"
@@ -7,3 +7,5 @@ description: |
7
7
  Oj::Doc.open steadily increases memory usage.
8
8
  leaky_versions:
9
9
  - "< 2.12.4"
10
+ patched_versions:
11
+ - ">= 2.12.4"
@@ -10,3 +10,5 @@ description: |
10
10
  This caused 312 leaked bytes (on a 64-bit machine) on every render call
11
11
  leaky_versions:
12
12
  - "< 3.3.3"
13
+ patched_versions:
14
+ - ">= 3.3"
@@ -1,9 +1,12 @@
1
1
  ---
2
2
  gem: redis
3
3
  url: https://github.com/redis/redis-rb/issues/612
4
- title: Memory Leak using Celluloid::Future
4
+ title: Memory leak due to Timeout creating threads on each invocation.
5
5
  date: 2016-04-25
6
6
  description: |
7
7
  write_timeout results in lots of short-lived threads created, since each timeout block creates a separate thread. Now every write to Redis requires the creation of a new Thread.
8
8
  leaky_versions:
9
+ - "= 3.2.2"
9
10
  - "= 3.3.0"
11
+ patched_versions:
12
+ - ">= 3.3.1"
@@ -7,3 +7,5 @@ description: |
7
7
  Before starting to execute the task, Processor does an async call to Manager (real_thread method) to add processor's thread to @threads hash in Manager
8
8
  leaky_versions:
9
9
  - "< 3.5.1"
10
+ patched_versions:
11
+ - ">= 3.5.1"
@@ -100,15 +100,15 @@ module Bundler
100
100
  end
101
101
 
102
102
  #
103
- # Checks whether the version is vulnerable to the advisory.
103
+ # Checks whether the version is leaky to the advisory.
104
104
  #
105
105
  # @param [Gem::Version] version
106
106
  # The version to compare against {#patched_versions}.
107
107
  #
108
108
  # @return [Boolean]
109
- # Specifies whether the version is vulnerable to the advisory or not.
109
+ # Specifies whether the version is leaky to the advisory or not.
110
110
  #
111
- def vulnerable?(version)
111
+ def leaky?(version)
112
112
  !patched?(version) && !unaffected?(version)
113
113
  end
114
114
 
@@ -30,7 +30,7 @@ module Bundler
30
30
  default_task :check
31
31
  map '--version' => :version
32
32
 
33
- desc 'check', 'Checks the Gemfile.lock for insecure dependencies'
33
+ desc 'check', 'Checks the Gemfile.lock for known memory leaks'
34
34
  method_option :quiet, :type => :boolean, :aliases => '-q'
35
35
  method_option :verbose, :type => :boolean, :aliases => '-v'
36
36
  method_option :update, :type => :boolean, :aliases => '-u'
@@ -39,10 +39,10 @@ module Bundler
39
39
  update if options[:update]
40
40
 
41
41
  scanner = Scanner.new
42
- vulnerable = false
42
+ leaky = false
43
43
 
44
44
  scanner.scan do |result|
45
- vulnerable = true
45
+ leaky = true
46
46
 
47
47
  case result
48
48
  when Scanner::UnpatchedGem
@@ -50,11 +50,11 @@ module Bundler
50
50
  end
51
51
  end
52
52
 
53
- if vulnerable
54
- say "Vulnerabilities found!", :red
53
+ if leaky
54
+ say "Leaks found!", :red
55
55
  exit 1
56
56
  else
57
- say("No vulnerabilities found", :green) unless options.quiet?
57
+ say("No leaks found", :green) unless options.quiet?
58
58
  end
59
59
  end
60
60
 
@@ -72,8 +72,10 @@ module Bundler
72
72
  t1 = Dir.chdir(USER_PATH) { Time.parse(`git log --date=iso8601 --pretty="%cd" -1`) }
73
73
  t2 = VENDORED_TIMESTAMP
74
74
 
75
- if t1 >= t2 then USER_PATH
76
- else VENDORED_PATH
75
+ if t1 >= t2
76
+ USER_PATH
77
+ else
78
+ VENDORED_PATH
77
79
  end
78
80
  else
79
81
  VENDORED_PATH
@@ -98,8 +100,7 @@ module Bundler
98
100
  if File.directory?(USER_PATH)
99
101
  if File.directory?(File.join(USER_PATH, ".git"))
100
102
  Dir.chdir(USER_PATH) do
101
- command = %w(git fetch --all)
102
- command = %w(git reset --hard origin/master)
103
+ command = "git fetch --all; git reset --hard origin/master"
103
104
  command << '--quiet' if options[:quiet]
104
105
 
105
106
  system *command
@@ -176,7 +177,7 @@ module Bundler
176
177
  return enum_for(__method__,gem) unless block_given?
177
178
 
178
179
  advisories_for(gem.name) do |advisory|
179
- if advisory.vulnerable?(gem.version)
180
+ if advisory.leaky?(gem.version)
180
181
  yield advisory
181
182
  end
182
183
  end
@@ -19,6 +19,6 @@
19
19
  module Bundler
20
20
  module Plumber
21
21
  # bundler-leak version
22
- VERSION = '0.1.0'
22
+ VERSION = '0.1.1'
23
23
  end
24
24
  end
@@ -115,12 +115,12 @@ describe Bundler::Plumber::Advisory do
115
115
  end
116
116
  end
117
117
 
118
- describe "#vulnerable?" do
118
+ describe "#leaky?" do
119
119
  context "when passed a version that matches one patched version" do
120
120
  let(:version) { Gem::Version.new('0.12.4') }
121
121
 
122
122
  it "should return false" do
123
- expect(subject.vulnerable?(version)).to be_falsey
123
+ expect(subject.leaky?(version)).to be_falsey
124
124
  end
125
125
  end
126
126
 
@@ -128,7 +128,7 @@ describe Bundler::Plumber::Advisory do
128
128
  let(:version) { Gem::Version.new('2.9.0') }
129
129
 
130
130
  it "should return true" do
131
- expect(subject.vulnerable?(version)).to be_truthy
131
+ expect(subject.leaky?(version)).to be_truthy
132
132
  end
133
133
 
134
134
  context "when unaffected_versions is not empty" do
@@ -138,7 +138,7 @@ describe Bundler::Plumber::Advisory do
138
138
  let(:version) { Gem::Version.new(an_unaffected_version) }
139
139
 
140
140
  it "should return false" do
141
- expect(subject.vulnerable?(version)).to be_falsey
141
+ expect(subject.leaky?(version)).to be_falsey
142
142
  end
143
143
  end
144
144
 
@@ -146,7 +146,7 @@ describe Bundler::Plumber::Advisory do
146
146
  let(:version) { Gem::Version.new('1.2.3') }
147
147
 
148
148
  it "should return true" do
149
- expect(subject.vulnerable?(version)).to be_truthy
149
+ expect(subject.leaky?(version)).to be_truthy
150
150
  end
151
151
  end
152
152
  end
@@ -14,7 +14,8 @@ describe Bundler::Plumber::Database do
14
14
  expect(File.directory?(subject)).to be_truthy
15
15
  end
16
16
 
17
- it "should prefer the user repo, iff it's as up to date, or more up to date than the vendored one" do
17
+ it "should prefer the user repo, if it's as up to date, or more up to date than the vendored one" do
18
+
18
19
  Bundler::Plumber::Database.update!(quiet: false)
19
20
 
20
21
  Dir.chdir(Bundler::Plumber::Database::USER_PATH) do
@@ -29,7 +30,7 @@ describe Bundler::Plumber::Database do
29
30
  fake_a_commit_in_the_user_repo
30
31
  expect(Bundler::Plumber::Database.path).to eq mocked_user_path
31
32
 
32
- roll_user_repo_back(20)
33
+ roll_user_repo_back(2)
33
34
  expect(Bundler::Plumber::Database.path).to eq Bundler::Plumber::Database::VENDORED_PATH
34
35
  end
35
36
  end
@@ -16,38 +16,25 @@ describe "CLI" do
16
16
  end
17
17
 
18
18
  it "should print a warning" do
19
- expect(subject).to include("Vulnerabilities found!")
19
+ expect(subject).to include("Leaks found!")
20
20
  end
21
21
 
22
- it "should print advisory information for the vulnerable gems" do
22
+ it "should print advisory information for the leaky gems" do
23
23
  advisory_pattern = /(Name: [^\n]+
24
24
  Version: \d+.\d+.\d+
25
25
  URL: https?:\/\/(www\.)?.+
26
26
  Title: [^\n]*?
27
- Solution: remove or disable this gem until a patch is available!)+/
27
+ Solution: upgrade to (~>|>=) \d+\.\d+\.\d+(\.\d+)?(, (~>|>=) \d+\.\d+\.\d+(\.\d+)?)*[\s\n]*?)/
28
28
 
29
29
  expect(subject).to match(advisory_pattern)
30
- expect(subject).to include("Vulnerabilities found!")
31
- end
32
- end
33
-
34
- context "when auditing a secure bundle" do
35
- let(:bundle) { 'secure' }
36
- let(:directory) { File.join('spec','bundle',bundle) }
37
-
38
- subject do
39
- Dir.chdir(directory) { sh(command) }
40
- end
41
-
42
- it "should print nothing when everything is fine" do
43
- expect(subject.strip).to eq("No vulnerabilities found")
30
+ expect(subject).to include("Leaks found!")
44
31
  end
45
32
  end
46
33
 
47
34
  describe "update" do
48
35
 
49
36
  let(:update_command) { "#{command} update" }
50
- let(:bundle) { 'secure' }
37
+ let(:bundle) { 'unpatched_gems' }
51
38
  let(:directory) { File.join('spec','bundle',bundle) }
52
39
 
53
40
  subject do
@@ -32,7 +32,7 @@ describe Scanner do
32
32
 
33
33
  it "should match unpatched gems to their advisories" do
34
34
  expect(subject.all? { |result|
35
- result.advisory.vulnerable?(result.gem.version)
35
+ result.advisory.leaky?(result.gem.version)
36
36
  }).to be_truthy
37
37
  end
38
38
 
@@ -46,16 +46,4 @@ describe Scanner do
46
46
  end
47
47
  end
48
48
  end
49
-
50
- context "when auditing a secure bundle" do
51
- let(:bundle) { 'secure' }
52
- let(:directory) { File.join('spec','bundle',bundle) }
53
- let(:scanner) { described_class.new(directory) }
54
-
55
- subject { scanner.scan.to_a }
56
-
57
- it "should print nothing when everything is fine" do
58
- expect(subject).to be_empty
59
- end
60
- end
61
49
  end
@@ -32,7 +32,7 @@ module Helpers
32
32
  def expect_update_to_update_repo!
33
33
  expect(Bundler::Plumber::Database).
34
34
  to receive(:system).
35
- with('git', 'reset', '--hard', 'origin/master').
35
+ with("git fetch --all; git reset --hard origin/master").
36
36
  and_call_original
37
37
  end
38
38
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler-leak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ombulabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-28 00:00:00.000000000 Z
11
+ date: 2019-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -49,6 +49,7 @@ email: hello@ombulabs.com
49
49
  executables:
50
50
  - bundle-leak
51
51
  - bundler-leak
52
+ - setup
52
53
  extensions: []
53
54
  extra_rdoc_files:
54
55
  - COPYING.txt
@@ -68,6 +69,7 @@ files:
68
69
  - Rakefile
69
70
  - bin/bundle-leak
70
71
  - bin/bundler-leak
72
+ - bin/setup
71
73
  - bundler-leak.gemspec
72
74
  - data/ruby-mem-advisory-db.ts
73
75
  - data/ruby-mem-advisory-db/.gitignore
@@ -106,8 +108,6 @@ files:
106
108
  - lib/bundler/plumber/version.rb
107
109
  - spec/advisory_spec.rb
108
110
  - spec/audit_spec.rb
109
- - spec/bundle/insecure_sources/Gemfile
110
- - spec/bundle/secure/Gemfile
111
111
  - spec/bundle/unpatched_gems/Gemfile
112
112
  - spec/cli_spec.rb
113
113
  - spec/database_spec.rb
@@ -1,39 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'rails', '3.2.12'
4
-
5
- # Bundle edge Rails instead:
6
- # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
-
8
- gem 'sqlite3', platform: [:mri, :rbx]
9
-
10
-
11
- # Gems used only for assets and not required
12
- # in production environments by default.
13
- group :assets do
14
- # gem 'sass-rails', '~> 3.2.3'
15
- # gem 'coffee-rails', '~> 3.2.1'
16
-
17
- # See https://github.com/sstephenson/execjs#readme for more supported runtimes
18
- # gem 'therubyracer', :platforms => :ruby
19
-
20
- # gem 'uglifier', '>= 1.0.3'
21
- end
22
-
23
- gem 'jquery-rails', :git => 'git://github.com/rails/jquery-rails.git',
24
- :tag => 'v2.2.1'
25
-
26
- # To use ActiveModel has_secure_password
27
- # gem 'bcrypt-ruby', '~> 3.0.0'
28
-
29
- # To use Jbuilder templates for JSON
30
- # gem 'jbuilder'
31
-
32
- # Use unicorn as the app server
33
- # gem 'unicorn'
34
-
35
- # Deploy with Capistrano
36
- # gem 'capistrano'
37
-
38
- # To use debugger
39
- # gem 'debugger'
@@ -1,38 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 4.2.7.1'
4
-
5
- # Bundle edge Rails instead:
6
- # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
-
8
- gem 'sqlite3', platform: [:mri, :rbx]
9
-
10
-
11
- # Gems used only for assets and not required
12
- # in production environments by default.
13
- group :assets do
14
- # gem 'sass-rails', '~> 3.2.3'
15
- # gem 'coffee-rails', '~> 3.2.1'
16
-
17
- # See https://github.com/sstephenson/execjs#readme for more supported runtimes
18
- # gem 'therubyracer', :platforms => :ruby
19
-
20
- # gem 'uglifier', '>= 1.0.3'
21
- end
22
-
23
- gem 'jquery-rails'
24
-
25
- # To use ActiveModel has_secure_password
26
- # gem 'bcrypt-ruby', '~> 3.0.0'
27
-
28
- # To use Jbuilder templates for JSON
29
- # gem 'jbuilder'
30
-
31
- # Use unicorn as the app server
32
- # gem 'unicorn'
33
-
34
- # Deploy with Capistrano
35
- # gem 'capistrano'
36
-
37
- # To use debugger
38
- # gem 'debugger'