gemmyrb 0.0.8 → 0.0.9
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/README.md +3 -0
- data/lib/gemmy/components/word_speaker.rb +37 -25
- data/lib/gemmy/tasks/make_gem.rb +2 -2
- data/lib/gemmy/version.rb +1 -1
- data/lib/gemmy.rb +8 -1
- metadata +39 -59
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 88d44792783df72bba22788805d9c9921a076e38
         | 
| 4 | 
            +
              data.tar.gz: 37b1cfe226df4006674b30f53c89b0376edde271
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: feb8fe730f9fcd32dd0ebfb5fc10e6fe3eeb58de5be37654d42d1adefb04bcc6c82a354803c33a841f85cf1af7ccfd13ead3fb902a6ac8ed872b34437d117c27
         | 
| 7 | 
            +
              data.tar.gz: 6dc21be406312cdc5a00d0a00c871d6b8bf3a8966d7d31a40df7e2f7724930257d18ed1682ff90d539f10a5df5746f7575dbc792be1d0258c3bf411f6f7298fd
         | 
    
        data/README.md
    CHANGED
    
    | @@ -21,6 +21,9 @@ documents: | |
| 21 21 | 
             
              - [examples/02_using_globally.rb](./examples/02_using_globally.rb)
         | 
| 22 22 | 
             
            - _Shell commands and other one-off processes_
         | 
| 23 23 | 
             
              - [examples/03_shell_commands.rb](./examples/03_shell_commands.rb)
         | 
| 24 | 
            +
            - _Natural language utilities_
         | 
| 25 | 
            +
              - [examples/04_language_stuff.rb](./examples/04_language_stuff.rb)
         | 
| 26 | 
            +
             | 
