xot 0.1.16 → 0.1.19

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/VERSION +1 -1
  3. data/lib/xot/rake/util.rb +55 -0
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e6a18a9ea642c4ac20d70096dddf5eadf89e6de95b093940402e5cefa746be3
4
- data.tar.gz: b2118e8a68ca94e770ae1ef26f9f60a26f77ccf04e2fc7ba28b7fc89f4da1aa8
3
+ metadata.gz: 5fb49eae3a287d25e60a67e8a542649c61d396bae1e65f122351314e7375ce8e
4
+ data.tar.gz: 4d9f8dd14be58bbb2c21d3ddf759a04ce4045d595eca63dbf6bea74f563aad44
5
5
  SHA512:
6
- metadata.gz: 00c9091d6f2204c2a23d942acd788e157d0b14b1de2b5ea1e378725748cc36f37c46abdbe20a5a75a0070976210ef8f4405d03b356be26d53095d5c8010aa8fa
7
- data.tar.gz: 6711e0296cea2b5fc0a7849322a65bd1bb3f8b70d0a81fec444bb4d52b5143b67ad8ee29fcb456334c7aec26975b59c12b5c6bc0ceba239a3525789e6f0f1ba6
6
+ metadata.gz: 01c90c5b9d531745c68400cc3d3246ed402c4e1f878a560a998624e10b028240e470720b65bf0a009e28feefa3e3ca4a8c7ea0e48617d9e545873a6a6a317b05
7
+ data.tar.gz: 286eff725200153c24cdb6dbd7346c1c20d8054a4dbac350bd5db970c092ddbc3531c1e6ed60d30d840d21914a48db37c9991fef33ae46f7e45aa02864cb3717
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.16
1
+ 0.1.19
@@ -10,6 +10,7 @@ module Xot
10
10
 
11
11
  module Rake
12
12
 
13
+ VERSION_NAME = 'VERSION'
13
14
 
14
15
  def modules ()
15
16
  env(:MODULES, []).map {|m| m::Module}
@@ -83,6 +84,60 @@ module Xot
83
84
  paths
84
85
  end
85
86
 
87
+ def filter_file (path, &block)
88
+ File.write path, block.call(File.read path)
89
+ end
90
+
91
+ def cd_sh (dir, cmd)
92
+ Dir.chdir dir do
93
+ $stderr.puts "(in #{Dir.pwd})"
94
+ sh cmd
95
+ end
96
+ end
97
+
98
+ def modified_files (dir: '.', hash: '@')
99
+ `git diff --name-only #{hash} -- #{dir}`.lines.map &:chomp
100
+ end
101
+
102
+ def version_path (dir = nil)
103
+ dir ? "#{dir}/#{VERSION_NAME}" : VERSION_NAME
104
+ end
105
+
106
+ def get_version (dir = nil)
107
+ File.readlines(version_path dir).first.chomp
108
+ end
109
+
110
+ def bump_version (index, version = get_version)
111
+ nums = version.split('.').map &:to_i
112
+ nums << 0 until nums.size > index
113
+ nums[index] += 1
114
+ nums.map!.with_index {|num, i| i > index ? 0 : num}
115
+ nums.pop while nums.last == 0 && nums.size >= 3
116
+ nums.join '.'
117
+ end
118
+
119
+ def bump_version_file (index, dir: nil)
120
+ newver = bump_version index, get_version(dir)
121
+ File.write version_path(dir), newver
122
+ newver
123
+ end
124
+
125
+ def update_and_tag_version (index, dir: nil, &block)
126
+ raise 'modified files exist' unless modified_files.empty?
127
+
128
+ message = ENV['message']
129
+ raise 'no message' unless message
130
+
131
+ newver = bump_version_file index, dir: dir
132
+ raise 'version is not updated' unless modified_files == [version_path(dir)]
133
+
134
+ block.call if block
135
+
136
+ sh %( git add -u )
137
+ sh %( git commit -m "#{message}" )
138
+ sh %( git tag -a -m "#{message}" v#{newver} )
139
+ end
140
+
86
141
  def compile_erb (path, out)
87
142
  open(path) do |input|
88
143
  open(out, 'w') do |output|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-18 00:00:00.000000000 Z
11
+ date: 2020-12-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This library include some useful utility classes and functions for development
14
14
  with C++.