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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a17d94c02c893f2f0e2ebbc0565c4bdeee62e841
4
- data.tar.gz: b7e2146b657e33b6f080335f72d4c9bf116da243
3
+ metadata.gz: 510b4680f1ccf044f2e4c08a252158f6a4894e4e
4
+ data.tar.gz: 6ac8f4301909045c6217a30cd44cdb0a8777f4e2
5
5
  SHA512:
6
- metadata.gz: c82eb35fa8a4337acd0a0fae4510b0c90dbf605953b5ac03e08d5c8a629d2a5a45ff7368ba8a66f2a17f75f3af611b0d95e8a42473461e2dc893e33e3b7a6515
7
- data.tar.gz: 11aa6caaac854bdde8718f132e11fc5be8ffc4a837ff69f86ad7d95e4e8df5a0429e51c6051532f1df6719236ec99ef914575494dfb1991ba093aa2e9b458768
6
+ metadata.gz: f3479b07251e76e68bb1ebc563a9f6386bd3892df8ac2b7fa3d711fec1bef6b4c5ca3c9c545525ca9368d2fc1a452e6a70305646a5c42c58b6a5a0ddf0138fd3
7
+ data.tar.gz: 126be50ce571b153e311634a92b02b0283d8ff2722841941374e3472920b1e7fdf96d8cf2d30efe13035fdace34fe86ab7eb63ee90702e85c4d4322fd0d0f8a2
data/.rspec CHANGED
@@ -1 +1,3 @@
1
1
  --color
2
+ --format documentation
3
+ --profile
data/.rubocop.yml CHANGED
@@ -8,5 +8,3 @@ MethodLength:
8
8
  Max: 30
9
9
  Documentation:
10
10
  Enabled: false
11
- AccessorMethodName:
12
- Enabled: false
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', '~> 2.8.0'
8
- gem 'rdoc', '~> 3.12'
9
- gem 'bundler', '~> 1.0'
10
- gem 'jeweler', '~> 2.0.1'
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
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.1 ruby lib
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.1"
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-10"
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
@@ -1,4 +1,6 @@
1
+ require 'frozen_gems/constants'
1
2
  require 'frozen_gems/freezer'
2
- require 'frozen_gems/accesser'
3
+ require 'frozen_gems/parser'
4
+ require 'frozen_gems/validator'
3
5
 
4
- include Accesser
6
+ include Validator
@@ -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(gemfile_path = 'Gemfile')
12
- gemfile_path = File.expand_path(gemfile_path)
13
- Freezer.new(gemfile_path).overwrite_gemfile
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
@@ -0,0 +1,2 @@
1
+ GEMFILE = 'Gemfile'
2
+ TMPFILE = 'Gemfile_for_frozen_gems'
@@ -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
- Dir.chdir(File.dirname(@gemfile_path)) do
10
- tmpfile_path = get_tmpfile_path
11
- FileUtils.cp(@gemfile_path, tmpfile_path)
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
- tmpfile_path = get_tmpfile_path
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 unfrozen_gems_hash
37
- hash = {}
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 unfrozen_gems
50
- regex = /^\s*gem ['"]([-\w]+)['"](,.*)?/
51
- gems = File.read(@gemfile_path).scan(regex).map do |g|
52
- g.first if g.last.nil?
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
@@ -0,0 +1,11 @@
1
+ module Validator
2
+ module_function
3
+
4
+ def gemfile?
5
+ File.exist?(@gemfile_path || GEMFILE)
6
+ end
7
+
8
+ def tmpfile?
9
+ File.exist?(@tmpfile_path || TMPFILE)
10
+ end
11
+ 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.1
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-10 00:00:00.000000000 Z
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: []
@@ -1,7 +0,0 @@
1
- module Accesser
2
- module_function
3
-
4
- def get_tmpfile_path
5
- File.expand_path('Gemfile_for_frozen_gems')
6
- end
7
- end