incr 0.6.0 → 0.7.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: 9afe3ededb1966abd48644e8c02606dadf1a0a29af74b0287deab7079f034cd8
4
- data.tar.gz: eb60c16aae7d930ef2ceec4e957bf91f61d722b12f7fc5ea6aa76ed93fca514c
3
+ metadata.gz: 637f1247da8e04e0718b52ef9e2a10998615107658b6cc81b1229b9ed2d03e59
4
+ data.tar.gz: b79e61194d1eca2a6ee102c0a85fd9a0c2be352c041994a129e68b20932a811c
5
5
  SHA512:
6
- metadata.gz: 309db6be2b962833f4302e09ac0c2aca0d38e44937f035044d131a89d0ebfa8599ded9e00b2360acd509ba40b92d01fb123fc27fe375940b70db051cd09769c6
7
- data.tar.gz: 0be89efa75da4fc94e76d1ab6a6accff6eff3b5d3e39e11b86b10b9b7969f0595458c48c9702a3b8d4761a2fc848a90e9ebc75c2ea605e3f1f04982bbf698ca1
6
+ metadata.gz: 357ac98e744072a23294c56b527c4393efa9c73fb78dfee45b735c22e0f787475479099eb9dfaa35fd3d945b31fb7fdc522e55fabe98b98c8c2fc5f76c12549b
7
+ data.tar.gz: 0c829902f6251d72b5ef17ceeb49a831a2a7503916fc954ff0eb70ef139e2cbd1248ef33e6ffec467f5139c31f83200bf34c9bc4fd45c87d78aaf83ee2c1b4e4
data/README.md CHANGED
@@ -50,7 +50,7 @@ Here are some arguments that can be used with `incr`:
50
50
 
51
51
  Example:
52
52
  ```shell
53
- ~> incr --no-tag npm patch -d ./subprojects/web/ -t MyCustomTagPrefix/%s
53
+ ~> incr --no-tag -d ./subprojects/web/ -t MyCustomTagPrefix/%s npm patch
54
54
  ```
55
55
 
56
56
  This will :
@@ -52,7 +52,7 @@ module Incr
52
52
  old_version_pattern = format(pattern, old_version.to_s)
53
53
  new_version_pattern = format(pattern, new_version.to_s)
54
54
 
55
- Incr::Service::FileHelper.replace_once(@mix_file_filename, old_version_pattern, new_version_pattern)
55
+ Incr::Service::FileHelper.replace_string_once(@mix_file_filename, old_version_pattern, new_version_pattern)
56
56
  end
57
57
  end
58
58
  end
@@ -4,6 +4,14 @@ require 'sem_version'
4
4
  module Incr
5
5
  module Command
6
6
  class Npm
7
+ # pattern for any semver version, including pre-release label (ie. 1.0.0-alpha)
8
+ VERSION_PATTERN = "[\\w\\.\\-]*"
9
+
10
+ # pattern preceding the version in package.json and package-lock.json (v1 and v2)
11
+ LOOKBEHIND_PATTERNS = [
12
+ "\\A{[^{}]*\"version\": \"\\K",
13
+ "\"\": {[^{}]*\"version\": \"\\K"
14
+ ]
7
15
 
8
16
  def initialize(args, global_options)
9
17
  @segment = args[0]
@@ -25,8 +33,8 @@ module Incr
25
33
  old_version = SemVersion.new(file_version)
26
34
  new_version = Incr::Service::Version.increment_segment(old_version, @segment)
27
35
 
28
- Incr::Service::FileHelper.replace_once(@package_json_filename, version_pattern(old_version.to_s), version_pattern(new_version.to_s))
29
- Incr::Service::FileHelper.replace_once(@package_json_lock_filename, version_pattern(old_version.to_s), version_pattern(new_version.to_s))
36
+ replace_file_version(@package_json_filename, new_version.to_s)
37
+ replace_file_version(@package_json_lock_filename, new_version.to_s)
30
38
 
31
39
  new_tag = @tag_pattern % new_version.to_s
32
40
 
@@ -50,8 +58,11 @@ module Incr
50
58
  JSON.parse(IO.read(filename))
51
59
  end
52
60
 
53
- def version_pattern(version)
54
- "\"version\": \"#{version}\""
61
+ def replace_file_version(filename, new_version)
62
+ LOOKBEHIND_PATTERNS.each do |lookbehind_pattern|
63
+ pattern = /#{lookbehind_pattern}#{VERSION_PATTERN}/
64
+ Incr::Service::FileHelper.replace_regexp_once(filename, pattern, new_version)
65
+ end
55
66
  end
56
67
  end
57
68
  end
@@ -1,9 +1,13 @@
1
1
  module Incr
2
2
  module Service
3
3
  class FileHelper
4
- def self.replace_once(filename, old_text, new_text)
4
+ def self.replace_string_once(filename, old_text, new_text)
5
+ replace_regexp_once(/#{Regexp.escape(old_text)}/, new_text)
6
+ end
7
+
8
+ def self.replace_regexp_once(filename, pattern, replacement_text)
5
9
  old_content = File.read(filename)
6
- new_content = old_content.sub(/#{Regexp.escape(old_text)}/, new_text)
10
+ new_content = old_content.sub(pattern, replacement_text)
7
11
  File.open(filename, 'w') { |file| file << new_content }
8
12
  end
9
13
  end
data/lib/incr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Incr
2
- VERSION = '0.6.0'
2
+ VERSION = '0.7.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: incr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Couture
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-06 00:00:00.000000000 Z
11
+ date: 2022-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.3.0
55
- description:
55
+ description:
56
56
  email:
57
57
  - jcouture@gmail.com
58
58
  executables:
@@ -79,7 +79,7 @@ homepage: https://github.com/jcouture/incr
79
79
  licenses:
80
80
  - MIT
81
81
  metadata: {}
82
- post_install_message:
82
+ post_install_message:
83
83
  rdoc_options: []
84
84
  require_paths:
85
85
  - lib
@@ -95,8 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
- rubygems_version: 3.0.3
99
- signing_key:
98
+ rubygems_version: 3.3.3
99
+ signing_key:
100
100
  specification_version: 4
101
101
  summary: Tasteful utility to increment the version number and create a corresponding
102
102
  git tag.