rubysketch-solitaire 0.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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.github/workflows/release-gem.yml +62 -0
  4. data/.github/workflows/test.yml +23 -0
  5. data/.github/workflows/utils.rb +56 -0
  6. data/.gitignore +11 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +284 -0
  9. data/LICENSE +21 -0
  10. data/Podfile +31 -0
  11. data/Podfile.lock +59 -0
  12. data/README.md +21 -0
  13. data/Rakefile +100 -0
  14. data/RubySolitaire/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  15. data/RubySolitaire/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  16. data/RubySolitaire/Assets.xcassets/Contents.json +6 -0
  17. data/RubySolitaire/BridgingHeader.h +10 -0
  18. data/RubySolitaire/GameView.swift +47 -0
  19. data/RubySolitaire/Preview Content/Preview Assets.xcassets/Contents.json +6 -0
  20. data/RubySolitaire/RubySolitaireApp.swift +10 -0
  21. data/RubySolitaireTests/RubySolitaireTests.swift +28 -0
  22. data/RubySolitaireUITests/RubySolitaireUITests.swift +35 -0
  23. data/RubySolitaireUITests/RubySolitaireUITestsLaunchTests.swift +25 -0
  24. data/VERSION +1 -0
  25. data/data/button.mp3 +0 -0
  26. data/data/card.png +0 -0
  27. data/data/deal1.mp3 +0 -0
  28. data/data/deal2.mp3 +0 -0
  29. data/data/deal3.mp3 +0 -0
  30. data/data/flip.mp3 +0 -0
  31. data/data/noop.mp3 +0 -0
  32. data/lib/rubysketch/solitaire/background.rb +34 -0
  33. data/lib/rubysketch/solitaire/card.rb +256 -0
  34. data/lib/rubysketch/solitaire/common/animation.rb +116 -0
  35. data/lib/rubysketch/solitaire/common/button.rb +67 -0
  36. data/lib/rubysketch/solitaire/common/dialog.rb +103 -0
  37. data/lib/rubysketch/solitaire/common/history.rb +94 -0
  38. data/lib/rubysketch/solitaire/common/particle.rb +71 -0
  39. data/lib/rubysketch/solitaire/common/scene.rb +128 -0
  40. data/lib/rubysketch/solitaire/common/score.rb +37 -0
  41. data/lib/rubysketch/solitaire/common/settings.rb +31 -0
  42. data/lib/rubysketch/solitaire/common/shake.rb +48 -0
  43. data/lib/rubysketch/solitaire/common/sound.rb +6 -0
  44. data/lib/rubysketch/solitaire/common/timer.rb +35 -0
  45. data/lib/rubysketch/solitaire/common/transitions.rb +149 -0
  46. data/lib/rubysketch/solitaire/common/utils.rb +89 -0
  47. data/lib/rubysketch/solitaire/extension.rb +25 -0
  48. data/lib/rubysketch/solitaire/klondike.rb +676 -0
  49. data/lib/rubysketch/solitaire/places.rb +177 -0
  50. data/lib/rubysketch/solitaire/start.rb +19 -0
  51. data/lib/rubysketch/solitaire.rb +80 -0
  52. data/main.rb +1 -0
  53. data/project.yml +91 -0
  54. data/solitaire.gemspec +28 -0
  55. metadata +137 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 81277cc0d2fd26e1236aead267584a337b431602a1f5447a9576e391864c6d72
