incr 0.6.0 → 0.7.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 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.