howzit 2.1.14 → 2.1.15
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/.gitignore +1 -0
 - data/CHANGELOG.md +10 -0
 - data/README.rdoc +6 -0
 - data/Rakefile +15 -5
 - data/bin/howzit +2 -4
 - data/docker/Dockerfile-2.6 +1 -1
 - data/docker/Dockerfile-2.7 +1 -1
 - data/docker/Dockerfile-3.0 +1 -1
 - data/docker/Dockerfile-3.2 +11 -0
 - data/docker/bash_profile +1 -0
 - data/lib/howzit/buildnote.rb +6 -2
 - data/lib/howzit/config.rb +28 -1
 - data/lib/howzit/prompt.rb +16 -0
 - data/lib/howzit/version.rb +1 -1
 - data/lib/howzit.rb +2 -2
 - data/scripts/runtests.sh +3 -1
 - data/spec/buildnote_spec.rb +1 -1
 - data/spec/spec_helper.rb +1 -0
 - data/spec/topic_spec.rb +4 -1
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 801a2edf83210d0abd3cf17ab9c9259469429478c48b8245df7475bde19c6676
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c47dd24e16f255fcbbd0ac5acadb3c57f423bda0237bbbb85b43f8c82e08b0db
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f8ea4385da70cb5cf7e8d66b5352f164d7cee71b050cf47a544539bf61d0ffd95b4c46f77347b8cf016fd50bd9edf6f7fe1b088fb4f8d324af9343c833334204
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 7bc8190df842331c74ab4dc0146262b886c1174d3fcf2faef35dc536d0622fe29c2868c4db6e2067e1198c801116d8b67bb0272214cfe8a75dd210a86ec8db66
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.rdoc
    ADDED
    
    
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -6,6 +6,13 @@ require 'rspec/core/rake_task' 
     | 
|
| 
       6 
6 
     | 
    
         
             
            require 'rubocop/rake_task'
         
     | 
| 
       7 
7 
     | 
    
         
             
            require 'yard'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'tty-spinner'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'rdoc/task'
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Rake::RDocTask.new do |rd|
         
     | 
| 
      
 12 
     | 
    
         
            +
              rd.main = 'README.rdoc'
         
     | 
| 
      
 13 
     | 
    
         
            +
              rd.rdoc_files.include('README.rdoc', 'lib/**/*.rb', 'bin/**/*')
         
     | 
| 
      
 14 
     | 
    
         
            +
              rd.title = 'Howzit'
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
       9 
16 
     | 
    
         | 
| 
       10 
17 
     | 
    
         
             
            task default: %i[test yard]
         
     | 
| 
       11 
18 
     | 
    
         | 
| 
         @@ -41,17 +48,20 @@ task :dockertest, :version, :login do |_, args| 
     | 
|
| 
       41 
48 
     | 
    
         
             
              args.with_defaults(version: 'all', login: false)
         
     | 
| 
       42 
49 
     | 
    
         
             
              case args[:version]
         
     | 
| 
       43 
50 
     | 
    
         
             
              when /^a/
         
     | 
