flutter_version_tool 1.0.1 → 1.0.2

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/fvt +48 -0
  3. data/lib/flutter_version_tool.rb +131 -102
  4. metadata +6 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30fc4b7e6fbcc9b8a500e93142f9146171b8dc1281db7ad28cdadb93a6348027
4
- data.tar.gz: d11c1654e3a8cc86f07c33e7ab19c7df00f988d285466f0b383dbb995705c9d9
3
+ metadata.gz: a1782e84416b5417e0f7906fd83283e00353631e6533afc629e4eddbe73bce69
4
+ data.tar.gz: 8b85c7cd81d7f7889ecf1e07b1764c2de6dc019792985f06357292a2c158bfdf
5
5
  SHA512:
6
- metadata.gz: 4e9201c10144571a5a59b74b83c2ec203a0a19f018a763cbfe78da1f270872ee3375623b06f4b8ddfd5ad52c85474d0ccffc72c7195b51a8fe23c1824cf9936b
7
- data.tar.gz: bc11db9bc1f6a7f988cb0cdee1378f7621f41c7881a7cf22944d3e8a0f5b9a6d46632558bb04c552689c350c99cde098c60a5427f7130ab6fbb0d9d943fdc5a4
6
+ metadata.gz: ba1449c5956148662132dbb6ab9e636d71bbee328c6f6650ae9f0f66b200affd63facf7fab828f254a3d0f264563fed87c11dded7afd566a09542b445c00aa1d
7
+ data.tar.gz: a1085aa3c7ba6621bada85118dc60d403549677d0a83915350188893e7ec5af8916a94d5989b7d3b51b7263c8dbae5df5a7aa73da78d9353c6e9cdec841ae92b
data/bin/fvt ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require 'flutter_version_tool'
5
+
6
+ class FVTExecutor
7
+
8
+ attr_accessor :options, :changingVersion, :changingBuild
9
+
10
+ def initialize
11
+ self.options = {}
12
+ self.changingVersion = false
13
+ self.changingBuild = false
14
+ end
15
+
16
+ def parse
17
+ OptionParser.new do |parser|
18
+ parser.banner = "Usage: fvt [options] version [pubspec path]"
19
+ parser.on("-v VERSION", "versionName value") do |v|
20
+ self.options[:version] = v
21
+ self.changingVersion = true
22
+ end
23
+ parser.on("-b BUILD", "versionCode value") do |b|
24
+ self.options[:build] = b
25
+ self.changingBuild = true
26
+ end
27
+ parser.on("--path PATH", "pubspec.yml path") do |p|
28
+ self.options[:path] = p
29
+ end
30
+ end.parse!
31
+ end
32
+
33
+ end
34
+
35
+ executor = FVTExecutor.new
36
+ executor.parse
37
+
38
+ fvt = executor.options[:path].nil? ? FlutterVersionTool.new : FlutterVersionTool.new(executor.options[:path])
39
+ p "Current pubspec app version is " + fvt.vFull
40
+
41
+ if executor.changingVersion
42
+ fvt.changeVersionName(executor.options[:version]);
43
+ p "New versionName (version): " + executor.options[:version]
44
+ end
45
+ if executor.changingBuild
46
+ fvt.changeVersionCode(executor.options[:build]);
47
+ p "New versionCode (build): " + executor.options[:build]
48
+ end
@@ -1,13 +1,13 @@
1
1
  require 'yaml'
2
2
 
3
3
  class FlutterVersionTool
4
- attr_reader :pubspecPath, :vName, :vCode, :vMajor, :vMinor, :vPatch
5
-
6
- def vFull
7
- return "#{@vMajor.to_s}.#{@vMinor.to_s}.#{@vPatch.to_s}+#{@vCode.to_s}"
8
- end
9
-
10
- def initialize(path = "pubspec.yaml")
4
+ attr_reader :pubspecPath, :vName, :vCode, :vMajor, :vMinor, :vPatch
5
+
6
+ def vFull
7
+ return "#{@vMajor.to_s}.#{@vMinor.to_s}.#{@vPatch.to_s}+#{@vCode.to_s}"
8
+ end
9
+
10
+ def initialize(path = "pubspec.yaml")
11
11
  # Load version from pubspec file
