saytime 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4de644fd00e24e59305c2261b3c7a9d0883cb341
4
+ data.tar.gz: 757b090db484c14491365633fa2735ded7a034d7
5
+ SHA512:
6
+ metadata.gz: 72d19ea8741cb6b6f1f46e6d748a19e66aa2d9241bdafbe29ac09f82b15b3363c0a142202b10b7ef5d11e3ff8fd509d90bf364a55e7e5d3c141108bed597151f
7
+ data.tar.gz: e422c6d6c7b4d15598d5296b8e2b93c3e93416e0c0addd046c0d19557bbdae506b2eb1913a862ba86a5555f6457f20f75013390302b87a180cd58bcc262f62b8
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,5 @@
1
+ se!�� ��(�]
2
+ ���L%���G�35)��qHoGn�p����,���vy����
3
+ v9�8���j3dʼ��^tvS�}��@
- )Z~����-
4
+ ��)u��,��%���|��
5
+ � �-��J���Rf
data.tar.gz.sig ADDED
Binary file
data/lib/saytime.rb ADDED
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: saytime.rb
4
+
5
+ require 'wavefile'
6
+ require 'rxfhelper'
7
+
8
+ # Making the WAV files
9
+ # ======================
10
+
11
+ # The wav files were produced by saying the following in 1 continuos recording:
12
+
13
+ # the time is 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 40 50 am pm
14
+
15
+ # the files were then manually split into wav files using the sound editing
16
+ # software called Audacity
17
+
18
+
19
+ module LIBRARY
20
+
21
+ def fetch_filepath(filename)
22
+
23
+ if File.basename() == filename then
24
+ lib = File.dirname(__FILE__)
25
+ File.join(lib,'..','wav',filename)
26
+ else
27
+ filename
28
+ end
29
+
30
+ end
31
+
32
+ def fetch_file(filename)
33
+
34
+ filepath = fetch_filepath filename
35
+ read filepath
36
+ end
37
+
38
+ def read(s)
39
+ RXFHelper.read(s).first
40
+ end
41
+ end
42
+
43
+ class Saytime
44
+ include WaveFile
45
+ include LIBRARY
46
+
47
+ def initialize(filepath='')
48
+
49
+ @filepath = filepath
50
+ Dir.chdir filepath
51
+
52
+ end
53
+
54
+ def now(wav_player='play')
55
+
56
+ make_wav()
57
+ `#{wav_player} time.wav`
58
+
59
+ end
60
+
61
+ private
62
+
63
+ def append_wavs(wav_files, target_wav)
64
+
65
+ Writer.new(target_wav, Format.new(:stereo, :pcm_16, 44100)) do |writer|
66
+
67
+ wav_files.each do |name|
68
+
69
+ file_name = @filepath.empty? ? name : File.join(@filepath, name)
70
+
71
+ Reader.new(file_name).each_buffer(samples_per_buffer=4096) do |buffer|
72
+ writer.write(buffer)
73
+ end
74
+
75
+ end
76
+ end
77
+
78
+ end
79
+
80
+ def make_wav()
81
+
82
+ a = ['the_time_is']
83
+ h, m, meridiem = Time.now.strftime("%H %M %P").split
84
+ a << h
85
+ a.concat (m.length > 1 ? [m[0] + '0', m[1]] : [m])
86
+ a << meridiem
87
+
88
+ a.reject!{|x| x =~ /^0/}
89
+
90
+ append_wavs(a.map{|x| x + '.wav'}, 'time.wav')
91
+
92
+ end
93
+
94
+ end
95
+
data/wav/1.wav ADDED
Binary file
data/wav/10.wav ADDED
Binary file
data/wav/11.wav ADDED
Binary file
data/wav/12.wav ADDED
Binary file
data/wav/13.wav ADDED
Binary file
data/wav/14.wav ADDED
Binary file
data/wav/15.wav ADDED
Binary file
data/wav/16.wav ADDED
Binary file
data/wav/17.wav ADDED
Binary file
data/wav/18.wav ADDED
Binary file
data/wav/19.wav ADDED
Binary file
data/wav/2.wav ADDED
Binary file
data/wav/20.wav ADDED
Binary file
data/wav/3.wav ADDED
Binary file
data/wav/30.wav ADDED
Binary file
data/wav/4.wav ADDED
Binary file
data/wav/40.wav ADDED
Binary file
data/wav/5.wav ADDED
Binary file
data/wav/50.wav ADDED
Binary file
data/wav/6.wav ADDED
Binary file
data/wav/7.wav ADDED
Binary file
data/wav/8.wav ADDED
Binary file
data/wav/9.wav ADDED
Binary file
data/wav/am.wav ADDED
Binary file
data/wav/pm.wav ADDED
Binary file
Binary file
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: saytime
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE3MDMyMzExNDc1OFoXDTE4MDMyMzExNDc1OFowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAL0WphJI9UmM0W/LSOAOc1DOafnVhkPWL5THXDVBgMLWpR3tDOoTwwdJmaWg
19
+ dlWWoQdHnghcsT9+UMyo/DVGp5dS2qNqXRle8QBDurNwbHBNpbqUbG+sTqhmClff
20
+ c8HaAAoGwsL/0NyolGwxznK0z0vmiZEohSEiOHFSZyoV07hjvuw0ORkg8tarS9YG
21
+ w3vfwT0dXa+z0+P5bd2zMwX5wrdlj8lB5xa52N9wueTMDPeLRCmuHcC9d+ui1NGu
22
+ 4Jd0ycFFZ5tud2eVAWbkuuPDN2tzGmAbSIRLCoGhM9dNQHWmBxr5Q2S0lmCHq+jC
23
+ +AppRaTAOaBNdUU6bc1NroPt+qECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQU03/dL85w5lY3y+mzAeD8SkjI0tAwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAlKEqkw1C
27
+ QuMrXQp9iShiDT5T5vZSka6VdbOBgRZoGHDw6Cs4AGthfqG42pMOCi5lNW9W6Ycn
28
+ dKkcF/LraHD6lJarJoS+fXQKC553rX3IiEwurBSx6lYrzOOMwexNVpRWV+l2kMjl
29
+ i/rv3CdJ1OofkGKYj/UINJffVFU9QCut0+mkaS1eYBNcHh0n6V2KXgsrordofJqy
30
+ zyaEG4J/7SpaZb0R7Y0ArOS+onK/UVQb7uPicnGS8XVUoD0IJeiwm/WrhqUoXN1U
31
+ cdGREuz7BImPZaySHDLoBadQ+lwiteIcGPf/YWLggY8ZCCrGWxrPPYDDd1G0sb9C
32
+ whvXPDQOO3FOLw==
33
+ -----END CERTIFICATE-----
34
+ date: 2017-03-23 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: wavefile
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.8'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.8.1
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.8'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.8.1
56
+ - !ruby/object:Gem::Dependency
57
+ name: rxfhelper
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.4'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 0.4.2
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.4'
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.4.2
76
+ description:
77
+ email: james@jamesrobertson.eu
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - lib/saytime.rb
83
+ - wav/1.wav
84
+ - wav/10.wav
85
+ - wav/11.wav
86
+ - wav/12.wav
87
+ - wav/13.wav
88
+ - wav/14.wav
89
+ - wav/15.wav
90
+ - wav/16.wav
91
+ - wav/17.wav
92
+ - wav/18.wav
93
+ - wav/19.wav
94
+ - wav/2.wav
95
+ - wav/20.wav
96
+ - wav/3.wav
97
+ - wav/30.wav
98
+ - wav/4.wav
99
+ - wav/40.wav
100
+ - wav/5.wav
101
+ - wav/50.wav
102
+ - wav/6.wav
103
+ - wav/7.wav
104
+ - wav/8.wav
105
+ - wav/9.wav
106
+ - wav/am.wav
107
+ - wav/pm.wav
108
+ - wav/the_time_is.wav
109
+ homepage: https://github.com/jrobertson/saytime
110
+ licenses:
111
+ - MIT
112
+ metadata: {}
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ requirements: []
128
+ rubyforge_project:
129
+ rubygems_version: 2.6.8
130
+ signing_key:
131
+ specification_version: 4
132
+ summary: Speaks the local time in English using WAV files stiched together
133
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ b�[�������fpՖ��� B�M�m�O߰�*4{����.���^��� d�
2
+ �C�TPi�Xx��aq�
3
+ �v�uS�m"~m8k& �9d��o�< p���t�m�\}�fANC���7���4P��@t�I��̮t(��G�3���ܽ����n�"9�-ˏ<�갦���FB�� 5�eL�ҲŻ*�*t��hOm����7i�%�N�/F'q,$���k���Q>٧뉮_��ُm<�|c�X