| 
       44 
     | 
    
         
            -
                %w[ 
     | 
| 
      
 51 
     | 
    
         
            +
                %w[2 3 32].each do |v|
         
     | 
| 
       45 
52 
     | 
    
         
             
                  Rake::Task['dockertest'].reenable
         
     | 
| 
       46 
53 
     | 
    
         
             
                  Rake::Task['dockertest'].invoke(v, false)
         
     | 
| 
       47 
54 
     | 
    
         
             
                end
         
     | 
| 
       48 
55 
     | 
    
         
             
                Process.exit 0
         
     | 
| 
      
 56 
     | 
    
         
            +
              when /^32/
         
     | 
| 
      
 57 
     | 
    
         
            +
                img = 'howzittest32'
         
     | 
| 
      
 58 
     | 
    
         
            +
                file = 'docker/Dockerfile-3.2'
         
     | 
| 
       49 
59 
     | 
    
         
             
              when /^3/
         
     | 
| 
       50 
60 
     | 
    
         
             
                img = 'howzittest3'
         
     | 
| 
       51 
61 
     | 
    
         
             
                file = 'docker/Dockerfile-3.0'
         
     | 
| 
       52 
     | 
    
         
            -
              when /6$/
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 62 
     | 
    
         
            +
              # when /6$/
         
     | 
| 
      
 63 
     | 
    
         
            +
              #   img = 'howzittest26'
         
     | 
| 
      
 64 
     | 
    
         
            +
              #   file = 'docker/Dockerfile-2.6'
         
     | 
| 
       55 
65 
     | 
    
         
             
              when /(^2|7$)/
         
     | 
| 
       56 
66 
     | 
    
         
             
                img = 'howzittest27'
         
     | 
| 
       57 
67 
     | 
    
         
             
                file = 'docker/Dockerfile-2.7'
         
     | 
| 
         @@ -64,7 +74,7 @@ task :dockertest, :version, :login do |_, args| 
     | 
|
| 
       64 
74 
     | 
    
         | 
| 
       65 
75 
     | 
    
         
             
              exec "docker run -v #{File.dirname(__FILE__)}:/howzit -it #{img} /bin/bash -l" if args[:login]
         
     | 
| 
       66 
76 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
              spinner = TTY::Spinner.new( 
     | 
| 
      
 77 
     | 
    
         
            +
              spinner = TTY::Spinner.new("[:spinner] Running tests #{img}", hide_cursor: true)
         
     | 
| 
       68 
78 
     | 
    
         | 
| 
       69 
79 
     | 
    
         
             
              spinner.auto_spin
         
     | 
| 
       70 
80 
     | 
    
         
             
              res = `docker run --rm -v #{File.dirname(__FILE__)}:/howzit -it #{img}`
         
     | 
    
        data/bin/howzit
    CHANGED
    
    | 
         @@ -159,15 +159,13 @@ OptionParser.new do |opts| 
     | 
|
| 
       159 
159 
     | 
    
         
             
                Process.exit 0
         
     | 
| 
       160 
160 
     | 
    
         
             
              end
         
     | 
| 
       161 
161 
     | 
    
         | 
| 
       162 
     | 
    
         
            -
               
     | 
| 
       163 
     | 
    
         
            -
              desc = %(Edit buildnotes file in current working directory using editor (#{editor}))
         
     | 
| 
      
 162 
     | 
    
         
            +
              desc = %(Edit buildnotes file in current working directory using default editor)
         
     | 
| 
       164 
163 
     | 
    
         
             
              opts.on('-e', '--edit', desc) do
         
     | 
| 
       165 
164 
     | 
    
         
             
                Howzit.buildnote.edit
         
     | 
| 
       166 
165 
     | 
    
         
             
                Process.exit 0
         
     | 
| 
       167 
166 
     | 
    
         
             
              end
         
     | 
| 
       168 
167 
     | 
    
         | 
| 
       169 
     | 
    
         
            -
               
     | 
| 
       170 
     | 
    
         
            -
              opts.on('--edit-config', "Edit configuration file using editor (#{config_editor})") do
         
     | 
| 
      
 168 
     | 
    
         
            +
              opts.on('--edit-config', "Edit configuration file using default editor") do
         
     | 
| 
       171 
169 
     | 
    
         
             
                Howzit.config.editor
         
     | 
| 
       172 
170 
     | 
    
         
             
                Process.exit 0
         
     | 
| 
       173 
171 
     | 
    
         
             
              end
         
     | 
    
        data/docker/Dockerfile-2.6
    CHANGED
    
    
    
        data/docker/Dockerfile-2.7
    CHANGED
    
    
    
        data/docker/Dockerfile-3.0
    CHANGED
    
    
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            FROM ruby:3.2.0
         
     | 
| 
      
 2 
     | 
    
         
            +
            # RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
         
     | 
| 
      
 3 
     | 
    
         
            +
            RUN mkdir /howzit
         
     | 
| 
      
 4 
     | 
    
         
            +
            WORKDIR /howzit
         
     | 
| 
      
 5 
     | 
    
         
            +
            # COPY ./ /howzit/
         
     | 
| 
      
 6 
     | 
    
         
            +
            RUN gem install bundler:2.2.29
         
     | 
| 
      
 7 
     | 
    
         
            +
            RUN apt-get update -y
         
     | 
| 
      
 8 
     | 
    
         
            +
            RUN apt-get install -y less vim
         
     | 
| 
      
 9 
     | 
    
         
            +
            COPY ./docker/inputrc /root/.inputrc
         
     | 
| 
      
 10 
     | 
    
         
            +
            COPY ./docker/bash_profile /root/.bash_profile
         
     | 
| 
      
 11 
     | 
    
         
            +
            CMD ["scripts/runtests.sh"]
         
     | 
    
        data/docker/bash_profile
    CHANGED
    
    
    
        data/lib/howzit/buildnote.rb
    CHANGED
    
    | 
         @@ -499,7 +499,7 @@ module Howzit 
     | 
|
| 
       499 
499 
     | 
    
         
             
                ## @return     [String] file path
         
     | 
| 
       500 
500 
     | 
    
         
             
                ##
         
     | 
| 
       501 
501 
     | 
    
         
             
                def glob_note
         
     | 
| 
       502 
     | 
    
         
            -
                  Dir.glob('*.{txt,md,markdown}').select(&:build_note?)[0]
         
     | 
| 
      
 502 
     | 
    
         
            +
                  Dir.glob('*.{txt,md,markdown}').select(&:build_note?).sort[0]
         
     | 
| 
       503 
503 
     | 
    
         
             
                end
         
     | 
| 
       504 
504 
     | 
    
         | 
| 
       505 
505 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -655,12 +655,14 @@ module Howzit 
     | 
|
| 
       655 
655 
     | 
    
         
             
                def edit_note
         
     | 
| 
       656 
656 
     | 
    
         
             
                  editor = Howzit.options.fetch(:editor, ENV['EDITOR'])
         
     | 
| 
       657 
657 
     | 
    
         | 
| 
      
 658 
     | 
    
         
            +
                  editor = Howzit.config.update_editor if editor.nil?
         
     | 
| 
      
 659 
     | 
    
         
            +
             
     | 
| 
       658 
660 
     | 
    
         
             
                  raise 'No editor defined' if editor.nil?
         
     | 
| 
       659 
661 
     | 
    
         | 
| 
       660 
662 
     | 
    
         
             
                  raise "Invalid editor (#{editor})" unless Util.valid_command?(editor)
         
     | 
| 
       661 
663 
     | 
    
         | 
| 
       662 
664 
     | 
    
         
             
                  create_note(prompt: true) if note_file.nil?
         
     | 
| 
       663 
     | 
    
         
            -
                   
     | 
| 
      
 665 
     | 
    
         
            +
                  exec %(#{editor} "#{note_file}")
         
     | 
| 
       664 
666 
     | 
    
         
             
                end
         
     | 
| 
       665 
667 
     | 
    
         | 
| 
       666 
668 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -680,6 +682,8 @@ module Howzit 
     | 
|
| 
       680 
682 
     | 
    
         
             
                def edit_template_file(file)
         
     | 
| 
       681 
683 
     | 
    
         
             
                  editor = Howzit.options.fetch(:editor, ENV['EDITOR'])
         
     | 
| 
       682 
684 
     | 
    
         | 
| 
      
 685 
     | 
    
         
            +
                  editor = Howzit.config.update_editor if editor.nil?
         
     | 
| 
      
 686 
     | 
    
         
            +
             
     | 
| 
       683 
687 
     | 
    
         
             
                  raise 'No editor defined' if editor.nil?
         
     | 
| 
       684 
688 
     | 
    
         | 
| 
       685 
689 
     | 
    
         
             
                  raise "Invalid editor (#{editor})" unless Util.valid_command?(editor)
         
     | 
    
        data/lib/howzit/config.rb
    CHANGED
    
    | 
         @@ -127,6 +127,31 @@ module Howzit 
     | 
|
| 
       127 
127 
     | 
    
         
             
                  edit_config
         
     | 
| 
       128 
128 
     | 
    
         
             
                end
         
     | 
| 
       129 
129 
     | 
    
         | 
| 
      
 130 
     | 
    
         
            +
                ## Update editor config
         
     | 
| 
      
 131 
     | 
    
         
            +
                def update_editor
         
     | 
| 
      
 132 
     | 
    
         
            +
                  puts 'No $EDITOR defined, no value in config'
         
     | 
| 
      
 133 
     | 
    
         
            +
                  editor = Prompt.read_editor
         
     | 
| 
      
 134 
     | 
    
         
            +
                  if editor.nil?
         
     | 
| 
      
 135 
     | 
    
         
            +
                    'Cancelled, no editor stored.'
         
     | 
| 
      
 136 
     | 
    
         
            +
                    Process.exit 1
         
     | 
| 
      
 137 
     | 
    
         
            +
                  end
         
     | 
| 
      
 138 
     | 
    
         
            +
                  update_config_option({ config_editor: editor, editor: editor })
         
     | 
| 
      
 139 
     | 
    
         
            +
                  puts "Default editor set to #{editor}, modify in config file"
         
     | 
| 
      
 140 
     | 
    
         
            +
                  editor
         
     | 
| 
      
 141 
     | 
    
         
            +
                end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                ##
         
     | 
| 
      
 144 
     | 
    
         
            +
                ## Update a config option and resave config file
         
     | 
| 
      
 145 
     | 
    
         
            +
                ##
         
     | 
| 
      
 146 
     | 
    
         
            +
                ## @param      options    [Hash] key value pairs
         
     | 
| 
      
 147 
     | 
    
         
            +
                ##
         
     | 
| 
      
 148 
     | 
    
         
            +
                def update_config_option(options)
         
     | 
| 
      
 149 
     | 
    
         
            +
                  options.each do |key, value|
         
     | 
| 
      
 150 
     | 
    
         
            +
                    Howzit.options[key] = value
         
     | 
| 
      
 151 
     | 
    
         
            +
                  end
         
     | 
| 
      
 152 
     | 
    
         
            +
                  write_config(Howzit.options)
         
     | 
| 
      
 153 
     | 
    
         
            +
                end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
       130 
155 
     | 
    
         
             
                private
         
     | 
| 
       131 
156 
     | 
    
         | 
| 
       132 
157 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -263,13 +288,15 @@ module Howzit 
     | 
|
| 
       263 
288 
     | 
    
         
             
                def edit_config
         
     | 
| 
       264 
289 
     | 
    
         
             
                  editor = Howzit.options.fetch(:config_editor, ENV['EDITOR'])
         
     | 
| 
       265 
290 
     | 
    
         | 
| 
      
 291 
     | 
    
         
            +
                  editor = update_editor if editor.nil?
         
     | 
| 
      
 292 
     | 
    
         
            +
             
     | 
| 
       266 
293 
     | 
    
         
             
                  raise 'No config_editor defined' if editor.nil?
         
     | 
| 
       267 
294 
     | 
    
         | 
| 
       268 
295 
     | 
    
         
             
                  # raise "Invalid editor (#{editor})" unless Util.valid_command?(editor)
         
     | 
| 
       269 
296 
     | 
    
         | 
| 
       270 
297 
     | 
    
         
             
                  load_config
         
     | 
| 
       271 
298 
     | 
    
         
             
                  if Util.valid_command?(editor.split(/ /).first)
         
     | 
| 
       272 
     | 
    
         
            -
                     
     | 
| 
      
 299 
     | 
    
         
            +
                    exec %(#{editor} "#{config_file}")
         
     | 
| 
       273 
300 
     | 
    
         
             
                  else
         
     | 
| 
       274 
301 
     | 
    
         
             
                    `open -a "#{editor}" "#{config_file}"`
         
     | 
| 
       275 
302 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/howzit/prompt.rb
    CHANGED
    
    | 
         @@ -159,6 +159,22 @@ module Howzit 
     | 
|
| 
       159 
159 
     | 
    
         
             
                    system('stty', @stty_save)
         
     | 
| 
       160 
160 
     | 
    
         
             
                  end
         
     | 
| 
       161 
161 
     | 
    
         | 
| 
      
 162 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 163 
     | 
    
         
            +
                  ## Request editor
         
     | 
| 
      
 164 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 165 
     | 
    
         
            +
                  def read_editor(default = nil)
         
     | 
| 
      
 166 
     | 
    
         
            +
                    @stty_save = `stty -g`.chomp
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
                    default ||= 'vim'
         
     | 
| 
      
 169 
     | 
    
         
            +
                    prompt = "Define a default editor command (default #{default}): "
         
     | 
| 
      
 170 
     | 
    
         
            +
                    res = Readline.readline(prompt, true).squeeze(' ').strip
         
     | 
| 
      
 171 
     | 
    
         
            +
                    res = default if res.empty?
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
                    Util.valid_command?(res) ? res : default
         
     | 
| 
      
 174 
     | 
    
         
            +
                  ensure
         
     | 
| 
      
 175 
     | 
    
         
            +
                    system('stty', @stty_save)
         
     | 
| 
      
 176 
     | 
    
         
            +
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
       162 
178 
     | 
    
         
             
                  ##
         
     | 
| 
       163 
179 
     | 
    
         
             
                  ## Convert a response to an Integer
         
     | 
| 
       164 
180 
     | 
    
         
             
                  ##
         
     | 
    
        data/lib/howzit/version.rb
    CHANGED
    
    
    
        data/lib/howzit.rb
    CHANGED
    
    
    
        data/scripts/runtests.sh
    CHANGED
    
    
    
        data/spec/buildnote_spec.rb
    CHANGED
    
    
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        data/spec/topic_spec.rb
    CHANGED
    
    | 
         @@ -21,7 +21,10 @@ describe Howzit::Topic do 
     | 
|
| 
       21 
21 
     | 
    
         
             
            end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
            describe Howzit::Topic do
         
     | 
| 
       24 
     | 
    
         
            -
              subject(:topic) { 
     | 
| 
      
 24 
     | 
    
         
            +
              subject(:topic) {
         
     | 
| 
      
 25 
     | 
    
         
            +
                bn = Howzit.buildnote
         
     | 
| 
      
 26 
     | 
    
         
            +
                bn.find_topic('Topic Balogna')[0]
         
     | 
| 
      
 27 
     | 
    
         
            +
              }
         
     | 
| 
       25 
28 
     | 
    
         | 
| 
       26 
29 
     | 
    
         
             
              describe '.title' do
         
     | 
| 
       27 
30 
     | 
    
         
             
                it 'has the correct title' do
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: howzit
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.15
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Brett Terpstra
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2024-08- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-08-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -304,12 +304,14 @@ files: 
     | 
|
| 
       304 
304 
     | 
    
         
             
            - Guardfile
         
     | 
| 
       305 
305 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       306 
306 
     | 
    
         
             
            - README.md
         
     | 
| 
      
 307 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
       307 
308 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       308 
309 
     | 
    
         
             
            - bin/howzit
         
     | 
| 
       309 
310 
     | 
    
         
             
            - docker/Dockerfile
         
     | 
| 
       310 
311 
     | 
    
         
             
            - docker/Dockerfile-2.6
         
     | 
| 
       311 
312 
     | 
    
         
             
            - docker/Dockerfile-2.7
         
     | 
| 
       312 
313 
     | 
    
         
             
            - docker/Dockerfile-3.0
         
     | 
| 
      
 314 
     | 
    
         
            +
            - docker/Dockerfile-3.2
         
     | 
| 
       313 
315 
     | 
    
         
             
            - docker/bash_profile
         
     | 
| 
       314 
316 
     | 
    
         
             
            - docker/inputrc
         
     | 
| 
       315 
317 
     | 
    
         
             
            - fish/completions/bld.fish
         
     |