12
12
  #
13
13
  # Example:
@@ -16,105 +16,134 @@ class FlutterVersionTool
16
16
  # Arguments:
17
17
  # pubspecPath: (String)
18
18
 
19
- @pubspecPath = path
20
-
21
- begin
22
- pubspec = YAML::load_file(@pubspecPath)
23
- rescue
24
- raise 'Read pubspec.yaml failed'
19
+ @pubspecPath = path
20
+
21
+ begin
22
+ pubspec = YAML::load_file(@pubspecPath)
23
+ rescue
24
+ raise 'Read pubspec.yaml failed'
25
+ end
26
+
27
+ version = pubspec["version"]
28
+
29
+ begin
30
+ if not version.include? "+"
31
+ raise
25
32
  end
26
-
27
- version = pubspec["version"]
28
-
29
- begin
30
- if not version.include? "+"
31
- raise
32
- end
33
- v_sections = version.split("+")
34
- @vName = v_sections[0].to_s
35
- @vCode = v_sections[1].to_i
36
- rescue
37
- @noCode = true
38
- @vName = version
39
- @vCode = 0
33
+ v_sections = version.split("+")
34
+ @vName = v_sections[0].to_s
35
+ @vCode = v_sections[1].to_i
36
+ rescue
37
+ @noCode = true
38
+ @vName = version
39
+ @vCode = 0
40
+ end
41
+
42
+ parseSemVer(@vName)
43
+
44
+ # begin
45
+ # if not vName.include? "."
46
+ # raise
47
+ # end
48
+ # vName_sections = @vName.split(".")
49
+ # @vMajor = vName_sections[0].to_i
50
+ # @vMinor = vName_sections[1].to_i
51
+ # if (vName_sections.length() > 2)
52
+ # @vPatch = vName_sections[2].to_i
53
+ # else
54
+ # @vPatch = 0
55
+ # end
56
+ # rescue
57
+ # @vMajor = @vName.to_i
58
+ # @vMinor = 0
59
+ # @vPatch = 0
60
+ # end
61
+
62
+ end
63
+
64
+ private def parseSemVer(pVersion)
65
+ begin
66
+ if not pVersion.include? "."
67
+ raise
40
68
  end
41
-
42
- begin
43
- if not vName.include? "."
44
- raise
45
- end
46
- vName_sections = @vName.split(".")
47
- @vMajor = vName_sections[0].to_i
48
- @vMinor = vName_sections[1].to_i
49
- if (vName_sections.length() > 2)
50
- @vPatch = vName_sections[2].to_i
51
- else
52
- @vPatch = 0
53
- end
54
- rescue
55
- @vMajor = @vName.to_i
56
- @vMinor = 0
57
- @vPatch = 0
69
+ pVersion_sections = pVersion.split(".")
70
+ @vMajor = pVersion_sections[0].to_i
71
+ @vMinor = pVersion_sections[1].to_i
72
+ if (pVersion_sections.length() > 2)
73
+ @vPatch = pVersion_sections[2].to_i
74
+ else
75
+ @vPatch = 0
58
76
  end
59
-
60
- end
61
-
62
- private def commitChanges
63
- fileString = File.read(@pubspecPath)
64
- newFileString = fileString.gsub(/^version:\s.+/, "version: "+self.vFull)
65
- File.write(@pubspecPath, newFileString)
66
- end
67
-
68
- def changeVersionCode(p_code)
69
- # Change version build number directly to any number
70
- #
71
- # Example:
72
- # >> fvt.changeVersionCode(140)
73
- # Arguments:
74
- # p_code: (Integer)
75
-
76
- @vCode=p_code.to_i
77
- commitChanges
77
+ rescue
78
+ @vMajor = pVersion.to_i
79
+ @vMinor = 0
80
+ @vPatch = 0
78
81
  end
