flutter_version_tool 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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