gem_semver 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ab472ec5c7dc43ee537d0b5a6ec7c82790312d61df9b506f11bc611147c3b88
4
- data.tar.gz: a28cb79014dfb93174904de544a772919483a78b5f0636fc96f49fb9e40eb9f9
3
+ metadata.gz: 3ba2261aa38ac500be89e40337c09091e8380d9ba134e3065aad1ee3c6d7475c
4
+ data.tar.gz: e994170fe205032dc7c6ff13bbb8cb5505a40154747f97eb2b5465f4a04ac14a
5
5
  SHA512:
6
- metadata.gz: 353b98e12f1c2f72f647cdfde0c1416fe571547a1f2b596769cd86e6358277a3874dd6402de58af5660aa5e4b6befa32d329aae4f43738aa8bf7995c18caed52
7
- data.tar.gz: d8bf92927cbd25e2de5cd3b4f8f58793bd8df1a3049f0b6f8b0f09152768265e895d6d419e940ddafa3cdb8972344380f503cebf0b9176d348b425d2cca94cd2
6
+ metadata.gz: d2a494e049437eb3a63a8141fca6995867c860b388f47495248a0b04d722c0c162722ff0832502776e373827af1dbbd41643909d8ed641c7b90d3bbf71641c59
7
+ data.tar.gz: 2686adf851ce4520701afa94890754875ef085172cce83f7f627758d6cf34b6c9713e735b069653ef6fc3bbb39f72a229ab9b62985879819356eebb48c0c7e94
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gem_semver (0.2.0)
4
+ gem_semver (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,28 +1,30 @@
1
1
  # GemSemver
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/gem_semver`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ This gem adds the `bump` command to your path so you can update the version of your gem using semantic versioning. It does not create commits, it just updates
6
4
 
7
5
  ## Installation
8
6
 
9
- Add this line to your application's Gemfile:
7
+ Run this command in your terminal:
10
8
 
11
- ```ruby
12
- gem 'gem_semver'
13
- ```
9
+ $ gem install gem_semver
14
10
 
15
- And then execute:
11
+ ## Usage
16
12
 
17
- $ bundle
13
+ ```bump major```
18
14
 
19
- Or install it yourself as:
15
+ Updates the major version number and resets the minor and patch version numbers to 0. Also creates a backup of the Gemfile.lock and the version.rb.
20
16
 
21
- $ gem install gem_semver
17
+ ```bump minor```
22
18
 
23
- ## Usage
19
+ Updates the minor version number and resets the patch version number to 0. Also creates a backup of the Gemfile.lock and the version.rb.
20
+
21
+ ```bump patch```
22
+
23
+ Updates the patch version number. Also creates a backup of the Gemfile.lock and the version.rb.
24
+
25
+ ```bump clean```
24
26
 
25
- TODO: Write usage instructions here
27
+ Removes the .bak files created by running any of the version bumps. The backups are created just in case of a power outage or accidental shutoff before the update completes. Once you're happy with
26
28
 
27
29
  ## Development
28
30
 
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["dakotaleemusic@gmail.com"]
11
11
 
12
12
  spec.summary = %q{Updates the version of your Gem (use in conjunction with rake release)}
13
- spec.description = %q{Updates the version of your Gem (use in conjunction with rake release)}
13
+ spec.description = %q{Updates the version of your Gem (use in conjunction with rake release)Running `bump major` will result in a major version change, `bump minor` results in a minor version change, and `bump patch` results in a patch version change. Updating versions will create backups of the version file and the Gemfile.lock. You can delete these by running `bump clean`}
14
14
  spec.homepage = "https://github.com/DakotaLMartinez/gem_semver"
15
15
  spec.license = "MIT"
16
16
 
@@ -1,3 +1,3 @@
1
1
  module GemSemver
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -14,9 +14,11 @@ class GemSemver::VersionUpdater
14
14
  @output << "Whoops! Something went wrong"
15
15
  if !update_type
16
16
  @output << "Make sure you pass an argument: (bump minor)"
17
- elsif !["major", "minor", "patch"].include?(update_type)
17
+ elsif !["major", "minor", "patch", "clean"].include?(update_type)
18
18
  @output << "Make sure to specify the type of update (major | minor | patch)"
19
19
  @output << "Run one of these: bump major | bump minor | bump patch"
20
+ @output << "You can also run `bump clean` to remove the 2 .bak files"
21
+ @output << "created by updating the version number."
20
22
  elsif !File.exist?(version_file_path)
21
23
  @output << "Current directory doesn't have a version.rb file at: "
22
24
  @output << "#{Dir.pwd}/lib/#{gem_name}/version.rb"
@@ -29,23 +31,37 @@ class GemSemver::VersionUpdater
29
31
  @output << "gemspec and run bundle install to create it)."
30
32
  else
31
33
  @output.pop
34
+ handle_update_type
35
+ end
36
+ end
37
+
38
+ def handle_update_type
39
+ if update_type == "clean"
40
+ delete_bak_files
41
+ else
32
42
  update_version
33
43
  end
34
44
  end
35
45
 
46
+ def delete_bak_files
47
+ FileUtils.remove_file("#{version_file_path}.bak") if File.exist?("#{version_file_path}.bak")
48
+ FileUtils.remove_file(File.join(Dir.pwd, "Gemfile.lock.bak")) if File.exist?(File.join(Dir.pwd, "Gemfile.lock.bak"))
49
+ @output << ".bak files deleted"
50
+ end
51
+
36
52
  def update_version
37
53
  capture_version_number
38
54
  if update_type == "major"
39
- @current_major_version = (current_major_version.to_i + 1).to_s
55
+ @current_major_version = add_one(current_major_version)
40
56
  @current_minor_version = "0"
41
57
  @current_patch_version = "0"
42
58
  @output << "Major version change:"
43
59
  elsif update_type == "minor"
44
- @current_minor_version = (current_minor_version.to_i + 1).to_s
60
+ @current_minor_version = add_one(current_minor_version)
45
61
  @current_patch_version = "0"
46
62
  @output << "Minor version change:"
47
63
  elsif update_type == "patch"
48
- @current_patch_version = (current_patch_version.to_i + 1).to_s
64
+ @current_patch_version = add_one(current_patch_version)
49
65
  @output << "Patch version change:"
50
66
  end
51
67
  @new_version = [current_major_version, current_minor_version, current_patch_version].join('.')
@@ -62,6 +78,10 @@ class GemSemver::VersionUpdater
62
78
  @version_file.close
63
79
  end
64
80
 
81
+ def add_one(string)
82
+ (string.to_i + 1).to_s
83
+ end
84
+
65
85
  def update_version_file
66
86
  tmp = Tempfile.new("new_version")
67
87
  File.foreach(@version_file) do |line|
@@ -86,8 +106,7 @@ class GemSemver::VersionUpdater
86
106
  end
87
107
 
88
108
  def print_output
89
- output.each { |m| puts m }
109
+ output.each { |message| puts message }
90
110
  end
91
111
 
92
-
93
112
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_semver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DakotaLMartinez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-02 00:00:00.000000000 Z
11
+ date: 2018-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,7 +52,11 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: Updates the version of your Gem (use in conjunction with rake release)
55
+ description: Updates the version of your Gem (use in conjunction with rake release)Running
56
+ `bump major` will result in a major version change, `bump minor` results in a minor
57
+ version change, and `bump patch` results in a patch version change. Updating versions
58
+ will create backups of the version file and the Gemfile.lock. You can delete these
59
+ by running `bump clean`
56
60
  email:
57
61
  - dakotaleemusic@gmail.com
58
62
  executables: