frozen_gems 0.0.1 → 0.0.2
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/.rspec +2 -0
- data/.rubocop.yml +0 -2
- data/Gemfile +4 -5
- data/README.rdoc +6 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/frozen_gems.gemspec +8 -9
- data/lib/frozen_gems.rb +4 -2
- data/lib/frozen_gems/cli.rb +4 -4
- data/lib/frozen_gems/constants.rb +2 -0
- data/lib/frozen_gems/freezer.rb +21 -28
- data/lib/frozen_gems/parser.rb +30 -0
- data/lib/frozen_gems/validator.rb +11 -0
- metadata +7 -19
- data/lib/frozen_gems/accesser.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 510b4680f1ccf044f2e4c08a252158f6a4894e4e
|
4
|
+
data.tar.gz: 6ac8f4301909045c6217a30cd44cdb0a8777f4e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3479b07251e76e68bb1ebc563a9f6386bd3892df8ac2b7fa3d711fec1bef6b4c5ca3c9c545525ca9368d2fc1a452e6a70305646a5c42c58b6a5a0ddf0138fd3
|
7
|
+
data.tar.gz: 126be50ce571b153e311634a92b02b0283d8ff2722841941374e3472920b1e7fdf96d8cf2d30efe13035fdace34fe86ab7eb63ee90702e85c4d4322fd0d0f8a2
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
source 'http://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rake'
|
4
3
|
gem 'thor'
|
5
4
|
|
6
5
|
group :development do
|
7
|
-
gem 'rspec',
|
8
|
-
gem 'rdoc',
|
9
|
-
gem 'bundler',
|
10
|
-
gem 'jeweler',
|
6
|
+
gem 'rspec', '~> 2.8.0'
|
7
|
+
gem 'rdoc', '~> 3.12'
|
8
|
+
gem 'bundler', '~> 1.0'
|
9
|
+
gem 'jeweler', '~> 2.0.1'
|
11
10
|
gem 'simplecov'
|
12
11
|
gem 'rubocop'
|
13
12
|
end
|
data/README.rdoc
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
= frozen_gems
|
2
2
|
|
3
|
+
{<img src="https://badge.fury.io/rb/frozen_gems.png" alt="Gem Version" />}[http://badge.fury.io/rb/frozen_gems]
|
4
|
+
|
3
5
|
Write installed gems' versions in a Gemfile.
|
4
6
|
|
5
7
|
source 'http://rubygems.org'
|
@@ -30,6 +32,10 @@ freeze gems:
|
|
30
32
|
|
31
33
|
== Installation
|
32
34
|
|
35
|
+
$ gem install frozen_gems
|
36
|
+
|
37
|
+
or
|
38
|
+
|
33
39
|
$ git clone https://github.com/calorie/frozen_gems.git
|
34
40
|
$ cd frozen_gems
|
35
41
|
$ bundle install
|
data/Rakefile
CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "frozen_gems"
|
18
18
|
gem.homepage = "http://github.com/calorie/frozen_gems"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{write installed gems' versions to Gemfile}
|
21
|
-
gem.description = %Q{write installed gems' versions to Gemfile}
|
20
|
+
gem.summary = %Q{This gem write installed gems' versions to Gemfile}
|
21
|
+
gem.description = %Q{This gem write installed gems' versions to Gemfile}
|
22
22
|
gem.email = "s2g4t1n2@gmail.com"
|
23
23
|
gem.authors = ["Yuu Shigetani"]
|
24
24
|
# dependencies defined in Gemfile
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/frozen_gems.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: frozen_gems 0.0.
|
5
|
+
# stub: frozen_gems 0.0.2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "frozen_gems"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Yuu Shigetani"]
|
14
|
-
s.date = "2014-02-
|
15
|
-
s.description = "write installed gems' versions to Gemfile"
|
14
|
+
s.date = "2014-02-13"
|
15
|
+
s.description = "This gem write installed gems' versions to Gemfile"
|
16
16
|
s.email = "s2g4t1n2@gmail.com"
|
17
17
|
s.executables = ["freeze"]
|
18
18
|
s.extra_rdoc_files = [
|
@@ -31,22 +31,23 @@ Gem::Specification.new do |s|
|
|
31
31
|
"bin/freeze",
|
32
32
|
"frozen_gems.gemspec",
|
33
33
|
"lib/frozen_gems.rb",
|
34
|
-
"lib/frozen_gems/accesser.rb",
|
35
34
|
"lib/frozen_gems/cli.rb",
|
35
|
+
"lib/frozen_gems/constants.rb",
|
36
36
|
"lib/frozen_gems/freezer.rb",
|
37
|
+
"lib/frozen_gems/parser.rb",
|
38
|
+
"lib/frozen_gems/validator.rb",
|
37
39
|
"spec/frozen_gems_spec.rb",
|
38
40
|
"spec/spec_helper.rb"
|
39
41
|
]
|
40
42
|
s.homepage = "http://github.com/calorie/frozen_gems"
|
41
43
|
s.licenses = ["MIT"]
|
42
44
|
s.rubygems_version = "2.2.1"
|
43
|
-
s.summary = "write installed gems' versions to Gemfile"
|
45
|
+
s.summary = "This gem write installed gems' versions to Gemfile"
|
44
46
|
|
45
47
|
if s.respond_to? :specification_version then
|
46
48
|
s.specification_version = 4
|
47
49
|
|
48
50
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
-
s.add_runtime_dependency(%q<rake>, [">= 0"])
|
50
51
|
s.add_runtime_dependency(%q<thor>, [">= 0"])
|
51
52
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
52
53
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -55,7 +56,6 @@ Gem::Specification.new do |s|
|
|
55
56
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
56
57
|
s.add_development_dependency(%q<rubocop>, [">= 0"])
|
57
58
|
else
|
58
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
59
59
|
s.add_dependency(%q<thor>, [">= 0"])
|
60
60
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
61
61
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -65,7 +65,6 @@ Gem::Specification.new do |s|
|
|
65
65
|
s.add_dependency(%q<rubocop>, [">= 0"])
|
66
66
|
end
|
67
67
|
else
|
68
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
69
68
|
s.add_dependency(%q<thor>, [">= 0"])
|
70
69
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
71
70
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
data/lib/frozen_gems.rb
CHANGED
data/lib/frozen_gems/cli.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'fileutils'
|
3
2
|
|
4
3
|
class Cli < Thor
|
5
4
|
include Thor::Actions
|
@@ -8,8 +7,9 @@ class Cli < Thor
|
|
8
7
|
|
9
8
|
desc 'gems [GEMFILE_PATH]',
|
10
9
|
"Write installed gems' versions to Gemfile"
|
11
|
-
def gems(
|
12
|
-
|
13
|
-
|
10
|
+
def gems(gemfile = GEMFILE)
|
11
|
+
gemfile = File.expand_path(gemfile)
|
12
|
+
abort "#{gemfile} is directory." if File.directory?(gemfile)
|
13
|
+
Freezer.new(gemfile).overwrite_gemfile
|
14
14
|
end
|
15
15
|
end
|
data/lib/frozen_gems/freezer.rb
CHANGED
@@ -3,26 +3,21 @@ require 'fileutils'
|
|
3
3
|
class Freezer
|
4
4
|
def initialize(gemfile_path)
|
5
5
|
@gemfile_path = gemfile_path
|
6
|
+
@tmpfile_path = tmpfile_path
|
6
7
|
end
|
7
8
|
|
8
9
|
def overwrite_gemfile
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
overwrite
|
14
|
-
|
15
|
-
FileUtils.rm_f(@gemfile_path)
|
16
|
-
FileUtils.mv(tmpfile_path, @gemfile_path)
|
17
|
-
end
|
10
|
+
cp_gemfile
|
11
|
+
overwrite
|
12
|
+
replace_gemfile
|
18
13
|
end
|
19
14
|
|
20
15
|
def overwrite
|
21
|
-
|
16
|
+
return unless gemfile? && tmpfile?
|
22
17
|
gemfile = File.open(@gemfile_path)
|
23
|
-
tmpfile = File.open(tmpfile_path, 'w')
|
18
|
+
tmpfile = File.open(@tmpfile_path, 'w')
|
24
19
|
regex = /^\s*gem ['"]([-\w]+)['"](,.*)?/
|
25
|
-
gems_hash = unfrozen_gems_hash
|
20
|
+
gems_hash = Parser.new(@gemfile_path).unfrozen_gems_hash
|
26
21
|
|
27
22
|
gemfile.each do |line|
|
28
23
|
name = line.scan(regex).flatten.first
|
@@ -31,26 +26,24 @@ class Freezer
|
|
31
26
|
end
|
32
27
|
tmpfile.write(line)
|
33
28
|
end
|
29
|
+
|
30
|
+
gemfile.close
|
31
|
+
tmpfile.close
|
34
32
|
end
|
35
33
|
|
36
|
-
def
|
37
|
-
|
38
|
-
gems = unfrozen_gems
|
39
|
-
regex = /(\w+(\-\w+)*)\s+\((\d+\.\d+\.\d+(\.\d+)*)\)/m
|
40
|
-
gems_info = `bundle exec gem list`.scan(regex)
|
41
|
-
gems_info.each do |info|
|
42
|
-
info.compact!
|
43
|
-
name, version = info.first, info.last
|
44
|
-
hash[name] = version if gems.include?(name)
|
45
|
-
end
|
46
|
-
hash
|
34
|
+
def tmpfile_path
|
35
|
+
File.join(File.dirname(@gemfile_path), TMPFILE)
|
47
36
|
end
|
48
37
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
|
38
|
+
def cp_gemfile
|
39
|
+
return unless gemfile?
|
40
|
+
FileUtils.cp(@gemfile_path, @tmpfile_path)
|
41
|
+
end
|
42
|
+
|
43
|
+
def replace_gemfile
|
44
|
+
if gemfile? && tmpfile?
|
45
|
+
FileUtils.rm_f(@gemfile_path)
|
46
|
+
FileUtils.mv(@tmpfile_path, @gemfile_path)
|
53
47
|
end
|
54
|
-
gems.compact
|
55
48
|
end
|
56
49
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class Parser
|
2
|
+
def initialize(gemfile_path)
|
3
|
+
@gemfile_path = gemfile_path
|
4
|
+
end
|
5
|
+
|
6
|
+
def unfrozen_gems_hash
|
7
|
+
return {} unless gemfile?
|
8
|
+
hash = {}
|
9
|
+
gems = unfrozen_gems
|
10
|
+
regex = /(\w+(\-\w+)*)\s+\((\d+\.\d+\.\d+(\.\d+)*)\)/m
|
11
|
+
gems_info = Dir.chdir(File.dirname(@gemfile_path)) do
|
12
|
+
`bundle exec gem list`.scan(regex)
|
13
|
+
end
|
14
|
+
gems_info.each do |info|
|
15
|
+
info.compact!
|
16
|
+
name, version = info.first, info.last
|
17
|
+
hash[name] = version if gems.include?(name)
|
18
|
+
end
|
19
|
+
hash
|
20
|
+
end
|
21
|
+
|
22
|
+
def unfrozen_gems
|
23
|
+
return [] unless gemfile?
|
24
|
+
regex = /^\s*gem ['"]([-\w]+)['"](,.*)?/
|
25
|
+
gems = File.read(@gemfile_path).scan(regex).map do |g|
|
26
|
+
g.first if g.last.nil?
|
27
|
+
end
|
28
|
+
gems.compact
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frozen_gems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuu Shigetani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rake
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: thor
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,7 +108,7 @@ dependencies:
|
|
122
108
|
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '0'
|
125
|
-
description: write installed gems' versions to Gemfile
|
111
|
+
description: This gem write installed gems' versions to Gemfile
|
126
112
|
email: s2g4t1n2@gmail.com
|
127
113
|
executables:
|
128
114
|
- freeze
|
@@ -142,9 +128,11 @@ files:
|
|
142
128
|
- bin/freeze
|
143
129
|
- frozen_gems.gemspec
|
144
130
|
- lib/frozen_gems.rb
|
145
|
-
- lib/frozen_gems/accesser.rb
|
146
131
|
- lib/frozen_gems/cli.rb
|
132
|
+
- lib/frozen_gems/constants.rb
|
147
133
|
- lib/frozen_gems/freezer.rb
|
134
|
+
- lib/frozen_gems/parser.rb
|
135
|
+
- lib/frozen_gems/validator.rb
|
148
136
|
- spec/frozen_gems_spec.rb
|
149
137
|
- spec/spec_helper.rb
|
150
138
|
homepage: http://github.com/calorie/frozen_gems
|
@@ -170,5 +158,5 @@ rubyforge_project:
|
|
170
158
|
rubygems_version: 2.2.1
|
171
159
|
signing_key:
|
172
160
|
specification_version: 4
|
173
|
-
summary: write installed gems' versions to Gemfile
|
161
|
+
summary: This gem write installed gems' versions to Gemfile
|
174
162
|
test_files: []
|