glimmer_metronome 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +20 -0
- data/README.md +55 -0
- data/VERSION +1 -0
- data/app/glimmer_metronome/launch.rb +3 -0
- data/app/glimmer_metronome/model/beat.rb +36 -0
- data/app/glimmer_metronome/model/rhythm.rb +46 -0
- data/app/glimmer_metronome/view/app_view.rb +195 -0
- data/app/glimmer_metronome.rb +19 -0
- data/bin/glimmer_metronome +13 -0
- data/config/warble.rb +183 -0
- data/glimmer_metronome.gemspec +0 -0
- data/icons/linux/Glimmer Metronome.png +0 -0
- data/icons/macosx/Glimmer Metronome.icns +0 -0
- data/icons/windows/Glimmer Metronome.ico +0 -0
- data/sounds/metronome-down.wav +0 -0
- data/sounds/metronome-up.wav +0 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 86a30af9f860b740e99b72b74866ef5501272b11a25ac806eb953082753fc257
|
4
|
+
data.tar.gz: 1cbdd332ec1059a063ced791d094d57b6d9daa627f72495ad0c20b17589ead2c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 44dba5005950dbdd756925dc5fc9eeb065e3c94358943cedee902921a09dc4c36fa053cd4648907f2b3fa975015be21cf3d2164b7a823c55b1be27e469b1b633
|
7
|
+
data.tar.gz: 86f792b4b6c9a2d379c9f190ad36d3bc16c87dbf4f1343444f50def426ee011fcbc26cb97c716abf93aafb4eb5f7138120fffc4353f75cd64b6a0b02e745bb00
|
data/CHANGELOG.md
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2022 Andy Maleh
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# <img src="https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/icons/linux/Glimmer%20Metronome.png" height=85 /> Glimmer Metronome
|
2
|
+
## [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 /> Glimmer Application](https://github.com/AndyObtiva/glimmer-dsl-swt)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/glimmer_metronome.svg)](http://badge.fury.io/rb/glimmer_metronome)
|
4
|
+
|
5
|
+
<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/icons/linux/Glimmer%20Metronome.png" height=40 /> [Download Glimmer Metronome 1.0.0 DMG for Mac (X64 Catalina and Older)](https://www.dropbox.com/s/bjy4hie74gmxb5d/Glimmer%20Metronome-1.0.0.dmg?dl=1)
|
6
|
+
|
7
|
+
Metronome
|
8
|
+
|
9
|
+
![metronome](https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/screenshots/glimmer-metronome.png)
|
10
|
+
|
11
|
+
Beat Count Change
|
12
|
+
|
13
|
+
![metronome beat count changed](https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/screenshots/glimmer-metronome-beat-count-changed.png)
|
14
|
+
|
15
|
+
BPM Change
|
16
|
+
|
17
|
+
![metronome bpm changed](https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/screenshots/glimmer-metronome-bpm-changed.png)
|
18
|
+
|
19
|
+
## Demo
|
20
|
+
|
21
|
+
![metronome demo](https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/screenshots/glimmer-metronome.gif)
|
22
|
+
|
23
|
+
## Ruby Gem Instructions
|
24
|
+
|
25
|
+
If you are a software engineer and would like to install this application as a [Ruby gem](https://guides.rubygems.org/what-is-a-gem/), then follow these instructions:
|
26
|
+
|
27
|
+
- Ensure you have [Glimmer DSL for SWT 4.22.1.1 prerequisites setup (like JDK and JRuby)](https://github.com/AndyObtiva/glimmer-dsl-swt/tree/v4.22.1.1#pre-requisites).
|
28
|
+
- Install gem via `gem install glimmer_metronome` command
|
29
|
+
- Run `glimmer_metronome` command to start application
|
30
|
+
|
31
|
+
## Contributing
|
32
|
+
|
33
|
+
- Check out the latest master to make sure the feature hasn't been
|
34
|
+
implemented or the bug hasn't been fixed yet.
|
35
|
+
- Check out the issue tracker to make sure someone already hasn't
|
36
|
+
requested it and/or contributed it.
|
37
|
+
- Fork the project.
|
38
|
+
- Start a feature/bugfix branch.
|
39
|
+
- Commit and push until you are happy with your contribution.
|
40
|
+
- Make sure to add tests for it. This is important so I don't break it
|
41
|
+
in a future version unintentionally.
|
42
|
+
- Please try not to mess with the Rakefile, version, or history. If
|
43
|
+
you want to have your own version, or is otherwise necessary, that
|
44
|
+
is fine, but please isolate to its own commit so I can cherry-pick
|
45
|
+
around it.
|
46
|
+
|
47
|
+
## Copyright
|
48
|
+
|
49
|
+
[MIT](LICENSE.txt)
|
50
|
+
|
51
|
+
Copyright (c) 2022 Andy Maleh. See [LICENSE.txt](LICENSE.txt) for further details.
|
52
|
+
|
53
|
+
--
|
54
|
+
|
55
|
+
Glimmer Metronome icon made by <a href="https://www.flaticon.com/authors/freepik" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a>
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright (c) 2022 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
class GlimmerMetronome
|
23
|
+
module Model
|
24
|
+
class Beat
|
25
|
+
attr_accessor :on
|
26
|
+
|
27
|
+
def off!
|
28
|
+
self.on = false
|
29
|
+
end
|
30
|
+
|
31
|
+
def on!
|
32
|
+
self.on = true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright (c) 2022 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require_relative 'beat'
|
23
|
+
|
24
|
+
class GlimmerMetronome
|
25
|
+
module Model
|
26
|
+
class Rhythm
|
27
|
+
attr_reader :beat_count
|
28
|
+
attr_accessor :beats, :bpm
|
29
|
+
|
30
|
+
def initialize(beat_count)
|
31
|
+
self.beat_count = beat_count
|
32
|
+
@bpm = 120
|
33
|
+
end
|
34
|
+
|
35
|
+
def beat_count=(value)
|
36
|
+
@beat_count = value
|
37
|
+
reset_beats!
|
38
|
+
end
|
39
|
+
|
40
|
+
def reset_beats!
|
41
|
+
@beats = beat_count.times.map {Beat.new}
|
42
|
+
@beats.first.on!
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,195 @@
|
|
1
|
+
# Copyright (c) 2022 Andy Maleh
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require_relative '../model/rhythm'
|
23
|
+
|
24
|
+
class GlimmerMetronome
|
25
|
+
module View
|
26
|
+
class AppView
|
27
|
+
include Glimmer::UI::CustomShell
|
28
|
+
|
29
|
+
import 'javax.sound.sampled'
|
30
|
+
|
31
|
+
FILE_SOUND_METRONOME_UP = File.join(APP_ROOT, 'sounds', 'metronome-up.wav')
|
32
|
+
FILE_SOUND_METRONOME_DOWN = File.join(APP_ROOT, 'sounds', 'metronome-down.wav')
|
33
|
+
|
34
|
+
attr_accessor :rhythm
|
35
|
+
|
36
|
+
before_body do
|
37
|
+
@rhythm = Model::Rhythm.new(4)
|
38
|
+
|
39
|
+
display {
|
40
|
+
on_about do
|
41
|
+
display_about_dialog
|
42
|
+
end
|
43
|
+
|
44
|
+
on_preferences do
|
45
|
+
display_about_dialog
|
46
|
+
end
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
body {
|
51
|
+
shell(:no_resize) {
|
52
|
+
row_layout(:vertical) {
|
53
|
+
center true
|
54
|
+
}
|
55
|
+
text 'Glimmer Metronome'
|
56
|
+
|
57
|
+
label {
|
58
|
+
text 'Beat Count'
|
59
|
+
font height: 30, style: :bold
|
60
|
+
}
|
61
|
+
|
62
|
+
spinner {
|
63
|
+
minimum 1
|
64
|
+
maximum 64
|
65
|
+
selection <=> [self, 'rhythm.beat_count', after_write: ->(v) {restart_metronome}]
|
66
|
+
font height: 30
|
67
|
+
}
|
68
|
+
|
69
|
+
label {
|
70
|
+
text 'BPM'
|
71
|
+
font height: 30, style: :bold
|
72
|
+
}
|
73
|
+
|
74
|
+
spinner {
|
75
|
+
minimum 30
|
76
|
+
maximum 1000
|
77
|
+
selection <=> [self, 'rhythm.bpm']
|
78
|
+
font height: 30
|
79
|
+
}
|
80
|
+
|
81
|
+
@beat_container = beat_container
|
82
|
+
|
83
|
+
on_swt_show {
|
84
|
+
start_metronome
|
85
|
+
}
|
86
|
+
|
87
|
+
on_widget_disposed {
|
88
|
+
stop_metronome
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
def beat_container
|
94
|
+
composite {
|
95
|
+
grid_layout(@rhythm.beat_count, true)
|
96
|
+
|
97
|
+
@rhythm.beat_count.times { |n|
|
98
|
+
canvas {
|
99
|
+
layout_data {
|
100
|
+
width_hint 50
|
101
|
+
height_hint 50
|
102
|
+
}
|
103
|
+
rectangle(0, 0, :default, :default, 36, 36) {
|
104
|
+
background <= [self, "rhythm.beats[#{n}].on", on_read: ->(on) { on ? :red : :yellow}]
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
111
|
+
def start_metronome
|
112
|
+
@thread ||= Thread.new {
|
113
|
+
@rhythm.beat_count.times.cycle { |n|
|
114
|
+
sleep(60.0/@rhythm.bpm.to_f)
|
115
|
+
@rhythm.beats.each(&:off!)
|
116
|
+
@rhythm.beats[n].on!
|
117
|
+
sound_file = n == 0 ? FILE_SOUND_METRONOME_UP : FILE_SOUND_METRONOME_DOWN
|
118
|
+
play_sound(sound_file)
|
119
|
+
}
|
120
|
+
}
|
121
|
+
if @beat_container.nil?
|
122
|
+
body_root.content {
|
123
|
+
@beat_container = beat_container
|
124
|
+
}
|
125
|
+
body_root.layout(true, true)
|
126
|
+
body_root.pack(true)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
def stop_metronome
|
131
|
+
@thread&.kill # safe since no stored data is involved
|
132
|
+
@thread = nil
|
133
|
+
@beat_container&.dispose
|
134
|
+
@beat_container = nil
|
135
|
+
end
|
136
|
+
|
137
|
+
def restart_metronome
|
138
|
+
stop_metronome
|
139
|
+
start_metronome
|
140
|
+
end
|
141
|
+
|
142
|
+
# Play sound with the Java Sound library
|
143
|
+
def play_sound(sound_file)
|
144
|
+
begin
|
145
|
+
audio_input = build_audio_input(sound_file)
|
146
|
+
audio_stream = AudioSystem.get_audio_input_stream(audio_input)
|
147
|
+
clip = AudioSystem.clip
|
148
|
+
clip.open(audio_stream)
|
149
|
+
clip.start
|
150
|
+
rescue => e
|
151
|
+
puts e.full_message
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def build_audio_input(sound_file)
|
156
|
+
# if running from packaged JAR, we get a uri:classloader sound_file
|
157
|
+
if sound_file.start_with?('uri:classloader')
|
158
|
+
jar_file_path = sound_file
|
159
|
+
file_path = jar_file_path.sub(/^uri\:classloader\:/, '').sub(/^\/+/, '')
|
160
|
+
require 'jruby'
|
161
|
+
jcl = JRuby.runtime.jruby_class_loader
|
162
|
+
resource = jcl.get_resource_as_stream(file_path)
|
163
|
+
file_input_stream = resource.to_io.to_input_stream
|
164
|
+
java.io.BufferedInputStream.new(file_input_stream)
|
165
|
+
else
|
166
|
+
java.io.File.new(sound_file)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def display_about_dialog
|
171
|
+
dialog(body_root) {
|
172
|
+
grid_layout(2, false) {
|
173
|
+
margin_width 15
|
174
|
+
margin_height 15
|
175
|
+
}
|
176
|
+
|
177
|
+
background :white
|
178
|
+
image ICON
|
179
|
+
text 'About'
|
180
|
+
|
181
|
+
label {
|
182
|
+
layout_data :center, :center, false, false
|
183
|
+
background :white
|
184
|
+
image ICON, height: 260
|
185
|
+
}
|
186
|
+
label {
|
187
|
+
layout_data :fill, :fill, true, true
|
188
|
+
background :white
|
189
|
+
text "Glimmer Metronome #{VERSION}\n\n#{LICENSE}\n\nGlimmer Metronome icon made by Freepik from www.flaticon.com"
|
190
|
+
}
|
191
|
+
}.open
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('..', __FILE__))
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'bundler/setup'
|
5
|
+
Bundler.require(:default)
|
6
|
+
rescue
|
7
|
+
# this runs when packaged as a gem (no bundler)
|
8
|
+
require 'glimmer-dsl-swt'
|
9
|
+
# add more gems if needed
|
10
|
+
end
|
11
|
+
|
12
|
+
class GlimmerMetronome
|
13
|
+
APP_ROOT = File.expand_path('../..', __FILE__)
|
14
|
+
VERSION = File.read(File.join(APP_ROOT, 'VERSION'))
|
15
|
+
LICENSE = File.read(File.join(APP_ROOT, 'LICENSE.txt'))
|
16
|
+
ICON = File.join(APP_ROOT, 'icons/linux/Glimmer Metronome.png')
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'glimmer_metronome/view/app_view'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env jruby
|
2
|
+
|
3
|
+
runner = File.expand_path('../../app/glimmer_metronome/launch.rb', __FILE__)
|
4
|
+
|
5
|
+
# Detect if inside a JAR file or not
|
6
|
+
if runner.include?('uri:classloader')
|
7
|
+
require runner
|
8
|
+
else
|
9
|
+
require 'glimmer/launcher'
|
10
|
+
|
11
|
+
launcher = Glimmer::Launcher.new([runner] + ARGV)
|
12
|
+
launcher.launch
|
13
|
+
end
|
data/config/warble.rb
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
|
2
|
+
# Disable Rake-environment-task framework detection by uncommenting/setting to false
|
3
|
+
# Warbler.framework_detection = false
|
4
|
+
|
5
|
+
# Warbler web application assembly configuration file
|
6
|
+
Warbler::Config.new do |config|
|
7
|
+
# Features: additional options controlling how the jar is built.
|
8
|
+
# Currently the following features are supported:
|
9
|
+
# - *gemjar*: package the gem repository in a jar file in WEB-INF/lib
|
10
|
+
# - *executable*: embed a web server and make the war executable
|
11
|
+
# - *runnable*: allows to run bin scripts e.g. `java -jar my.war -S rake -T`
|
12
|
+
# - *compiled*: compile .rb files to .class files
|
13
|
+
# config.features = %w(gemjar)
|
14
|
+
|
15
|
+
# Application directories to be included in the webapp.
|
16
|
+
config.dirs = %w(app bin config db docs fonts icons images lib package script sounds vendor videos)
|
17
|
+
|
18
|
+
# Additional files/directories to include, above those in config.dirs
|
19
|
+
config.includes = FileList['LICENSE.txt', 'VERSION']
|
20
|
+
|
21
|
+
# Additional files/directories to exclude
|
22
|
+
# config.excludes = FileList["lib/tasks/*"]
|
23
|
+
|
24
|
+
# Additional Java .jar files to include. Note that if .jar files are placed
|
25
|
+
# in lib (and not otherwise excluded) then they need not be mentioned here.
|
26
|
+
# JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
|
27
|
+
# own versions if you directly set the value
|
28
|
+
# config.java_libs += FileList["lib/java/*.jar"]
|
29
|
+
|
30
|
+
# Loose Java classes and miscellaneous files to be included.
|
31
|
+
# config.java_classes = FileList["target/classes/**.*"]
|
32
|
+
|
33
|
+
# One or more pathmaps defining how the java classes should be copied into
|
34
|
+
# the archive. The example pathmap below accompanies the java_classes
|
35
|
+
# configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
|
36
|
+
# for details of how to specify a pathmap.
|
37
|
+
# config.pathmaps.java_classes << "%{target/classes/,}p"
|
38
|
+
|
39
|
+
# Bundler support is built-in. If Warbler finds a Gemfile in the
|
40
|
+
# project directory, it will be used to collect the gems to bundle
|
41
|
+
# in your application. If you wish to explicitly disable this
|
42
|
+
# functionality, uncomment here.
|
43
|
+
# config.bundler = false
|
44
|
+
|
45
|
+
# An array of Bundler groups to avoid including in the war file.
|
46
|
+
# Defaults to ["development", "test", "assets"].
|
47
|
+
# config.bundle_without = []
|
48
|
+
|
49
|
+
# Other gems to be included. If you don't use Bundler or a gemspec
|
50
|
+
# file, you need to tell Warbler which gems your application needs
|
51
|
+
# so that they can be packaged in the archive.
|
52
|
+
# For Rails applications, the Rails gems are included by default
|
53
|
+
# unless the vendor/rails directory is present.
|
54
|
+
# config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
|
55
|
+
# config.gems << "tzinfo"
|
56
|
+
|
57
|
+
# Uncomment this if you don't want to package rails gem.
|
58
|
+
# config.gems -= ["rails"]
|
59
|
+
|
60
|
+
# The most recent versions of gems are used.
|
61
|
+
# You can specify versions of gems by using a hash assignment:
|
62
|
+
# config.gems["rails"] = "4.2.5"
|
63
|
+
|
64
|
+
# You can also use regexps or Gem::Dependency objects for flexibility or
|
65
|
+
# finer-grained control.
|
66
|
+
# config.gems << /^sinatra-/
|
67
|
+
# config.gems << Gem::Dependency.new("sinatra", "= 1.4.7")
|
68
|
+
|
69
|
+
# Include gem dependencies not mentioned specifically. Default is
|
70
|
+
# true, uncomment to turn off.
|
71
|
+
# config.gem_dependencies = false
|
72
|
+
|
73
|
+
# Array of regular expressions matching relative paths in gems to be
|
74
|
+
# excluded from the war. Defaults to empty, but you can set it like
|
75
|
+
# below, which excludes test files.
|
76
|
+
# config.gem_excludes = [/^(test|spec)\//]
|
77
|
+
|
78
|
+
# Pathmaps for controlling how application files are copied into the archive
|
79
|
+
# config.pathmaps.application = ["WEB-INF/%p"]
|
80
|
+
|
81
|
+
# Name of the archive (without the extension). Defaults to the basename
|
82
|
+
# of the project directory.
|
83
|
+
# config.jar_name = "mywar"
|
84
|
+
|
85
|
+
# File extension for the archive. Defaults to either 'jar' or 'war'.
|
86
|
+
# config.jar_extension = "jar"
|
87
|
+
|
88
|
+
# Destionation for the created archive. Defaults to project's root directory.
|
89
|
+
config.autodeploy_dir = "dist/"
|
90
|
+
|
91
|
+
# Name of the MANIFEST.MF template for the war file. Defaults to a simple
|
92
|
+
# MANIFEST.MF that contains the version of Warbler used to create the war file.
|
93
|
+
# config.manifest_file = "config/MANIFEST.MF"
|
94
|
+
|
95
|
+
# When using the 'compiled' feature and specified, only these Ruby
|
96
|
+
# files will be compiled. Default is to compile all \.rb files in
|
97
|
+
# the application.
|
98
|
+
# config.compiled_ruby_files = FileList['app/**/*.rb']
|
99
|
+
|
100
|
+
# Determines if ruby files in supporting gems will be compiled.
|
101
|
+
# Ignored unless compile feature is used.
|
102
|
+
# config.compile_gems = false
|
103
|
+
|
104
|
+
# When set it specify the bytecode version for compiled class files
|
105
|
+
# config.bytecode_version = "1.6"
|
106
|
+
|
107
|
+
# When set to true, Warbler will override the value of ENV['GEM_HOME'] even it
|
108
|
+
# has already been set. When set to false it will use any existing value of
|
109
|
+
# GEM_HOME if it is set.
|
110
|
+
# config.override_gem_home = true
|
111
|
+
|
112
|
+
# Allows for specifing custom executables
|
113
|
+
# config.executable = ["rake", "bin/rake"]
|
114
|
+
|
115
|
+
# Sets default (prefixed) parameters for the executables
|
116
|
+
# config.executable_params = "do:something"
|
117
|
+
|
118
|
+
# If set to true, moves jar files into WEB-INF/lib. Prior to version 1.4.2 of Warbler this was done
|
119
|
+
# by default. But since 1.4.2 this config defaults to false. It may need to be set to true for
|
120
|
+
# web servers that do not explode the WAR file.
|
121
|
+
# Alternatively, this option can be set to a regular expression, which will
|
122
|
+
# act as a jar selector -- only jar files that match the pattern will be
|
123
|
+
# included in the archive.
|
124
|
+
# config.move_jars_to_webinf_lib = false
|
125
|
+
|
126
|
+
# === War files only below here ===
|
127
|
+
|
128
|
+
# Embedded webserver to use with the 'executable' feature. Currently supported
|
129
|
+
# webservers are:
|
130
|
+
# - *jetty* - Embedded Jetty from Eclipse
|
131
|
+
# config.webserver = 'jetty'
|
132
|
+
|
133
|
+
# Path to the pre-bundled gem directory inside the war file. Default
|
134
|
+
# is 'WEB-INF/gems'. Specify path if gems are already bundled
|
135
|
+
# before running Warbler. This also sets 'gem.path' inside web.xml.
|
136
|
+
# config.gem_path = "WEB-INF/vendor/bundler_gems"
|
137
|
+
|
138
|
+
# Files for WEB-INF directory (next to web.xml). This contains
|
139
|
+
# web.xml by default. If there is an .erb-File it will be processed
|
140
|
+
# with webxml-config. You may want to exclude this file via
|
141
|
+
# config.excludes.
|
142
|
+
# config.webinf_files += FileList["jboss-web.xml"]
|
143
|
+
|
144
|
+
# Files to be included in the root of the webapp. Note that files in public
|
145
|
+
# will have the leading 'public/' part of the path stripped during staging.
|
146
|
+
# config.public_html = FileList["public/**/*", "doc/**/*"]
|
147
|
+
|
148
|
+
# Pathmaps for controlling how public HTML files are copied into the .war
|
149
|
+
# config.pathmaps.public_html = ["%{public/,}p"]
|
150
|
+
|
151
|
+
# Value of RAILS_ENV for the webapp -- default as shown below
|
152
|
+
# config.webxml.rails.env = ENV['RAILS_ENV'] || 'production'
|
153
|
+
|
154
|
+
# Public ROOT mapping, by default assets are copied into .war ROOT directory.
|
155
|
+
# config.public.root = ''
|
156
|
+
|
157
|
+
# Application booter to use, either :rack or :rails (autodetected by default)
|
158
|
+
# config.webxml.booter = :rails
|
159
|
+
|
160
|
+
# When using the :rack booter, "Rackup" script to use.
|
161
|
+
# - For 'rackup.path', the value points to the location of the rackup
|
162
|
+
# script in the web archive file. You need to make sure this file
|
163
|
+
# gets included in the war, possibly by adding it to config.includes
|
164
|
+
# or config.webinf_files above.
|
165
|
+
# - For 'rackup', the rackup script you provide as an inline string
|
166
|
+
# is simply embedded in web.xml.
|
167
|
+
# The script is evaluated in a Rack::Builder to load the application.
|
168
|
+
# Examples:
|
169
|
+
# config.webxml.rackup.path = 'WEB-INF/hello.ru'
|
170
|
+
# config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
|
171
|
+
# config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
|
172
|
+
|
173
|
+
# Control the pool of Rails runtimes. Leaving unspecified means
|
174
|
+
# the pool will grow as needed to service requests. It is recommended
|
175
|
+
# that you fix these values when running a production server!
|
176
|
+
# If you're using threadsafe! mode, you probably don't want to set these values,
|
177
|
+
# since 1 runtime(default for threadsafe mode) will be enough.
|
178
|
+
# config.webxml.jruby.min.runtimes = 2
|
179
|
+
# config.webxml.jruby.max.runtimes = 4
|
180
|
+
|
181
|
+
# JNDI data source name
|
182
|
+
# config.webxml.jndi = 'jdbc/rails'
|
183
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: glimmer_metronome
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andy Maleh
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-01-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 4.22.1.1
|
19
|
+
name: glimmer-dsl-swt
|
20
|
+
prerelease: false
|
21
|
+
type: :runtime
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.22.1.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - '='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.3.2
|
33
|
+
name: psych
|
34
|
+
prerelease: false
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.3.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.5.0
|
47
|
+
name: rspec
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.5.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.4.9
|
61
|
+
name: juwelier
|
62
|
+
prerelease: false
|
63
|
+
type: :development
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.4.9
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 2.0.5
|
75
|
+
name: warbler
|
76
|
+
prerelease: false
|
77
|
+
type: :development
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.0.5
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
name: simplecov
|
90
|
+
prerelease: false
|
91
|
+
type: :development
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: Glimmer Metronome (JRuby application built with Glimmer DSL for SWT)
|
98
|
+
email: andy.am@gmail.com
|
99
|
+
executables:
|
100
|
+
- glimmer_metronome
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files:
|
103
|
+
- LICENSE.txt
|
104
|
+
- README.md
|
105
|
+
files:
|
106
|
+
- CHANGELOG.md
|
107
|
+
- LICENSE.txt
|
108
|
+
- README.md
|
109
|
+
- VERSION
|
110
|
+
- app/glimmer_metronome.rb
|
111
|
+
- app/glimmer_metronome/launch.rb
|
112
|
+
- app/glimmer_metronome/model/beat.rb
|
113
|
+
- app/glimmer_metronome/model/rhythm.rb
|
114
|
+
- app/glimmer_metronome/view/app_view.rb
|
115
|
+
- bin/glimmer_metronome
|
116
|
+
- config/warble.rb
|
117
|
+
- glimmer_metronome.gemspec
|
118
|
+
- icons/linux/Glimmer Metronome.png
|
119
|
+
- icons/macosx/Glimmer Metronome.icns
|
120
|
+
- icons/windows/Glimmer Metronome.ico
|
121
|
+
- sounds/metronome-down.wav
|
122
|
+
- sounds/metronome-up.wav
|
123
|
+
homepage: http://github.com/AndyObtiva/glimmer_metronome
|
124
|
+
licenses:
|
125
|
+
- MIT
|
126
|
+
metadata: {}
|
127
|
+
post_install_message:
|
128
|
+
rdoc_options: []
|
129
|
+
require_paths:
|
130
|
+
- vendor
|
131
|
+
- lib
|
132
|
+
- app
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
requirements: []
|
144
|
+
rubygems_version: 3.2.29
|
145
|
+
signing_key:
|
146
|
+
specification_version: 4
|
147
|
+
summary: Glimmer Metronome
|
148
|
+
test_files: []
|