| 24 27 |  | 
| 25 28 | 
             
            **To see a full list of the patched methods, see the [rubydoc](http://www.rubydoc.info/gems/gemmyrb)**
         | 
| 26 29 |  | 
| @@ -1,13 +1,10 @@ | |
| 1 1 | 
             
            module Gemmy::Components::WordSpeaker
         | 
| 2 | 
            -
              include ESpeak
         | 
| 3 2 |  | 
| 4 3 | 
             
              Gemmy.patches.each { |x| using x }
         | 
| 5 4 |  | 
| 6 | 
            -
              def speak_sentence( | 
| 7 | 
            -
                Gemmy | 
| 8 | 
            -
             | 
| 9 | 
            -
                  container_length,
         | 
| 10 | 
            -
                ).speak(path: path)
         | 
| 5 | 
            +
              def speak_sentence(*args)
         | 
| 6 | 
            +
                sentence = Gemmy.component("word_speaker/sentence").new(*args)
         | 
| 7 | 
            +
                sentence.save_to_file.speak_file
         | 
| 11 8 | 
             
              end
         | 
| 12 9 |  | 
| 13 10 | 
             
              class Sentence
         | 
| @@ -19,32 +16,47 @@ module Gemmy::Components::WordSpeaker | |
| 19 16 | 
             
                %i{
         | 
| 20 17 | 
             
                  sentence
         | 
| 21 18 | 
             
                  sentence_syllables
         | 
| 22 | 
            -
                   | 
| 23 | 
            -
             | 
| 19 | 
            +
                  syllables
         | 
| 20 | 
            +
                  syllable_length
         | 
| 21 | 
            +
                  path
         | 
| 22 | 
            +
                  word_paths
         | 
| 23 | 
            +
                  total_len
         | 
| 24 | 
            +
                  cached
         | 
| 25 | 
            +
                  silent
         | 
| 26 | 
            +
                  idx
         | 
| 27 | 
            +
                }.each &m(:attr_accessor)
         | 
| 24 28 |  | 
| 25 | 
            -
                def initialize( | 
| 29 | 
            +
                def initialize(
         | 
| 30 | 
            +
                  sentence:, syllables: 8, syllable_length: 0.2, path: nil, cached: false,
         | 
| 31 | 
            +
                  silent: false
         | 
| 32 | 
            +
                )
         | 
| 26 33 | 
             
                  @sentence = sentence
         | 
| 27 34 | 
             
                  @sentence_syllables = @sentence.syllable_count.to_f
         | 
| 28 | 
            -
                  @ | 
| 35 | 
            +
                  @syllables = syllables.to_f
         | 
| 36 | 
            +
                  @path = path
         | 
| 37 | 
            +
                  @syllable_length = syllable_length.to_f
         | 
| 38 | 
            +
                  @total_len = syllable_length * @syllables
         | 
| 39 | 
            +
                  @cached = cached
         | 
| 40 | 
            +
                  @silent = silent
         | 
| 41 | 
            +
                  @idx = 0
         | 
| 29 42 | 
             
                end
         | 
| 30 43 |  | 
| 31 | 
            -
                def  | 
| 32 | 
            -
                   | 
| 33 | 
            -
                   | 
| 34 | 
            -
                   | 
| 35 | 
            -
                   | 
| 36 | 
            -
                   | 
| 37 | 
            -
             | 
| 38 | 
            -
                   | 
| 39 | 
            -
                  ` | 
| 44 | 
            +
                def save_to_file
         | 
| 45 | 
            +
                  return self if @sentence.empty? || cached
         | 
| 46 | 
            +
                  `espeak -v english-us -w #{path} "#{sentence}"`
         | 
| 47 | 
            +
                  sentence_len = `soxi -D #{path}`.to_f
         | 
| 48 | 
            +
                  diff = 1 / (total_len / sentence_len)
         | 
| 49 | 
            +
                  tmp_path = "wav/tmp.wav"
         | 
| 50 | 
            +
                  `sox #{path} #{tmp_path} tempo #{diff.round(2)}`
         | 
| 51 | 
            +
                  `rm #{path}`
         | 
| 52 | 
            +
                  `mv #{tmp_path} #{path}`
         | 
| 53 | 
            +
                  self
         | 
| 40 54 | 
             
                end
         | 
| 41 55 |  | 
| 42 | 
            -
                def  | 
| 43 | 
            -
                   | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
                def diff_multiplier
         | 
| 47 | 
            -
                  1.0 / diff_factor
         | 
| 56 | 
            +
                def speak_file
         | 
| 57 | 
            +
                  return self if @sentence.empty? || silent
         | 
| 58 | 
            +
                  `aplay #{path}`
         | 
| 59 | 
            +
                  self
         | 
| 48 60 | 
             
                end
         | 
| 49 61 |  | 
| 50 62 | 
             
              end
         | 
    
        data/lib/gemmy/tasks/make_gem.rb
    CHANGED
    
    | @@ -34,7 +34,7 @@ class Gemmy::Tasks::MakeGem | |
| 34 34 | 
             
              #
         | 
| 35 35 | 
             
              def make_gem(name)
         | 
| 36 36 | 
             
                @name = name
         | 
| 37 | 
            -
                @class_name = name. | 
| 37 | 
            +
                @class_name = name.camelcase
         | 
| 38 38 |  | 
| 39 39 | 
             
                usage_io
         | 
| 40 40 | 
             
                create_root_dir
         | 
| @@ -136,7 +136,7 @@ class Gemmy::Tasks::MakeGem | |
| 136 136 | 
             
                gemspec_text = <<-TXT.unindent
         | 
| 137 137 | 
             
                  require_relative './lib/version.rb'
         | 
| 138 138 | 
             
                  Gem::Specification.new do |s|
         | 
| 139 | 
            -
                    s.name        = name
         | 
| 139 | 
            +
                    s.name        = "#{name}"
         | 
| 140 140 | 
             
                    s.version     = #{class_name}::VERSION
         | 
| 141 141 | 
             
                    s.date        = "#{Time.now.strftime("%Y-%m-%d")}"
         | 
| 142 142 | 
             
                    s.summary     = "#{summary}"
         | 
    
        data/lib/gemmy/version.rb
    CHANGED
    
    
    
        data/lib/gemmy.rb
    CHANGED
    
    | @@ -8,12 +8,19 @@ require 'corefines' | |
| 8 8 | 
             
            require 'sentence_interpreter'
         | 
| 9 9 | 
             
            require 'engtagger'
         | 
| 10 10 | 
             
            require 'odyssey'
         | 
| 11 | 
            -
            require 'espeak'
         | 
| 12 11 |  | 
| 13 12 | 
             
            # Container class for all the functionality.
         | 
| 14 13 | 
             
            #
         | 
| 15 14 | 
             
            class Gemmy
         | 
| 16 15 |  | 
| 16 | 
            +
              # Slightly friendlier way to reference component classes
         | 
| 17 | 
            +
              # Gemmy.component("word_speaker/sentence")
         | 
| 18 | 
            +
              def self.component(path)
         | 
| 19 | 
            +
                Gemmy::Components.const_get(
         | 
| 20 | 
            +
                  path.split("/").map { |part| part.camelcase }.join("::")
         | 
| 21 | 
            +
                )
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 17 24 | 
             
              # Used by patches to get a reference to static patch classes
         | 
| 18 25 | 
             
              # Without this there would be long, unqualified constant names such as
         | 
| 19 26 | 
             
              # Gemmy::Patches::SymbolPatch::InstanceMethods::Call
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gemmyrb
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - max pleaner
         | 
| @@ -14,92 +14,86 @@ dependencies: | |
| 14 14 | 
             
              name: colored
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '0'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: activesupport
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - - "~>"
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '4.2'
         | 
| 34 31 | 
             
                - - ">="
         | 
| 35 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 36 | 
            -
                    version:  | 
| 33 | 
            +
                    version: '0'
         | 
| 37 34 | 
             
              type: :runtime
         | 
| 38 35 | 
             
              prerelease: false
         | 
| 39 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 40 37 | 
             
                requirements:
         | 
| 41 | 
            -
                - - "~>"
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            -
                    version: '4.2'
         | 
| 44 38 | 
             
                - - ">="
         | 
| 45 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version:  | 
| 40 | 
            +
                    version: '0'
         | 
| 47 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 42 | 
             
              name: pry
         | 
| 49 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 | 
            -
                - - " | 
| 45 | 
            +
                - - ">="
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 53 | 
            -
                    version: 0 | 
| 47 | 
            +
                    version: '0'
         | 
| 54 48 | 
             
              type: :runtime
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 51 | 
             
                requirements:
         | 
| 58 | 
            -
                - - " | 
| 52 | 
            +
                - - ">="
         | 
| 59 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            -
                    version: 0 | 
| 54 | 
            +
                    version: '0'
         | 
| 61 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 62 56 | 
             
              name: byebug
         | 
| 63 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 64 58 | 
             
                requirements:
         | 
| 65 | 
            -
                - - " | 
| 59 | 
            +
                - - ">="
         | 
| 66 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            -
                    version:  | 
| 61 | 
            +
                    version: '0'
         | 
| 68 62 | 
             
              type: :runtime
         | 
| 69 63 | 
             
              prerelease: false
         | 
| 70 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 71 65 | 
             
                requirements:
         | 
| 72 | 
            -
                - - " | 
| 66 | 
            +
                - - ">="
         | 
| 73 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 | 
            -
                    version:  | 
| 68 | 
            +
                    version: '0'
         | 
| 75 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 76 70 | 
             
              name: thor
         | 
| 77 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 78 72 | 
             
                requirements:
         | 
| 79 | 
            -
                - - " | 
| 73 | 
            +
                - - ">="
         | 
| 80 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 81 | 
            -
                    version: 0 | 
| 75 | 
            +
                    version: '0'
         | 
| 82 76 | 
             
              type: :runtime
         | 
| 83 77 | 
             
              prerelease: false
         | 
| 84 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 85 79 | 
             
                requirements:
         | 
| 86 | 
            -
                - - " | 
| 80 | 
            +
                - - ">="
         | 
| 87 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            -
                    version: 0 | 
| 82 | 
            +
                    version: '0'
         | 
| 89 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 90 84 | 
             
              name: corefines
         | 
| 91 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 92 86 | 
             
                requirements:
         | 
| 93 | 
            -
                - - " | 
| 87 | 
            +
                - - ">="
         | 
| 94 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            -
                    version:  | 
| 89 | 
            +
                    version: '0'
         | 
| 96 90 | 
             
              type: :runtime
         | 
| 97 91 | 
             
              prerelease: false
         | 
| 98 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 99 93 | 
             
                requirements:
         | 
| 100 | 
            -
                - - " | 
| 94 | 
            +
                - - ">="
         | 
| 101 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 102 | 
            -
                    version:  | 
| 96 | 
            +
                    version: '0'
         | 
| 103 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 104 98 | 
             
              name: sentence_interpreter
         | 
| 105 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -118,72 +112,58 @@ dependencies: | |
| 118 112 | 
             
              name: awesome_print
         | 
| 119 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 120 114 | 
             
                requirements:
         | 
| 121 | 
            -
                - - " | 
| 115 | 
            +
                - - ">="
         | 
| 122 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 123 | 
            -
                    version:  | 
| 117 | 
            +
                    version: '0'
         | 
| 124 118 | 
             
              type: :runtime
         | 
| 125 119 | 
             
              prerelease: false
         | 
| 126 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 127 121 | 
             
                requirements:
         | 
| 128 | 
            -
                - - " | 
| 122 | 
            +
                - - ">="
         | 
| 129 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 130 | 
            -
                    version:  | 
| 124 | 
            +
                    version: '0'
         | 
| 131 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 132 126 | 
             
              name: engtagger
         | 
| 133 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 134 128 | 
             
                requirements:
         | 
| 135 | 
            -
                - - " | 
| 129 | 
            +
                - - ">="
         | 
| 136 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 137 | 
            -
                    version: 0 | 
| 131 | 
            +
                    version: '0'
         | 
| 138 132 | 
             
              type: :runtime
         | 
| 139 133 | 
             
              prerelease: false
         | 
| 140 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 141 135 | 
             
                requirements:
         | 
| 142 | 
            -
                - - " | 
| 136 | 
            +
                - - ">="
         | 
| 143 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 144 | 
            -
                    version: 0 | 
| 138 | 
            +
                    version: '0'
         | 
| 145 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 146 140 | 
             
              name: minitest
         | 
| 147 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 148 142 | 
             
                requirements:
         | 
| 149 | 
            -
                - - " | 
| 143 | 
            +
                - - ">="
         | 
| 150 144 | 
             
                  - !ruby/object:Gem::Version
         | 
| 151 | 
            -
                    version:  | 
| 145 | 
            +
                    version: '0'
         | 
| 152 146 | 
             
              type: :runtime
         | 
| 153 147 | 
             
              prerelease: false
         | 
| 154 148 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 155 149 | 
             
                requirements:
         | 
| 156 | 
            -
                - - " | 
| 150 | 
            +
                - - ">="
         | 
| 157 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 158 | 
            -
                    version:  | 
| 152 | 
            +
                    version: '0'
         | 
| 159 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 160 154 | 
             
              name: odyssey
         | 
| 161 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 162 156 | 
             
                requirements:
         | 
| 163 | 
            -
                - - " | 
| 164 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 165 | 
            -
                    version: 0.2.0
         | 
| 166 | 
            -
              type: :runtime
         | 
| 167 | 
            -
              prerelease: false
         | 
| 168 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 169 | 
            -
                requirements:
         | 
| 170 | 
            -
                - - "~>"
         | 
| 171 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 172 | 
            -
                    version: 0.2.0
         | 
| 173 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 174 | 
            -
              name: espeak-ruby
         | 
| 175 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 176 | 
            -
                requirements:
         | 
| 177 | 
            -
                - - "~>"
         | 
| 157 | 
            +
                - - ">="
         | 
| 178 158 | 
             
                  - !ruby/object:Gem::Version
         | 
| 179 | 
            -
                    version:  | 
| 159 | 
            +
                    version: '0'
         | 
| 180 160 | 
             
              type: :runtime
         | 
| 181 161 | 
             
              prerelease: false
         | 
| 182 162 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 183 163 | 
             
                requirements:
         | 
| 184 | 
            -
                - - " | 
| 164 | 
            +
                - - ">="
         | 
| 185 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 186 | 
            -
                    version:  | 
| 166 | 
            +
                    version: '0'
         | 
| 187 167 | 
             
            description: ''
         | 
| 188 168 | 
             
            email: maxpleaner@gmail.com
         | 
| 189 169 | 
             
            executables:
         |