captive-release 0.7.3 → 0.8.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: 966ee82beba3b3ff7f405347ecbddb3e0ef87db6729827780f1e05de30f9ce27
4
- data.tar.gz: 52d6b86608df09cb308c967546cb4144ba79f9a59b235720177b8a65b29ce49c
3
+ metadata.gz: '028b75d95da7f0c5ae533774c1fc1bc353234bd569a58f9c83798e0519a592c2'
4
+ data.tar.gz: bb5a5ffbbaf260dad04cd28afb303c476ae5dff295454bbf1b95708bfba58126
5
5
  SHA512:
6
- metadata.gz: 14adac228194b1c7283010d4ac833e9a53bf73972945c6b4aec31267b4dbc576bc5b1453af9534cd7ad63077a44e78c16e97aaa307fdc0f638a9060efefdb675
7
- data.tar.gz: 7bc89f9fb2e4aa337db60ff78e32883640ea519dffd4af51c5dbf51a0f530abcda03563fee19b5ea5c65af9f4f7cccb7f86d14fb8166ec45ccd6fcf6255e2124
6
+ metadata.gz: ee228007f5b5cb48c7d2fb2402a019c287b4d2a8dc1e37df0e6a0f3c159af97ce4aa3e5e95e57d6b1b947538414c081ea78a998a056a8db80770d263ea3371d9
7
+ data.tar.gz: 1a0ae25c85c204a1ac5431a4d1e704b67715b77c281763b103ff90da04a1a8550b628f4f1e3a785d743a1ec78b9c2d02b328ef1bee37ec5955085ad12b59666d
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CaptiveRelease
4
- VERSION = "0.7.3"
4
+ VERSION = "0.8.0"
5
5
  end
@@ -3,8 +3,9 @@
3
3
  module CaptiveRelease
4
4
  # Quels fichiers d'un dépôt portent une version, et sous quel format.
5
5
  class VersionDetector
6
- RUBY_VERSION_PATTERN = /VERSION\s*=\s*["'].+?["']/
7
- GRADLE_PATH = %w[android app build.gradle].freeze
6
+ RUBY_VERSION_PATTERN = /VERSION\s*=\s*["'].+?["']/
7
+ EXPO_APP_JSON_PATTERN = /"expo"\s*:.*"version"\s*:/m
8
+ GRADLE_PATH = %w[android app build.gradle].freeze
8
9
 
9
10
  def self.scan(root = ".")
10
11
  new(root).scan
@@ -17,6 +18,7 @@ module CaptiveRelease
17
18
  def scan
18
19
  by_name("package.json", "package_json") +
19
20
  by_name("app.config.js", "app_config_js") +
21
+ by_content(%w[** app.json], "app_json", EXPO_APP_JSON_PATTERN) +
20
22
  by_content(%w[lib ** version.rb], "ruby_version", RUBY_VERSION_PATTERN) +
21
23
  by_name("VERSION", "plain") +
22
24
  android_gradle +
@@ -23,7 +23,7 @@ module CaptiveRelease
23
23
 
24
24
  def write(content, old_version, new_version) = @write.call(content, old_version, new_version)
25
25
 
26
- # Quatre des six formats ne diffèrent que par le motif qui capture la version et par la
26
+ # Cinq des sept formats ne diffèrent que par le motif qui capture la version et par la
27
27
  # forme du remplacement. Les décrire un par un faisait apparier leurs lambdas par Flay.
28
28
  #
29
29
  # Le motif qui retrouve la version à remplacer est dérivé de celui qui la capture : le
@@ -73,6 +73,10 @@ module CaptiveRelease
73
73
  "app_config_js" => by_label(/version:\s*/, "version: "),
74
74
  "android_gradle" => by_label(/versionName\s+/, "versionName "),
75
75
 
76
+ # Pas de JSON.parse : Expo tolère les virgules finales qu'il refuserait.
77
+ "app_json" => by_pattern(/"version"\s*:\s*"(.+?)"/, %("version": "x.y.z")) \
78
+ { |_, nouvelle| %("version": "#{nouvelle}") },
79
+
76
80
  "ios_plist" => by_pattern(
77
81
  %r{<key>CFBundleShortVersionString</key>\s*<string>(.+?)</string>},
78
82
  "CFBundleShortVersionString key",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: captive-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Captive Studio