79
-
80
- def bumpVersionCode(increment = 1)
81
- # Increment version build number (default by +1)
82
- #
83
- # Example:
84
- # >> fvt.bumpVersionCode(1)
85
- # Arguments:
86
- # increment: (Integer)
87
-
88
- @vCode= @vCode+increment
89
- commitChanges
90
- end
91
-
92
- def bumpVersionName(level = "major", increment = 1)
93
- # Increment version name semantically (default major version by +1)
94
- #
95
- # Example:
96
- # >> fvt.bumpVersionName("patch")
97
- # Arguments:
98
- # level: ("major","minor","patch")
99
- # increment: (Integer)
100
-
101
- case level
102
- when "major"
103
- @vMajor=@vMajor+increment
104
- @vMinor=0
105
- @vPatch=0
106
- puts "Bumping major"
107
- when "minor"
108
- @vMinor=@vMinor+increment
109
- @vPatch=0
110
- puts "Bumping minor"
111
- when "patch"
112
- @vPatch=@vPatch+increment
113
- puts "Bumping patch"
114
- else puts "Nope"
115
- end
116
- commitChanges
82
+ end
83
+
84
+ private def commitChanges
85
+ fileString = File.read(@pubspecPath)
86
+ newFileString = fileString.gsub(/^version:\s.+/, "version: " + self.vFull)
87
+ File.write(@pubspecPath, newFileString)
88
+ end
89
+
90
+ def changeVersionName(p_name)
91
+ @vName = p_name.to_s
92
+ parseSemVer(@vName)
93
+ commitChanges
94
+ end
95
+
96
+ def changeVersionCode(p_code)
97
+ # Change version build number directly to any number
98
+ #
99
+ # Example:
100
+ # >> fvt.changeVersionCode(140)
101
+ # Arguments:
102
+ # p_code: (Integer)
103
+
104
+ @vCode = p_code.to_i
105
+ commitChanges
106
+ end
107
+
108
+ def bumpVersionCode(increment = 1)
109
+ # Increment version build number (default by +1)
110
+ #
111
+ # Example:
112
+ # >> fvt.bumpVersionCode(1)
113
+ # Arguments:
114
+ # increment: (Integer)
115
+
116
+ @vCode = @vCode + increment
117
+ commitChanges
118
+ end
119
+
120
+ def bumpVersionName(level = "major", increment = 1)
121
+ # Increment version name semantically (default major version by +1)
122
+ #
123
+ # Example:
124
+ # >> fvt.bumpVersionName("patch")
125
+ # Arguments:
126
+ # level: ("major","minor","patch")
127
+ # increment: (Integer)
128
+
129
+ case level
130
+ when "major"
131
+ @vMajor = @vMajor + increment
132
+ @vMinor = 0
133
+ @vPatch = 0
134
+ puts "Bumping major"
135
+ when "minor"
136
+ @vMinor = @vMinor + increment
137
+ @vPatch = 0
138
+ puts "Bumping minor"
139
+ when "patch"
140
+ @vPatch = @vPatch + increment
141
+ puts "Bumping patch"
142
+ else
143
+ puts "Nope"
117
144
  end
118
-
145
+ commitChanges
119
146
  end
147
+
148
+ end
120
149
 
metadata CHANGED
@@ -1,21 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flutter_version_tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rim Ganiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-18 00:00:00.000000000 Z
11
+ date: 2023-04-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A tool for maintaning Flutter project versioning
14
14
  email: cj_rimix@rambler.ru
15
- executables: []
15
+ executables:
16
+ - fvt
16
17
  extensions: []
17
18
  extra_rdoc_files: []
18
19
  files:
20
+ - bin/fvt
19
21
  - lib/flutter_version_tool.rb
20
22
  homepage: https://rubygems.org/gems/flutter_version_tool
21
23
  licenses:
@@ -36,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
36
38
  - !ruby/object:Gem::Version
37
39
  version: '0'
38
40
  requirements: []
39
- rubygems_version: 3.3.7
41
+ rubygems_version: 3.4.6
40
42
  signing_key:
41
43
  specification_version: 4
42
44
  summary: Flutter Version Tool