song_pro 0.1.7 → 0.1.8
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/.github/workflows/build.yml +21 -0
- data/Gemfile.lock +4 -20
- data/README.md +23 -18
- data/lib/song_pro/version.rb +1 -1
- data/song_pro.gemspec +3 -8
- metadata +9 -23
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: de07eeede6a20f6904f08e2f4d4caa8e68a1c40c94bebb270967eefb2947c986
|
|
4
|
+
data.tar.gz: adf3d562172dcbce5132fd744a87a08029d4c84e1e38522f3950fc574f9ba5da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9f39ddfc9ed35543564f30eaeca952d648b8bb6670f5c188f7cdfd5b1696ff41489f641ddffb066acdf556087025122f49432ade8b31b35b5db717c1eb01bc9f
|
|
7
|
+
data.tar.gz: b24c9088c98bc491425b2b3a4dc7820cc2c1e36541389034c9c5b76f9506e2ac5c4eef3804a167c7188056e83b492225d136829e3b15ed5cad9ce066edb0e242
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v2
|
|
14
|
+
- name: Set up Ruby
|
|
15
|
+
uses: ruby/setup-ruby@v1
|
|
16
|
+
with:
|
|
17
|
+
ruby-version: 2.7
|
|
18
|
+
- name: Install dependencies
|
|
19
|
+
run: bundle install
|
|
20
|
+
- name: Run tests
|
|
21
|
+
run: bundle exec rake
|
data/Gemfile.lock
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
song_pro (0.1.
|
|
4
|
+
song_pro (0.1.8)
|
|
5
5
|
markaby
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
ast (2.4.0)
|
|
11
10
|
builder (3.2.3)
|
|
12
11
|
diff-lcs (1.3)
|
|
13
|
-
jaro_winkler (1.5.3)
|
|
14
12
|
markaby (0.9.0)
|
|
15
13
|
builder
|
|
16
|
-
|
|
17
|
-
parser (2.6.4.0)
|
|
18
|
-
ast (~> 2.4.0)
|
|
19
|
-
rainbow (3.0.0)
|
|
20
|
-
rake (10.5.0)
|
|
14
|
+
rake (13.0.1)
|
|
21
15
|
rspec (3.8.0)
|
|
22
16
|
rspec-core (~> 3.8.0)
|
|
23
17
|
rspec-expectations (~> 3.8.0)
|
|
@@ -31,24 +25,14 @@ GEM
|
|
|
31
25
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
32
26
|
rspec-support (~> 3.8.0)
|
|
33
27
|
rspec-support (3.8.2)
|
|
34
|
-
rubocop (0.74.0)
|
|
35
|
-
jaro_winkler (~> 1.5.1)
|
|
36
|
-
parallel (~> 1.10)
|
|
37
|
-
parser (>= 2.6)
|
|
38
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
39
|
-
ruby-progressbar (~> 1.7)
|
|
40
|
-
unicode-display_width (>= 1.4.0, < 1.7)
|
|
41
|
-
ruby-progressbar (1.10.1)
|
|
42
|
-
unicode-display_width (1.6.0)
|
|
43
28
|
|
|
44
29
|
PLATFORMS
|
|
45
30
|
ruby
|
|
46
31
|
|
|
47
32
|
DEPENDENCIES
|
|
48
|
-
bundler (~> 1.
|
|
49
|
-
rake (~>
|
|
33
|
+
bundler (~> 2.1.2)
|
|
34
|
+
rake (~> 13.0)
|
|
50
35
|
rspec (~> 3.0)
|
|
51
|
-
rubocop
|
|
52
36
|
song_pro!
|
|
53
37
|
|
|
54
38
|
BUNDLED WITH
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SongPro for Ruby
|
|
1
|
+
# SongPro for Ruby 
|
|
2
2
|
|
|
3
3
|
[SongPro](https://songpro.org) is a text format for transcribing songs.
|
|
4
4
|
|
|
@@ -14,30 +14,36 @@ gem 'song_pro'
|
|
|
14
14
|
|
|
15
15
|
And then execute:
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
```bash
|
|
18
|
+
$ bundle
|
|
19
|
+
```
|
|
18
20
|
|
|
19
21
|
Or install it yourself as:
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
```bash
|
|
24
|
+
$ gem install song_pro
|
|
25
|
+
```
|
|
22
26
|
|
|
23
27
|
## Usage
|
|
24
28
|
|
|
25
|
-
Given then file `
|
|
29
|
+
Given then file `escape-capsule.sng` with the following contents:
|
|
26
30
|
|
|
27
31
|
```
|
|
28
|
-
@title=
|
|
29
|
-
@artist=
|
|
32
|
+
@title=Escape Capsule
|
|
33
|
+
@artist=Brian Kelly
|
|
34
|
+
!bandcamp=https://spilth.bandcamp.com/track/escape-capsule-nashville-edition
|
|
30
35
|
|
|
31
|
-
#
|
|
36
|
+
# Verse 1
|
|
32
37
|
|
|
33
|
-
[D][A]
|
|
38
|
+
Climb a-[D]board [A]
|
|
39
|
+
I've been [Bm]waiting for you [F#m]
|
|
40
|
+
Climb a-[G]board [D]
|
|
41
|
+
You'll be [Asus4]safe in [A7]here
|
|
34
42
|
|
|
35
|
-
#
|
|
43
|
+
# Chorus 1
|
|
36
44
|
|
|
37
|
-
[
|
|
38
|
-
[
|
|
39
|
-
[D]I see [A]earth-[G]quakes and [D]lightnin'
|
|
40
|
-
[D]I see [A]bad [G]times to-[D]day
|
|
45
|
+
[G] I'm a [D]rocket [F#]made for your pro-[Bm]tection
|
|
46
|
+
You're [G]safe with me, un-[A]til you leave
|
|
41
47
|
```
|
|
42
48
|
|
|
43
49
|
You can then parse the file to create a `Song` object:
|
|
@@ -45,18 +51,17 @@ You can then parse the file to create a `Song` object:
|
|
|
45
51
|
```ruby
|
|
46
52
|
require 'song_pro'
|
|
47
53
|
|
|
48
|
-
text = File.read('
|
|
54
|
+
text = File.read('escape-capsule.sng')
|
|
49
55
|
song = SongPro.parse(text)
|
|
50
56
|
|
|
51
57
|
puts song.title
|
|
52
|
-
#
|
|
58
|
+
# Escape Capsule
|
|
53
59
|
|
|
54
60
|
puts song.artist
|
|
55
|
-
#
|
|
61
|
+
# Brian Kelly
|
|
56
62
|
|
|
57
63
|
puts song.sections[1].title
|
|
58
|
-
#
|
|
59
|
-
|
|
64
|
+
# Chorus 1
|
|
60
65
|
```
|
|
61
66
|
|
|
62
67
|
## Development
|
data/lib/song_pro/version.rb
CHANGED
data/song_pro.gemspec
CHANGED
|
@@ -8,15 +8,13 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.name = 'song_pro'
|
|
9
9
|
spec.version = SongPro::VERSION
|
|
10
10
|
spec.authors = ['Brian Kelly']
|
|
11
|
-
spec.email = ['polymonic@gmail.com
|
|
11
|
+
spec.email = ['polymonic@gmail.com']
|
|
12
12
|
|
|
13
13
|
spec.summary = 'Converts SongPro files to HTML'
|
|
14
14
|
spec.description = 'Provides classes for creating, parsing and rendering SongPro files'
|
|
15
15
|
spec.homepage = 'https://songpro.org'
|
|
16
16
|
spec.license = 'MIT'
|
|
17
17
|
|
|
18
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
19
|
-
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
|
20
18
|
if spec.respond_to?(:metadata)
|
|
21
19
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
|
22
20
|
else
|
|
@@ -27,13 +25,10 @@ Gem::Specification.new do |spec|
|
|
|
27
25
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
28
26
|
f.match(%r{^(test|spec|features)/})
|
|
29
27
|
end
|
|
30
|
-
spec.bindir = 'exe'
|
|
31
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
32
28
|
spec.require_paths = ['lib']
|
|
33
29
|
|
|
34
30
|
spec.add_dependency 'markaby'
|
|
35
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
|
36
|
-
spec.add_development_dependency 'rake', '~>
|
|
31
|
+
spec.add_development_dependency 'bundler', '~> 2.1.2'
|
|
32
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
37
33
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
38
|
-
spec.add_development_dependency 'rubocop'
|
|
39
34
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: song_pro
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brian Kelly
|
|
8
8
|
autorequire:
|
|
9
|
-
bindir:
|
|
9
|
+
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-07-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: markaby
|
|
@@ -30,28 +30,28 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 2.1.2
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: 2.1.2
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '13.0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '13.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,31 +66,17 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '3.0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rubocop
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
69
|
description: Provides classes for creating, parsing and rendering SongPro files
|
|
84
70
|
email:
|
|
85
|
-
-
|
|
71
|
+
- polymonic@gmail.com
|
|
86
72
|
executables: []
|
|
87
73
|
extensions: []
|
|
88
74
|
extra_rdoc_files: []
|
|
89
75
|
files:
|
|
76
|
+
- ".github/workflows/build.yml"
|
|
90
77
|
- ".gitignore"
|
|
91
78
|
- ".rspec"
|
|
92
79
|
- ".ruby-version"
|
|
93
|
-
- ".travis.yml"
|
|
94
80
|
- Gemfile
|
|
95
81
|
- Gemfile.lock
|
|
96
82
|
- LICENSE.txt
|