gemfiler 0.1.2 → 0.1.3
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 +7 -0
- data/Gemfile +0 -3
- data/Gemfiler.gemspec +1 -0
- data/README.md +55 -9
- data/Rakefile +5 -0
- data/lib/{Gemfiler → gemfiler}/bundler_shim.rb +1 -1
- data/lib/{Gemfiler → gemfiler}/cabinet.rb +0 -0
- data/lib/{Gemfiler → gemfiler}/cli.rb +4 -4
- data/lib/{Gemfiler → gemfiler}/filer.rb +0 -0
- data/lib/{Gemfiler → gemfiler}/output.rb +24 -10
- data/lib/{Gemfiler → gemfiler}/version.rb +1 -1
- data/lib/gemfiler.rb +9 -0
- metadata +36 -30
- data/lib/Gemfiler.rb +0 -9
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f966ab4ecc6fe450eba87b92d89ce39bd25b0386
|
4
|
+
data.tar.gz: 53314f72465bde315985d4f904f1f2f1190c295d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4ec8ee14b68dafefb322a10cd4917b503cb5f191f8e0aa2427b9e3904473c6500c9ddf1f7870bdd867a91c426e96dd9f8641e8e34b25b3000507f1329de95aea
|
7
|
+
data.tar.gz: b12ca4fabc9ebfeef18577caa5fd96fe0a780bf1bcda69d80e69efe70317ec26e89e7c4f23e1191d6ed0b54666c27b575b5c11a531741c292441b4621a2b8d03
|
data/Gemfile
CHANGED
data/Gemfiler.gemspec
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,70 @@
|
|
1
|
+
|
1
2
|
# Gemfiler
|
2
3
|
|
3
|
-
|
4
|
+
Gemfiler will take your Gemfile and make it nice. It will alphabetize and group everything correctly. It can also turn hash syntax into Ruby's 1.9 hash syntax, and align versions / options nicely.
|
4
5
|
|
5
6
|
## Installation
|
6
7
|
|
7
|
-
|
8
|
+
```gem install gemfiler```
|
9
|
+
|
8
10
|
|
9
|
-
|
11
|
+
## Usage
|
10
12
|
|
11
|
-
|
13
|
+
Once you've installed gemfiler, you'll get the ```gemfiler``` executable.
|
12
14
|
|
13
|
-
|
15
|
+
* cd into the project with the gemfile you'd like to prettify.
|
16
|
+
* type ```gemfiler file``` (If you'd like to specify a Gemfile, type ```gemfiler file OtherGemfile```)
|
17
|
+
* Voila!
|
14
18
|
|
15
|
-
|
19
|
+
To see a list of options, type ```gemfiler help file```
|
16
20
|
|
17
|
-
|
21
|
+
## Additional Options
|
18
22
|
|
19
|
-
|
23
|
+
```gemfiler file --ruby19_hashes``` Will use the 1.9 hash syntax
|
24
|
+
|
25
|
+
```gemfiler file --nice_spaces``` Will align all versions / options
|
26
|
+
|
27
|
+
## Before / After
|
28
|
+
|
29
|
+
### Before
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
source 'http://rubygems.org'
|
33
|
+
|
34
|
+
gem 'state_machine'
|
35
|
+
gem 'validates_timeliness', '~> 3.0.2'
|
36
|
+
gem 'gmaps4rails'
|
37
|
+
gem 'chronic'
|
38
|
+
gem 'paper_trail'
|
39
|
+
gem 'no_peeping_toms', :git => 'git://github.com/patmaddox/no-peeping-toms.git'
|
40
|
+
gem "tire", :git => 'git@github.com:bobbytables/tire.git', :ref => '543f4b410f6c7b4ce62b4b866fb45a2339642b16'
|
41
|
+
gem 'draper', '~> 0.9'
|
42
|
+
|
43
|
+
```
|
44
|
+
|
45
|
+
### After
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
source :rubygems
|
49
|
+
|
50
|
+
gem 'chronic'
|
51
|
+
gem 'draper', '~> 0.9'
|
52
|
+
gem 'gmaps4rails'
|
53
|
+
gem 'no_peeping_toms', git: 'git://github.com/patmaddox/no-peeping-toms.git'
|
54
|
+
gem 'paper_trail'
|
55
|
+
gem 'state_machine'
|
56
|
+
gem 'tire', git: 'git@github.com:bobbytables/tire.git', ref: '543f4b410f6c7b4ce62b4b866fb45a2339642b16'
|
57
|
+
gem 'validates_timeliness', '~> 3.0.2'
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
|
62
|
+
## Gotchas
|
63
|
+
Gemfiler works by acting like Bundler, it executes the Gemfile under a shim, and passes all of the gems as objects around Gemfiler.
|
64
|
+
|
65
|
+
* Comments go away (Working on this)
|
66
|
+
* Statements will go away, if you have any if statements, or anything other than bundler commands, it will either fail or remove the statement.
|
20
67
|
|
21
|
-
TODO: Write usage instructions here
|
22
68
|
|
23
69
|
## Contributing
|
24
70
|
|
data/Rakefile
CHANGED
File without changes
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require
|
1
|
+
require "awesome_print"
|
2
2
|
|
3
3
|
module Gemfiler
|
4
4
|
class CLI < Thor
|
5
5
|
|
6
|
-
desc
|
7
|
-
method_options nice_spaces: :boolean, ruby19_hashes: :boolean
|
8
|
-
def file(gemfile=
|
6
|
+
desc "file", "Organizes your Gemfile."
|
7
|
+
method_options nice_spaces: :boolean, ruby19_hashes: :boolean, annotate: :boolean
|
8
|
+
def file(gemfile="Gemfile")
|
9
9
|
gemfile = "#{Dir.pwd}/#{gemfile}"
|
10
10
|
|
11
11
|
cabinet = Gemfiler::Cabinet.new(gemfile)
|
File without changes
|
@@ -1,4 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "erb"
|
2
|
+
require "json"
|
3
|
+
require "net/http"
|
2
4
|
|
3
5
|
module Gemfiler
|
4
6
|
class Output
|
@@ -10,13 +12,13 @@ module Gemfiler
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def write(gemfile)
|
13
|
-
File.open(gemfile,
|
15
|
+
File.open(gemfile, "w") do |file|
|
14
16
|
file.write(content)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
20
|
def content
|
19
|
-
erb = ERB.new(File.read(File.expand_path(
|
21
|
+
erb = ERB.new(File.read(File.expand_path("../templates/gemfile.erb", __FILE__)), nil, "<>")
|
20
22
|
erb.result(binding)
|
21
23
|
end
|
22
24
|
|
@@ -28,7 +30,7 @@ module Gemfiler
|
|
28
30
|
end
|
29
31
|
|
30
32
|
def gemspec
|
31
|
-
filer.shim.gemspec? ?
|
33
|
+
filer.shim.gemspec? ? "gemspec" : ""
|
32
34
|
end
|
33
35
|
|
34
36
|
def ruby
|
@@ -39,7 +41,7 @@ module Gemfiler
|
|
39
41
|
parts << hash_keyvalue(:engine_version, version_info[:engine_version]) if version_info[:engine_version]
|
40
42
|
end
|
41
43
|
|
42
|
-
parts.join(
|
44
|
+
parts.join(", ")
|
43
45
|
end
|
44
46
|
|
45
47
|
def uncategorized_gems
|
@@ -60,7 +62,7 @@ module Gemfiler
|
|
60
62
|
end
|
61
63
|
|
62
64
|
def spacer
|
63
|
-
|
65
|
+
" "
|
64
66
|
end
|
65
67
|
|
66
68
|
def type_value(value)
|
@@ -90,18 +92,30 @@ module Gemfiler
|
|
90
92
|
space_between = @options[:nice_spaces] ? longest_gem_name(groups) - gem_name.length : 0
|
91
93
|
|
92
94
|
if g[:version]
|
93
|
-
line << (
|
95
|
+
line << (" " * space_between) + "'#{g[:version]}'"
|
94
96
|
elsif (g.length - 1) > 0
|
95
|
-
line << (
|
97
|
+
line << (" " * space_between) + g.inject([]) do |options, (key, value)|
|
96
98
|
if key != :name
|
97
99
|
options << hash_keyvalue(key, value)
|
98
100
|
end
|
99
101
|
|
100
102
|
options
|
101
|
-
end.join(
|
103
|
+
end.join(", ")
|
102
104
|
end
|
103
105
|
|
104
|
-
|
106
|
+
annotation = ""
|
107
|
+
|
108
|
+
if @options[:annotate]
|
109
|
+
puts "-- Annotating #{gem_name}"
|
110
|
+
uri = URI.parse("https://rubygems.org/api/v1/gems/#{gem_name}.json")
|
111
|
+
response = Net::HTTP.get_response(uri)
|
112
|
+
parsed = JSON.load(response.body)
|
113
|
+
info = parsed['info']
|
114
|
+
|
115
|
+
annotation = " # #{info}"
|
116
|
+
end
|
117
|
+
|
118
|
+
line.join(", ") + annotation
|
105
119
|
end
|
106
120
|
end
|
107
121
|
end
|
data/lib/gemfiler.rb
ADDED
metadata
CHANGED
@@ -1,62 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemfiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Robert Ross
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-03-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: thor
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0.16'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0.16'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '2.11'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '2.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: awesome_print
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '0'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
description: Gemfiler makes your Gemfile pretty.
|
@@ -67,22 +74,22 @@ executables:
|
|
67
74
|
extensions: []
|
68
75
|
extra_rdoc_files: []
|
69
76
|
files:
|
70
|
-
- .gitignore
|
71
|
-
- .rspec
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
72
79
|
- Gemfile
|
73
80
|
- Gemfiler.gemspec
|
74
81
|
- LICENSE
|
75
82
|
- README.md
|
76
83
|
- Rakefile
|
77
84
|
- bin/gemfiler
|
78
|
-
- lib/
|
79
|
-
- lib/
|
80
|
-
- lib/
|
81
|
-
- lib/
|
82
|
-
- lib/
|
83
|
-
- lib/
|
84
|
-
- lib/Gemfiler/version.rb
|
85
|
+
- lib/gemfiler.rb
|
86
|
+
- lib/gemfiler/bundler_shim.rb
|
87
|
+
- lib/gemfiler/cabinet.rb
|
88
|
+
- lib/gemfiler/cli.rb
|
89
|
+
- lib/gemfiler/filer.rb
|
90
|
+
- lib/gemfiler/output.rb
|
85
91
|
- lib/gemfiler/templates/gemfile.erb
|
92
|
+
- lib/gemfiler/version.rb
|
86
93
|
- spec/bundler_shim_spec.rb
|
87
94
|
- spec/cabinet_spec.rb
|
88
95
|
- spec/filer_spec.rb
|
@@ -94,27 +101,26 @@ files:
|
|
94
101
|
- spec/support/gemfiles/SampleGemfileForOutput
|
95
102
|
homepage: ''
|
96
103
|
licenses: []
|
104
|
+
metadata: {}
|
97
105
|
post_install_message:
|
98
106
|
rdoc_options: []
|
99
107
|
require_paths:
|
100
108
|
- lib
|
101
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
-
none: false
|
103
110
|
requirements:
|
104
|
-
- -
|
111
|
+
- - ">="
|
105
112
|
- !ruby/object:Gem::Version
|
106
113
|
version: '0'
|
107
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
115
|
requirements:
|
110
|
-
- -
|
116
|
+
- - ">="
|
111
117
|
- !ruby/object:Gem::Version
|
112
118
|
version: '0'
|
113
119
|
requirements: []
|
114
120
|
rubyforge_project:
|
115
|
-
rubygems_version:
|
121
|
+
rubygems_version: 2.2.2
|
116
122
|
signing_key:
|
117
|
-
specification_version:
|
123
|
+
specification_version: 4
|
118
124
|
summary: Gemfiler knows how to make Gemfiles organized and reader friendly.
|
119
125
|
test_files:
|
120
126
|
- spec/bundler_shim_spec.rb
|
data/lib/Gemfiler.rb
DELETED