4
+ data.tar.gz: 50ffd854120be92e95ae9508edacc2fc9ab0e9eab5df23012bceea281dc54616
5
+ SHA512:
6
+ metadata.gz: 704feade59169093f22fba8e0bd20b3eb950ac95b5b656bd71a0f6ddba9271f011fcbda38771d32b3d015043a3bf26976c3863cb3979011e97a6f8414b42c3ad
7
+ data.tar.gz: 5cd925393288fabfaab9837cb418a288793d07d09d9e315abf95af14875779bae70d9b121f0c04600a180fddb0775d9f0f874e2dee30ea851b59d48e1f62d1c3
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_SET: "path vendor/bundle"
@@ -0,0 +1,62 @@
1
+ name: Release Gem
2
+
3
+ on:
4
+ push:
5
+ tags: ['v[0-9]*']
6
+
7
+ jobs:
8
+ release:
9
+ runs-on: macos-latest
10
+
11
+ steps:
12
+ - name: ruby 3.2
13
+ uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 3.2
16
+
17
+ - name: checkout
18
+ uses: actions/checkout@v2
19
+
20
+ - name: setup dependencies
21
+ run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
22
+
23
+ #- name: install gems
24
+ # run: gem install yard
25
+
26
+ #- name: test
27
+ # run: rake quiet test
28
+
29
+ - name: create gem
30
+ id: gem
31
+ run: |
32
+ rake gem
33
+ echo path=$(ruby -e 'print Dir.glob("*.gem").first') >> $GITHUB_OUTPUT
34
+
35
+ - name: create github release
36
+ id: release
37
+ uses: actions/create-release@v1
38
+ env:
39
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40
+ with:
41
+ tag_name: ${{ github.ref }}
42
+ release_name: ${{ github.ref }}
43
+
44
+ - name: upload to github release
45
+ uses: actions/upload-release-asset@v1
46
+ env:
47
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48
+ with:
49
+ upload_url: ${{ steps.release.outputs.upload_url }}
50
+ asset_path: ./${{ steps.gem.outputs.path }}
51
+ asset_name: ${{ steps.gem.outputs.path }}
52
+ asset_content_type: application/zip
53
+
54
+ - name: upload to rubygems
55
+ env:
56
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
57
+ run: |
58
+ mkdir -p $HOME/.gem
59
+ touch $HOME/.gem/credentials
60
+ chmod 0600 $HOME/.gem/credentials
61
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
62
+ rake upload
@@ -0,0 +1,23 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: macos-latest
12
+
13
+ steps:
14
+ - name: ruby 3.2
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: 3.2
18
+
19
+ - name: checkout
20
+ uses: actions/checkout@v2
21
+
22
+ - name: build
23
+ run: rake build
@@ -0,0 +1,56 @@
1
+ RENAMES = {reflex: 'reflexion'}
2
+
3
+ def sh(cmd)
4
+ puts cmd
5
+ system cmd
6
+ end
7
+
8
+ def setup_dependencies(build: true, only: nil)
9
+ gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
10
+ return unless gemspec_path
11
+
12
+ gemspec = File.read gemspec_path
13
+ name = File.basename gemspec_path, '.gemspec'
14
+
15
+ exts = File.readlines('Rakefile')
16
+ .map {|l| l[%r|^\s*require\W+(\w+)/extension\W+$|, 1]}
17
+ .compact
18
+ .reject {|ext| ext == name}
19
+ exts = exts & [only].flatten.map(&:to_s) if only
20
+
21
+ exts.each do |ext|
22
+ gem = RENAMES[ext.to_sym].then {|s| s || ext}
23
+ ver = gemspec[/add_runtime_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
24
+ opts = '-c advice.detachedHead=false --depth 1'
25
+ clone = "git clone #{opts} https://github.com/xord/#{ext}.git ../#{ext}"
26
+
27
+ # 'rake subtree:push' pushes all subrepos, so cloning by new tag
28
+ # often fails before tagging each new tag
29
+ sh %( #{clone} --branch v#{ver} || #{clone} )
30
+ sh %( cd ../#{ext} && rake ext )
31
+ end
32
+ end
33
+
34
+ def tag_versions()
35
+ tags = `git tag`.lines chomp: true
36
+ vers = `git log --oneline ./VERSION`
37
+ .lines(chomp: true)
38
+ .map {|line| line.split.first[/^\w+$/]}
39
+ .map {|hash| [`git cat-file -p #{hash}:./VERSION 2>/dev/null`[/[\d\.]+/], hash]}
40
+ .select {|ver, hash| ver && hash}
41
+ .reverse
42
+ .to_h
43
+
44
+ changes = File.read('ChangeLog.md')
45
+ .split(/^\s*##\s*\[\s*v([\d\.]+)\s*\].*$/)
46
+ .slice(1..-1)
47
+ .each_slice(2)
48
+ .to_h
49
+ .transform_values(&:strip!)
50
+
51
+ vers.to_a.reverse.each do |ver, hash|
52
+ tag = "v#{ver}"
53
+ break if tags.include?(tag)
54
+ sh %( git tag -a -m \"#{changes[ver]&.gsub '"', '\\"'}\" #{tag} #{hash} )
55
+ end
56
+ end
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ *.xcworkspace
2
+ *.xcodeproj
3
+ */Info.plist
4
+ *~
5
+
6
+ rubysketch-solitaire-*.gem
7
+ solitaire.json
8
+
9
+ vendor/bundle/
10
+ Pods/
11
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+ gem 'cocoapods'
5
+ gem 'fastlane'
data/Gemfile.lock ADDED
@@ -0,0 +1,284 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ CFPropertyList (3.0.6)
5
+ rexml
6
+ activesupport (7.0.5)
7
+ concurrent-ruby (~> 1.0, >= 1.0.2)
8
+ i18n (>= 1.6, < 2)
9
+ minitest (>= 5.1)
10
+ tzinfo (~> 2.0)
11
+ addressable (2.8.4)
12
+ public_suffix (>= 2.0.2, < 6.0)
13
+ algoliasearch (1.27.5)
14
+ httpclient (~> 2.8, >= 2.8.3)
15
+ json (>= 1.5.1)
16
+ artifactory (3.0.15)
17
+ atomos (0.1.3)
18
+ aws-eventstream (1.2.0)
19
+ aws-partitions (1.771.0)
20
+ aws-sdk-core (3.173.1)
21
+ aws-eventstream (~> 1, >= 1.0.2)
22
+ aws-partitions (~> 1, >= 1.651.0)
23
+ aws-sigv4 (~> 1.5)
24
+ jmespath (~> 1, >= 1.6.1)
25
+ aws-sdk-kms (1.64.0)
26
+ aws-sdk-core (~> 3, >= 3.165.0)
27
+ aws-sigv4 (~> 1.1)
28
+ aws-sdk-s3 (1.122.0)
29
+ aws-sdk-core (~> 3, >= 3.165.0)
30
+ aws-sdk-kms (~> 1)
31
+ aws-sigv4 (~> 1.4)
32
+ aws-sigv4 (1.5.2)
33
+ aws-eventstream (~> 1, >= 1.0.2)
34
+ babosa (1.0.4)
35
+ claide (1.1.0)
36
+ cocoapods (1.12.1)
37
+ addressable (~> 2.8)
38
+ claide (>= 1.0.2, < 2.0)
39
+ cocoapods-core (= 1.12.1)
40
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
41
+ cocoapods-downloader (>= 1.6.0, < 2.0)
42
+ cocoapods-plugins (>= 1.0.0, < 2.0)
43
+ cocoapods-search (>= 1.0.0, < 2.0)
44
+ cocoapods-trunk (>= 1.6.0, < 2.0)
45
+ cocoapods-try (>= 1.1.0, < 2.0)
46
+ colored2 (~> 3.1)
47
+ escape (~> 0.0.4)
48
+ fourflusher (>= 2.3.0, < 3.0)
49
+ gh_inspector (~> 1.0)
50
+ molinillo (~> 0.8.0)
51
+ nap (~> 1.0)
52
+ ruby-macho (>= 2.3.0, < 3.0)
53
+ xcodeproj (>= 1.21.0, < 2.0)
54
+ cocoapods-core (1.12.1)
55
+ activesupport (>= 5.0, < 8)
56
+ addressable (~> 2.8)
57
+ algoliasearch (~> 1.0)
58
+ concurrent-ruby (~> 1.1)
59
+ fuzzy_match (~> 2.0.4)
60
+ nap (~> 1.0)
61
+ netrc (~> 0.11)
62
+ public_suffix (~> 4.0)
63
+ typhoeus (~> 1.0)
64
+ cocoapods-deintegrate (1.0.5)
65
+ cocoapods-downloader (1.6.3)
66
+ cocoapods-plugins (1.0.0)
67
+ nap
68
+ cocoapods-search (1.0.1)
69
+ cocoapods-trunk (1.6.0)
70
+ nap (>= 0.8, < 2.0)
71
+ netrc (~> 0.11)
72
+ cocoapods-try (1.2.0)
73
+ colored (1.2)
74
+ colored2 (3.1.2)
75
+ commander (4.6.0)
76
+ highline (~> 2.0.0)
77
+ concurrent-ruby (1.2.2)
78
+ declarative (0.0.20)
79
+ digest-crc (0.6.4)
80
+ rake (>= 12.0.0, < 14.0.0)
81
+ domain_name (0.5.20190701)
82
+ unf (>= 0.0.5, < 1.0.0)
83
+ dotenv (2.8.1)
84
+ emoji_regex (3.2.3)
85
+ escape (0.0.4)
86
+ ethon (0.16.0)
87
+ ffi (>= 1.15.0)
88
+ excon (0.99.0)
89
+ faraday (1.10.3)
90
+ faraday-em_http (~> 1.0)
91
+ faraday-em_synchrony (~> 1.0)
92
+ faraday-excon (~> 1.1)
93
+ faraday-httpclient (~> 1.0)
94
+ faraday-multipart (~> 1.0)
95
+ faraday-net_http (~> 1.0)
96
+ faraday-net_http_persistent (~> 1.0)
97
+ faraday-patron (~> 1.0)
98
+ faraday-rack (~> 1.0)
99
+ faraday-retry (~> 1.0)
100
+ ruby2_keywords (>= 0.0.4)
101
+ faraday-cookie_jar (0.0.7)
102
+ faraday (>= 0.8.0)
103
+ http-cookie (~> 1.0.0)
104
+ faraday-em_http (1.0.0)
105
+ faraday-em_synchrony (1.0.0)
106
+ faraday-excon (1.1.0)
107
+ faraday-httpclient (1.0.1)
108
+ faraday-multipart (1.0.4)
109
+ multipart-post (~> 2)
110
+ faraday-net_http (1.0.1)
111
+ faraday-net_http_persistent (1.2.0)
112
+ faraday-patron (1.0.0)
113
+ faraday-rack (1.0.0)
114
+ faraday-retry (1.0.3)
115
+ faraday_middleware (1.2.0)
116
+ faraday (~> 1.0)
117
+ fastimage (2.2.7)
118
+ fastlane (2.213.0)
119
+ CFPropertyList (>= 2.3, < 4.0.0)
120
+ addressable (>= 2.8, < 3.0.0)
121
+ artifactory (~> 3.0)
122
+ aws-sdk-s3 (~> 1.0)
123
+ babosa (>= 1.0.3, < 2.0.0)
124
+ bundler (>= 1.12.0, < 3.0.0)
125
+ colored
126
+ commander (~> 4.6)
127
+ dotenv (>= 2.1.1, < 3.0.0)
128
+ emoji_regex (>= 0.1, < 4.0)
129
+ excon (>= 0.71.0, < 1.0.0)
130
+ faraday (~> 1.0)
131
+ faraday-cookie_jar (~> 0.0.6)
132
+ faraday_middleware (~> 1.0)
133
+ fastimage (>= 2.1.0, < 3.0.0)
134
+ gh_inspector (>= 1.1.2, < 2.0.0)
135
+ google-apis-androidpublisher_v3 (~> 0.3)
136
+ google-apis-playcustomapp_v1 (~> 0.1)
137
+ google-cloud-storage (~> 1.31)
138
+ highline (~> 2.0)
139
+ json (< 3.0.0)
140
+ jwt (>= 2.1.0, < 3)
141
+ mini_magick (>= 4.9.4, < 5.0.0)
142
+ multipart-post (>= 2.0.0, < 3.0.0)
143
+ naturally (~> 2.2)
144
+ optparse (~> 0.1.1)
145
+ plist (>= 3.1.0, < 4.0.0)
146
+ rubyzip (>= 2.0.0, < 3.0.0)
147
+ security (= 0.1.3)
148
+ simctl (~> 1.6.3)
149
+ terminal-notifier (>= 2.0.0, < 3.0.0)
150
+ terminal-table (>= 1.4.5, < 2.0.0)
151
+ tty-screen (>= 0.6.3, < 1.0.0)
152
+ tty-spinner (>= 0.8.0, < 1.0.0)
153
+ word_wrap (~> 1.0.0)
154
+ xcodeproj (>= 1.13.0, < 2.0.0)
155
+ xcpretty (~> 0.3.0)
156
+ xcpretty-travis-formatter (>= 0.0.3)
157
+ ffi (1.15.5)
158
+ fourflusher (2.3.1)
159
+ fuzzy_match (2.0.4)
160
+ gh_inspector (1.1.3)
161
+ google-apis-androidpublisher_v3 (0.42.0)
162
+ google-apis-core (>= 0.11.0, < 2.a)
163
+ google-apis-core (0.11.0)
164
+ addressable (~> 2.5, >= 2.5.1)
165
+ googleauth (>= 0.16.2, < 2.a)
166
+ httpclient (>= 2.8.1, < 3.a)
167
+ mini_mime (~> 1.0)
168
+ representable (~> 3.0)
169
+ retriable (>= 2.0, < 4.a)
170
+ rexml
171
+ webrick
172
+ google-apis-iamcredentials_v1 (0.17.0)
173
+ google-apis-core (>= 0.11.0, < 2.a)
174
+ google-apis-playcustomapp_v1 (0.13.0)
175
+ google-apis-core (>= 0.11.0, < 2.a)
176
+ google-apis-storage_v1 (0.19.0)
177
+ google-apis-core (>= 0.9.0, < 2.a)
178
+ google-cloud-core (1.6.0)
179
+ google-cloud-env (~> 1.0)
180
+ google-cloud-errors (~> 1.0)
181
+ google-cloud-env (1.6.0)
182
+ faraday (>= 0.17.3, < 3.0)
183
+ google-cloud-errors (1.3.1)
184
+ google-cloud-storage (1.44.0)
185
+ addressable (~> 2.8)
186
+ digest-crc (~> 0.4)
187
+ google-apis-iamcredentials_v1 (~> 0.1)
188
+ google-apis-storage_v1 (~> 0.19.0)
189
+ google-cloud-core (~> 1.6)
190
+ googleauth (>= 0.16.2, < 2.a)
191
+ mini_mime (~> 1.0)
192
+ googleauth (1.5.2)
193
+ faraday (>= 0.17.3, < 3.a)
194
+ jwt (>= 1.4, < 3.0)
195
+ memoist (~> 0.16)
196
+ multi_json (~> 1.11)
197
+ os (>= 0.9, < 2.0)
198
+ signet (>= 0.16, < 2.a)
199
+ highline (2.0.3)
200
+ http-cookie (1.0.5)
201
+ domain_name (~> 0.5)
202
+ httpclient (2.8.3)
203
+ i18n (1.13.0)
204
+ concurrent-ruby (~> 1.0)
205
+ jmespath (1.6.2)
206
+ json (2.6.3)
207
+ jwt (2.7.0)
208
+ memoist (0.16.2)
209
+ mini_magick (4.12.0)
210
+ mini_mime (1.1.2)
211
+ minitest (5.18.0)
212
+ molinillo (0.8.0)
213
+ multi_json (1.15.0)
214
+ multipart-post (2.3.0)
215
+ nanaimo (0.3.0)
216
+ nap (1.1.0)
217
+ naturally (2.2.1)
218
+ netrc (0.11.0)
219
+ optparse (0.1.1)
220
+ os (1.1.4)
221
+ plist (3.7.0)
222
+ public_suffix (4.0.7)
223
+ rake (13.0.6)
224
+ representable (3.2.0)
225
+ declarative (< 0.1.0)
226
+ trailblazer-option (>= 0.1.1, < 0.2.0)
227
+ uber (< 0.2.0)
228
+ retriable (3.1.2)
229
+ rexml (3.2.5)
230
+ rouge (2.0.7)
231
+ ruby-macho (2.5.1)
232
+ ruby2_keywords (0.0.5)
233
+ rubyzip (2.3.2)
234
+ security (0.1.3)
235
+ signet (0.17.0)
236
+ addressable (~> 2.8)
237
+ faraday (>= 0.17.5, < 3.a)
238
+ jwt (>= 1.5, < 3.0)
239
+ multi_json (~> 1.10)
240
+ simctl (1.6.10)
241
+ CFPropertyList
242
+ naturally
243
+ terminal-notifier (2.0.0)
244
+ terminal-table (1.8.0)
245
+ unicode-display_width (~> 1.1, >= 1.1.1)
246
+ trailblazer-option (0.1.2)
247
+ tty-cursor (0.7.1)
248
+ tty-screen (0.8.1)
249
+ tty-spinner (0.9.3)
250
+ tty-cursor (~> 0.7)
251
+ typhoeus (1.4.0)
252
+ ethon (>= 0.9.0)
253
+ tzinfo (2.0.6)
254
+ concurrent-ruby (~> 1.0)
255
+ uber (0.1.0)
256
+ unf (0.1.4)
257
+ unf_ext
258
+ unf_ext (0.0.8.2)
259
+ unicode-display_width (1.8.0)
260
+ webrick (1.8.1)
261
+ word_wrap (1.0.0)
262
+ xcodeproj (1.22.0)
263
+ CFPropertyList (>= 2.3.3, < 4.0)
264
+ atomos (~> 0.1.3)
265
+ claide (>= 1.0.2, < 2.0)
266
+ colored2 (~> 3.1)
267
+ nanaimo (~> 0.3.0)
268
+ rexml (~> 3.2.4)
269
+ xcpretty (0.3.0)
270
+ rouge (~> 2.0.7)
271
+ xcpretty-travis-formatter (1.0.1)
272
+ xcpretty (~> 0.2, >= 0.0.7)
273
+
274
+ PLATFORMS
275
+ arm64-darwin-20
276
+ arm64-darwin-21
277
+
278
+ DEPENDENCIES
279
+ cocoapods
280
+ fastlane
281
+ rake
282
+
283
+ BUNDLED WITH
284
+ 2.4.10
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 xord.org
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/Podfile ADDED
@@ -0,0 +1,31 @@
1
+ # -*- mode: ruby -*-
2
+
3
+ platform :ios, '14.0'
4
+
5
+ %w[RubySolitaire RubySolitaireTests].each do |t|
6
+ target t do
7
+ pod 'CRuby', git: 'https://github.com/xord/cruby.git'
8
+ pod 'RubySketch', git: 'https://github.com/xord/rubysketch.git'
9
+ end
10
+ end
11
+
12
+
13
+ post_install do |installer|
14
+ each_build_configuration installer do |c|
15
+ c.build_settings['ARCHS'] = 'arm64'
16
+ c.build_settings['VALID_ARCHS'] = 'arm64'
17
+ c.build_settings['ENABLE_BITCODE'] = 'NO'
18
+ end
19
+ end
20
+
21
+ def each_build_configuration (installer, &block)
22
+ installer.pods_project.build_configurations.each do |config|
23
+ block.call config
24
+ end
25
+
26
+ installer.pods_project.targets.each do |target|
27
+ target.build_configurations.each do |config|
28
+ block.call config
29
+ end
30
+ end
31
+ end
data/Podfile.lock ADDED
@@ -0,0 +1,59 @@
1
+ PODS:
2
+ - CRuby (3.2.202)
3
+ - RubySketch (0.5.12):
4
+ - RubySketch/Beeps (= 0.5.12)
5
+ - RubySketch/Rays (= 0.5.12)
6
+ - RubySketch/Reflex (= 0.5.12)
7
+ - RubySketch/Rucy (= 0.5.12)
8
+ - RubySketch/Xot (= 0.5.12)
9
+ - RubySketch/Beeps (0.5.12):
10
+ - RubySketch/Beeps/Ext (= 0.5.12)
11
+ - RubySketch/Beeps/R8BrainFreeSrc (= 0.5.12)
12
+ - RubySketch/Beeps/STK (= 0.5.12)
13
+ - RubySketch/Beeps/Ext (0.5.12)
14
+ - RubySketch/Beeps/R8BrainFreeSrc (0.5.12)
15
+ - RubySketch/Beeps/STK (0.5.12)
16
+ - RubySketch/Rays (0.5.12):
17
+ - RubySketch/Rays/Clipper (= 0.5.12)
18
+ - RubySketch/Rays/Ext (= 0.5.12)
19
+ - RubySketch/Rays/Poly2Tri (= 0.5.12)
20
+ - RubySketch/Rays/SplineLib (= 0.5.12)
21
+ - RubySketch/Rays/Clipper (0.5.12)
22
+ - RubySketch/Rays/Ext (0.5.12)
23
+ - RubySketch/Rays/Poly2Tri (0.5.12)
24
+ - RubySketch/Rays/SplineLib (0.5.12)
25
+ - RubySketch/Reflex (0.5.12):
26
+ - RubySketch/Reflex/Box2D (= 0.5.12)
27
+ - RubySketch/Reflex/Ext (= 0.5.12)
28
+ - RubySketch/Reflex/Box2D (0.5.12)
29
+ - RubySketch/Reflex/Ext (0.5.12)
30
+ - RubySketch/Rucy (0.5.12):
31
+ - RubySketch/Rucy/Ext (= 0.5.12)
32
+ - RubySketch/Rucy/Ext (0.5.12)
33
+ - RubySketch/Xot (0.5.12)
34
+
35
+ DEPENDENCIES:
36
+ - CRuby (from `https://github.com/xord/cruby.git`)
37
+ - RubySketch (from `https://github.com/xord/rubysketch.git`)
38
+
39
+ EXTERNAL SOURCES:
40
+ CRuby:
41
+ :git: https://github.com/xord/cruby.git
42
+ RubySketch:
43
+ :git: https://github.com/xord/rubysketch.git
44
+
45
+ CHECKOUT OPTIONS:
46
+ CRuby:
47
+ :commit: 133060a967e6acbf4aad3971b369acab86029065
48
+ :git: https://github.com/xord/cruby.git
49
+ RubySketch:
50
+ :commit: e3abcf7e652a328a76e54ab0d1fa601bc7f1a43f
51
+ :git: https://github.com/xord/rubysketch.git
52
+
53
+ SPEC CHECKSUMS:
54
+ CRuby: f677262f16d7c714efd3021c90246296cf5bf9c3
55
+ RubySketch: 76a0f9a7aff07b74bbfe2d715322607e29eac971
56
+
57
+ PODFILE CHECKSUM: 3ad0b358d0bc13ea451aa93df078142a38c591fc
58
+
59
+ COCOAPODS: 1.12.1
data/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Solitaire game made with RubySketch
2
+
3
+ ## How to use
4
+
5
+ ### Run local scripts on macOS
6
+
7
+ ```sh
8
+ $ gem install rubysketch
9
+ $ ruby -Ilib -rrubysketch/solitaire -e ''
10
+ ```
11
+
12
+ ### Run on macOS using RubyGems
13
+
14
+ ```sh
15
+ $ gem install rubysketch-solitaire
16
+ $ ruby -rrubysketch/solitaire -e ''
17
+ ```
18
+
19
+ ## License
20
+
21
+ see [LICENSE](LICENSE) file
data/Rakefile ADDED
@@ -0,0 +1,100 @@
1
+ # -*- mode: ruby -*-
2
+
3
+
4
+ %w[../xot .]
5
+ .map {|s| File.expand_path "#{s}/lib", __dir__}
6
+ .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
7
+
8
+ require 'xot/rake'
9
+
10
+ require 'xot/extension'
11
+ require 'rubysketch/solitaire/extension'
12
+
13
+
14
+ EXTENSIONS = [RubySketch::Solitaire]
15
+
16
+ GEMNAME = "rubysketch-#{target.name.downcase}"
17
+
18
+ NAME_IOS = "Ruby#{target.name}"
19
+ XCWORKSPACE = "#{NAME_IOS}.xcworkspace"
20
+ XCODEPROJ = "#{NAME_IOS}.xcodeproj"
21
+
22
+ BUNDLE_DIR = 'vendor/bundle'
23
+ PODS_DIR = 'Pods'
24
+
25
+
26
+ default_tasks
27
+ build_ruby_gem
28
+
29
+
30
+ task :build => 'xcode:build'
31
+
32
+ task :xcode => 'xcode:open'
33
+
34
+ task :update => %w[bundle pods].map {|s| "#{s}:update"}
35
+
36
+ task :clean => %w[gem xcode].map {|s| "#{s}:clean"}
37
+
38
+ task :clobber => %w[xcode bundle pods].map {|s| "#{s}:clobber"}
39
+
40
+ task :run do
41
+ libs = %w[xot rucy beeps rays reflex processing rubysketch]
42
+ .map {|lib| "-I#{ENV['ALL']}/#{lib}/lib"}
43
+ sh %( ruby #{libs.join ' '} -Ilib -rrubysketch/solitaire -e '' )
44
+ end
45
+
46
+
47
+ namespace :xcode do
48
+ task :clean do
49
+ sh %( xcodebuild clean ) if File.exist?(XCODEPROJ)
50
+ end
51
+
52
+ task :clobber => 'xcode:clean' do
53
+ sh %( rm -rf #{XCWORKSPACE} #{XCODEPROJ} )
54
+ end
55
+
56
+ task :build => XCWORKSPACE do
57
+ sh %( xcodebuild build )
58
+ end
59
+
60
+ task :open => XCWORKSPACE do
61
+ sh %( open #{XCWORKSPACE} )
62
+ end
63
+
64
+ file XCWORKSPACE => [BUNDLE_DIR, PODS_DIR]
65
+
66
+ file XCODEPROJ do
67
+ sh %( xcodegen generate )
68
+ end
69
+ end
70
+
71
+
72
+ namespace :bundle do
73
+ task :clobber do
74
+ sh %( rm -rf #{BUNDLE_DIR} )
75
+ end
76
+
77
+ task :update do
78
+ sh %( bundle update )
79
+ end
80
+
81
+ file BUNDLE_DIR do
82
+ sh %( bundle install )
83
+ raise "failed to bundle install" unless File.exist? BUNDLE_DIR
84
+ end
85
+ end
86
+
87
+
88
+ namespace :pods do
89
+ task :clobber do
90
+ sh %( rm -rf #{PODS_DIR} )
91
+ end
92
+
93
+ task :update => [BUNDLE_DIR, XCODEPROJ] do
94
+ sh %( bundle exec pod update --verbose )
95
+ end
96
+
97
+ file PODS_DIR => [BUNDLE_DIR, XCODEPROJ] do
98
+ sh %( bundle exec pod install --verbose --repo-update )
99
+ end
100
+ end