rubysketch-solitaire 0.1.2 → 1.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 +4 -4
- data/.hooks/post-commit +37 -0
- data/ChangeLog.md +12 -0
- data/README.md +8 -0
- data/Rakefile +20 -1
- data/RubySolitaire/Base.lproj/Localizable.strings +1 -1
- data/RubySolitaire/MenuScreen.swift +1 -0
- data/RubySolitaire/ja.lproj/Localizable.strings +1 -1
- data/VERSION +1 -1
- data/fastlane/Fastfile +30 -20
- data/fastlane/metadata/en-US/promotional_text.txt +1 -1
- data/fastlane/metadata/en-US/release_notes.txt +1 -1
- data/fastlane/metadata/ja/release_notes.txt +1 -1
- data/lib/rubysketch/solitaire/common/settings.rb +5 -1
- data/lib/rubysketch/solitaire/klondike.rb +4 -0
- data/project.yml +5 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1059414d7ca15a74af2e758512fa602a749a541dd6e9001bc3dcf21165440c05
|
4
|
+
data.tar.gz: fd476a43f423c134ad24bb465cdd58014b7d4a93070f9c9f7b9be4352355e4d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe140def59fe539d72943e581379782769ef031c00b13ac235ae2686575c35632c7c4929c04e90aad9030daf797f9ad6daf1f1dfce65d9625f5f0c0fa14ddbec
|
7
|
+
data.tar.gz: 87f65df7fdff281bd900361709d80eb5a12dfe3c0445ead7010da3071e60162f99ab5ae74ac58e0229fd04a4f3221cafdf9b366558f2a79908a1041d7c10e7ac
|
data/.hooks/post-commit
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
|
4
|
+
def versions()
|
5
|
+
File.read(File.expand_path '../../ChangeLog.md', __dir__)
|
6
|
+
.split(/^\s*##\s*\[\s*v([\d\.]+)\s*\].*$/)
|
7
|
+
.slice(1..-1)
|
8
|
+
.each_slice(2)
|
9
|
+
.to_h
|
10
|
+
.transform_values do |changes|
|
11
|
+
changes.strip.lines
|
12
|
+
.group_by {|line| line[/^\W*(\[\w{2}\])/, 1]}
|
13
|
+
.map {|lang, lines|
|
14
|
+
[
|
15
|
+
lang[/\w+/],
|
16
|
+
lines.map {|line| line.sub(lang, '')}.join
|
17
|
+
]
|
18
|
+
}
|
19
|
+
.to_h
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
begin
|
25
|
+
ver = File.read(File.expand_path '../../VERSION', __dir__)[/[\d\.]+/]
|
26
|
+
changes = versions[ver].dig 'en'
|
27
|
+
tag = "v#{ver}"
|
28
|
+
tags = `git tag`.lines chomp: true
|
29
|
+
|
30
|
+
raise "no version found" unless ver
|
31
|
+
return if tags.include?(tag)
|
32
|
+
|
33
|
+
raise "no changes found" unless changes
|
34
|
+
|
35
|
+
puts "Tag '#{tag}'\n#{changes}"
|
36
|
+
`git tag -a -m "#{changes}" #{tag}`
|
37
|
+
end
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
# RubySolitaire ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [v1.0] - 2023-06-21
|
5
|
+
|
6
|
+
- [en]First public version
|
7
|
+
- [ja]最初の正式公開バージョン
|
8
|
+
|
9
|
+
|
10
|
+
## [v0.9.0] - 2023-06-20
|
11
|
+
|
12
|
+
- [en]First beta version
|
13
|
+
- [ja]最初のベータバージョン
|
14
|
+
|
15
|
+
|
4
16
|
## [v0.1.2] - 2023-06-16
|
5
17
|
|
6
18
|
- [en]Fixed some minor bugs
|
data/README.md
CHANGED
@@ -16,6 +16,14 @@
|
|
16
16
|
$ ruby -rrubysketch/solitaire -e ''
|
17
17
|
```
|
18
18
|
|
19
|
+
## How to release to AppStore
|
20
|
+
|
21
|
+
### Upload to TestFlight on local macOS
|
22
|
+
|
23
|
+
1. Edit ChangeLog.md and commit
|
24
|
+
2. Make sure you have a config.yml file
|
25
|
+
3. run "rake release:testflight"
|
26
|
+
|
19
27
|
## License
|
20
28
|
|
21
29
|
see [LICENSE](LICENSE) file
|
data/Rakefile
CHANGED
@@ -15,7 +15,8 @@ require 'rubysketch/solitaire/extension'
|
|
15
15
|
|
16
16
|
EXTENSIONS = [RubySketch::Solitaire]
|
17
17
|
|
18
|
-
|
18
|
+
GIT_URL = 'https://github.com/xord/solitaire'
|
19
|
+
GEMNAME = "rubysketch-#{target.name.downcase}"
|
19
20
|
|
20
21
|
PROJECT = 'project.yml'
|
21
22
|
CHANGELOG = 'ChangeLog.md'
|
@@ -55,6 +56,16 @@ def versions()
|
|
55
56
|
end
|
56
57
|
end
|
57
58
|
|
59
|
+
def clone_tmp(url, dir_name, &block)
|
60
|
+
Dir.chdir '/tmp' do
|
61
|
+
sh %( rm -rf #{dir_name} )
|
62
|
+
sh %( git clone #{url} #{dir_name} )
|
63
|
+
chdir dir_name do
|
64
|
+
block.call
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
58
69
|
|
59
70
|
default_tasks
|
60
71
|
build_ruby_gem
|
@@ -75,6 +86,14 @@ task :run do
|
|
75
86
|
sh %( ruby #{libs.join ' '} -Ilib -rrubysketch/solitaire -e '' )
|
76
87
|
end
|
77
88
|
|
89
|
+
task :testflight do |t|
|
90
|
+
clone_tmp GIT_URL, "#{APP_NAME}-#{t.name.split(':').last}" do
|
91
|
+
puts Dir.pwd
|
92
|
+
sh %( cp #{ENV['CONFIG_PATH'] or raise} . )
|
93
|
+
sh %( rake release:testflight )
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
78
97
|
|
79
98
|
namespace :xcode do
|
80
99
|
task :clean do
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1.0
|
data/fastlane/Fastfile
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
require 'yaml'
|
5
|
+
require 'base64'
|
5
6
|
|
6
7
|
|
7
8
|
def config(key, defval = nil)
|
@@ -18,6 +19,29 @@ def workspace()
|
|
18
19
|
"#{config :app_name}.xcworkspace"
|
19
20
|
end
|
20
21
|
|
22
|
+
def asc_api_key()
|
23
|
+
$api_key ||= app_store_connect_api_key(
|
24
|
+
key_id: config(:asc_key_id),
|
25
|
+
issuer_id: config(:asc_issuer_id),
|
26
|
+
key_content: config(:asc_key_content)&.then {|s| Base64.decode64 s})
|
27
|
+
end
|
28
|
+
|
29
|
+
def match_params()
|
30
|
+
{
|
31
|
+
api_key: asc_api_key,
|
32
|
+
app_identifier: config(:app_id),
|
33
|
+
git_url: config(:certs_url),
|
34
|
+
git_branch: config(:app_name)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def upload_params()
|
39
|
+
{
|
40
|
+
api_key: asc_api_key,
|
41
|
+
app_identifier: config(:app_id)
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
21
45
|
|
22
46
|
default_platform(:ios)
|
23
47
|
|
@@ -33,44 +57,30 @@ platform :ios do
|
|
33
57
|
use_automatic_signing: false)
|
34
58
|
end
|
35
59
|
|
36
|
-
match_params = -> {{
|
37
|
-
team_id: config(:team_id),
|
38
|
-
app_identifier: config(:app_id),
|
39
|
-
git_url: config(:certs_url),
|
40
|
-
git_branch: config(:app_name)
|
41
|
-
}}
|
42
|
-
|
43
60
|
lane :match_update do
|
44
61
|
%w[development adhoc appstore].each do |type|
|
45
|
-
sync_code_signing type: type, **match_params
|
62
|
+
sync_code_signing type: type, **match_params
|
46
63
|
end
|
47
64
|
end
|
48
65
|
|
49
66
|
lane :match_fetch do
|
50
67
|
%w[development adhoc appstore].each do |type|
|
51
|
-
sync_code_signing type: type, **match_params
|
68
|
+
sync_code_signing type: type, **match_params, readonly: true
|
52
69
|
end
|
53
70
|
end
|
54
71
|
|
55
72
|
lane :match_delete do
|
56
73
|
%w[development distribution].each do |type|
|
57
|
-
match_nuke
|
74
|
+
match_nuke type: type
|
58
75
|
end
|
59
76
|
end
|
60
77
|
|
61
|
-
upload_params = -> {{
|
62
|
-
apple_id: config(:apple_id),
|
63
|
-
team_id: config(:team_id),
|
64
|
-
app_identifier: config(:app_id)
|
65
|
-
}}
|
66
|
-
|
67
78
|
desc "Upload to TestFlight"
|
68
79
|
lane :release_testflight do
|
69
|
-
|
70
|
-
params.update({changelog: config(:changelog)})
|
80
|
+
sync_code_signing type: 'appstore', **match_params, readonly: true
|
71
81
|
|
72
|
-
sync_code_signing type: 'appstore', readonly: true, **match_params.call
|
73
82
|
build_app workspace: workspace, scheme: config(:app_name)
|
74
|
-
|
83
|
+
|
84
|
+
upload_to_testflight changelog: config(:changelog), **upload_params
|
75
85
|
end
|
76
86
|
end
|
@@ -1 +1 @@
|
|
1
|
-
Enjoy the best Solitaire experience
|
1
|
+
Enjoy the best Solitaire experience! Vibrant graphics, intuitive controls, and addictive gameplay await you. It's the best choice for Solitaire enthusiasts.
|
@@ -1 +1 @@
|
|
1
|
-
-
|
1
|
+
- First public version
|
@@ -1 +1 @@
|
|
1
|
-
-
|
1
|
+
- 最初の正式公開バージョン
|
@@ -22,6 +22,10 @@ class Settings
|
|
22
22
|
hash[key]
|
23
23
|
end
|
24
24
|
|
25
|
+
def to_json()
|
26
|
+
hash.to_json
|
27
|
+
end
|
28
|
+
|
25
29
|
private
|
26
30
|
|
27
31
|
def hash()
|
@@ -29,7 +33,7 @@ class Settings
|
|
29
33
|
end
|
30
34
|
|
31
35
|
def save(path)
|
32
|
-
File.write path,
|
36
|
+
File.write path, to_json
|
33
37
|
end
|
34
38
|
|
35
39
|
def load(path)
|
data/project.yml
CHANGED
@@ -16,8 +16,8 @@ settingGroups:
|
|
16
16
|
|
17
17
|
settings:
|
18
18
|
base:
|
19
|
-
MARKETING_VERSION:
|
20
|
-
CURRENT_PROJECT_VERSION:
|
19
|
+
MARKETING_VERSION: 1.0
|
20
|
+
CURRENT_PROJECT_VERSION: 1.0
|
21
21
|
DEVELOPMENT_TEAM: $(TEAM_ID)
|
22
22
|
configs:
|
23
23
|
debug:
|
@@ -86,9 +86,9 @@ targets:
|
|
86
86
|
Ruby scripts will be able to retrieve images from the camera.
|
87
87
|
NSUserTrackingUsageDescription:
|
88
88
|
This identifier will be used to deliver personalized ads to you.
|
89
|
-
GADApplicationIdentifier:
|
90
|
-
GADGameScreenBottomBanner: ca-app-pub-
|
91
|
-
GADGameScreenInterstitial: ca-app-pub-
|
89
|
+
GADApplicationIdentifier: ca-app-pub-2838008143835331~1720297583
|
90
|
+
GADGameScreenBottomBanner: ca-app-pub-2838008143835331/4306898056
|
91
|
+
GADGameScreenInterstitial: ca-app-pub-2838008143835331/8585888561
|
92
92
|
SKAdNetworkItems:
|
93
93
|
- SKAdNetworkIdentifier: cstr6suwn9.skadnetwork
|
94
94
|
- SKAdNetworkIdentifier: 4fzdc2evr5.skadnetwork
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysketch-solitaire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: '1.0'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-06-
|
11
|
+
date: 2023-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- ".github/workflows/test.yml"
|
64
64
|
- ".github/workflows/utils.rb"
|
65
65
|
- ".gitignore"
|
66
|
+
- ".hooks/post-commit"
|
66
67
|
- ".hooks/pre-commit"
|
67
68
|
- ChangeLog.md
|
68
69
|
- Gemfile
|