versionate 0.1.0
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/README.md +23 -0
- data/Rakefile +6 -0
- data/bin/versionate +9 -0
- data/lib/versionate.rb +30 -0
- data/lib/versionate/api_adapter.rb +14 -0
- data/lib/versionate/configuration.rb +9 -0
- data/lib/versionate/version.rb +3 -0
- data/lib/versionate/versioner.rb +56 -0
- metadata +123 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e31d4b61429a3510f9670c7fac0867ba74174a3c
|
4
|
+
data.tar.gz: 1b41cf0a17ae9ab03eaba0fce88e3a0a69421904
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1aaaf9ed9a1ab60625a880849fc1d34ddcee77305fc22d01cf8787a8515678391e130ca40f1db1c0f26de287044ead3f631dd4c2625b62e85229ac885c0e72b2
|
7
|
+
data.tar.gz: 288d298676254781fe08350bb7a4d971567422c2ee243a811214307a81a164f9aa73e2dbb18c0ca3d80acceb6ed852b005227dce5dfcaff61c507ed0789b2107
|
data/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Versionate
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
```bash
|
6
|
+
$ gem install versionate
|
7
|
+
```
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
Run the following command in a directory that has a Gemfile, and it will
|
12
|
+
automatically lock it to the latest version of that gem.
|
13
|
+
|
14
|
+
```bash
|
15
|
+
$ versionate
|
16
|
+
```
|
17
|
+
|
18
|
+
If, for some odd reason, your Gemfile is called something other than “Gemfile”,
|
19
|
+
you can specify the name as an argument to the command, like this:
|
20
|
+
|
21
|
+
```bash
|
22
|
+
$ versionate file_with_gems.rb
|
23
|
+
```
|
data/Rakefile
ADDED
data/bin/versionate
ADDED
data/lib/versionate.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require "versionate/version"
|
2
|
+
require "versionate/api_adapter"
|
3
|
+
require "versionate/configuration"
|
4
|
+
require "versionate/versioner"
|
5
|
+
|
6
|
+
module Versionate
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def versionate gemfile = "Gemfile"
|
11
|
+
versioner.versionate gemfile
|
12
|
+
end
|
13
|
+
|
14
|
+
def configure
|
15
|
+
yield config if block_given?
|
16
|
+
end
|
17
|
+
|
18
|
+
def config
|
19
|
+
@config ||= Versionate::Configuration.new
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def versioner
|
25
|
+
@versioner ||= Versionate::Versioner.new
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Versionate
|
2
|
+
class Versioner
|
3
|
+
GEM_REGEXP = /^\s*gem ['"](?<name>.+?)['"](?<extra>,.+$?)?/
|
4
|
+
|
5
|
+
def versionate(filename)
|
6
|
+
result = process filename
|
7
|
+
|
8
|
+
File.open filename, "w" do |file|
|
9
|
+
file.write result
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def latest_version_for(gem_name)
|
14
|
+
provider.info(gem_name.to_sym)["version"]
|
15
|
+
end
|
16
|
+
|
17
|
+
def process(filename)
|
18
|
+
orig_file = File.open(filename)
|
19
|
+
tmp = StringIO.new
|
20
|
+
|
21
|
+
orig_file.each do |line|
|
22
|
+
gem_name = gem_and_only_gem_from_line line
|
23
|
+
|
24
|
+
if gem_name
|
25
|
+
version = latest_version_for gem_name
|
26
|
+
tmp.puts "#{line.chomp}, '#{version}'"
|
27
|
+
else
|
28
|
+
tmp.puts line
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
orig_file.close
|
33
|
+
|
34
|
+
tmp.rewind
|
35
|
+
result = tmp.read
|
36
|
+
|
37
|
+
tmp.close
|
38
|
+
|
39
|
+
result
|
40
|
+
end
|
41
|
+
|
42
|
+
def gem_and_only_gem_from_line(line)
|
43
|
+
match = line.match GEM_REGEXP
|
44
|
+
return nil unless match
|
45
|
+
return nil if match[:extra]
|
46
|
+
|
47
|
+
match[:name]
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def provider
|
53
|
+
@provider ||= ApiAdapter.new.provider
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: versionate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sindre Moen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-09-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gems
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: coveralls
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.7'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.7'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.1'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.1'
|
83
|
+
description: Appends versions to your Gemfile's gem listings
|
84
|
+
email:
|
85
|
+
- sindrenm@gmail.com
|
86
|
+
executables:
|
87
|
+
- versionate
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- README.md
|
92
|
+
- Rakefile
|
93
|
+
- bin/versionate
|
94
|
+
- lib/versionate.rb
|
95
|
+
- lib/versionate/api_adapter.rb
|
96
|
+
- lib/versionate/configuration.rb
|
97
|
+
- lib/versionate/version.rb
|
98
|
+
- lib/versionate/versioner.rb
|
99
|
+
homepage: https://github.com/sindrenm/versionate
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
requirements: []
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.2.2
|
120
|
+
signing_key:
|
121
|
+
specification_version: 4
|
122
|
+
summary: Appends versions to your Gemfile's gem listings
|
123
|
+
test_files: []
|