algoliasearch-jekyll 0.4.3 → 0.5.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 +4 -4
- data/README.md +109 -19
- data/algoliasearch-jekyll.gemspec +4 -3
- data/docs/travis-settings.png +0 -0
- data/lib/record_extractor.rb +22 -6
- data/spec/record_extractor_spec.rb +65 -7
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: be7a946ef88f83e9dd443b3bb1cf0192b9809366
         | 
| 4 | 
            +
              data.tar.gz: 613b7ae7df5b1ea5d23393225c9bf9953cddcfd7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 94285229cd205e237c10562c8c15060f69d7986d2074e6267192099aba31d033d31459f36a35f1b699d6b2c6504f7be74474af5ed387106975d9ad17fa6d1a9e
         | 
| 7 | 
            +
              data.tar.gz: 4aefd0b4d45a2d28b4e7ed4b8f56af28c2296cc3ce423894b854b4f97a1ef05e05db11f951c6e23384eac8e149693d60936ae244fa7bc4f42717a024e4a53e77
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 1 | 
             
            # Algolia Jekyll Plugin 
         | 
| 2 2 |  | 
| 3 | 
            -
            [![Gem Version] | 
| 4 | 
            -
            [![Build Status] | 
| 5 | 
            -
            [![Coverage Status] | 
| 6 | 
            -
            [![Code Climate] | 
| 3 | 
            +
            [![Gem Version][1]](http://badge.fury.io/rb/algoliasearch-jekyll)
         | 
| 4 | 
            +
            [![Build Status][2]](https://travis-ci.org/algolia/algoliasearch-jekyll)
         | 
| 5 | 
            +
            [![Coverage Status][3]](https://coveralls.io/github/algolia/algoliasearch-jekyll?branch=master)
         | 
| 6 | 
            +
            [![Code Climate][4]](https://codeclimate.com/github/algolia/algoliasearch-jekyll)
         | 
| 7 7 |  | 
| 8 8 | 
             
            Jekyll plugin to automatically index your Jekyll posts and pages into an
         | 
| 9 9 | 
             
            Algolia index by simply running `jekyll algolia push`.
         | 
| @@ -28,10 +28,10 @@ minimum content to get your started. | |
| 28 28 | 
             
            ```ruby
         | 
| 29 29 | 
             
            source 'https://rubygems.org'
         | 
| 30 30 |  | 
| 31 | 
            -
            gem 'jekyll', ' | 
| 31 | 
            +
            gem 'jekyll', '~> 2.5.3'
         | 
| 32 32 |  | 
| 33 33 | 
             
            group :jekyll_plugins do
         | 
| 34 | 
            -
              gem 'algoliasearch-jekyll'
         | 
| 34 | 
            +
              gem 'algoliasearch-jekyll', '~> 0.4.3'
         | 
| 35 35 | 
             
            end
         | 
| 36 36 | 
             
            ```
         | 
| 37 37 |  | 
| @@ -59,13 +59,13 @@ algolia: | |
| 59 59 | 
             
              index_name:     'your_index_name'
         | 
| 60 60 | 
             
            ```
         | 
| 61 61 |  | 
| 62 | 
            -
            You  | 
| 62 | 
            +
            You write api key will be read from the `ALGOLIA_API_KEY` environment variable.
         | 
| 63 63 | 
             
            You can define it on the same line as your command, allowing you to type
         | 
| 64 | 
            -
            `ALGOLIA_API_KEY=' | 
| 64 | 
            +
            `ALGOLIA_API_KEY='your_write_api_key' jekyll algolia push`.
         | 
| 65 65 |  | 
| 66 66 | 
             
            ### ⚠ Other, unsecure, method ⚠
         | 
| 67 67 |  | 
| 68 | 
            -
            You can also store your  | 
| 68 | 
            +
            You can also store your write api key in a file named `_algolia_api_key`, in
         | 
| 69 69 | 
             
            your source directory. If you do this we __very, very, very strongly__ encourage
         | 
| 70 70 | 
             
            you to make sure the file is not tracked in your versioning system.
         | 
| 71 71 |  | 
| @@ -100,8 +100,10 @@ algolia: | |
| 100 100 |  | 
| 101 101 | 
             
            #### `settings`
         | 
| 102 102 |  | 
| 103 | 
            -
            Here you can pass any  | 
| 104 | 
            -
             | 
| 103 | 
            +
            Here you can pass any specific [index settings][5] to your Algolia index. All
         | 
| 104 | 
            +
            the settings supported by the API can be passed here.
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            ##### Examples 
         | 
| 105 107 |  | 
| 106 108 | 
             
            If you want to activate `distinct` and some snippets for example, you would do:
         | 
| 107 109 |  | 
| @@ -113,6 +115,28 @@ algolia: | |
| 113 115 | 
             
                attributesToSnippet: ['text:20']
         | 
| 114 116 | 
             
            ```
         | 
| 115 117 |  | 
| 118 | 
            +
            If you want to search in other fields than the default ones, you'll have to edit
         | 
| 119 | 
            +
            the `attributesToIndex` (default is `%w(title h1 h2 h3 h4 h5 h6 unordered(text)
         | 
| 120 | 
            +
            unordered(tags))`
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            ```yml
         | 
| 123 | 
            +
            algolia:
         | 
| 124 | 
            +
              settings:
         | 
| 125 | 
            +
                attributesToIndex:
         | 
| 126 | 
            +
                  - title
         | 
| 127 | 
            +
                  - h1
         | 
| 128 | 
            +
                  - h2
         | 
| 129 | 
            +
                  - h3
         | 
| 130 | 
            +
                  - h4
         | 
| 131 | 
            +
                  - h5
         | 
| 132 | 
            +
                  - h6
         | 
| 133 | 
            +
                  - unordered(text)
         | 
| 134 | 
            +
                  - unordered(tags)
         | 
| 135 | 
            +
                  - your_custom_attribute_1
         | 
| 136 | 
            +
                  - your_custom_attribute_2
         | 
| 137 | 
            +
                  - ...
         | 
| 138 | 
            +
            ```
         | 
| 139 | 
            +
             | 
| 116 140 | 
             
            ### Hooks
         | 
| 117 141 |  | 
| 118 142 | 
             
            The `AlgoliaSearchRecordExtractor` contains two methods (`custom_hook_each` and
         | 
| @@ -169,20 +193,86 @@ push` command: | |
| 169 193 |  | 
| 170 194 | 
             
            The `algoliasearch-jekyll` plugin works for versions of Jekyll starting from
         | 
| 171 195 | 
             
            2.5, with a version of Ruby of at least 2.0. You also need
         | 
| 172 | 
            -
            [Bundler] | 
| 196 | 
            +
            [Bundler][6] to easily add the gem as a dependency to Jekyll.
         | 
| 173 197 |  | 
| 174 198 | 
             
            ## Searching
         | 
| 175 199 |  | 
| 176 200 | 
             
            This plugin will only index your data in your Algolia index. Adding search
         | 
| 177 | 
            -
            capabilities is quite easy. You can follow [our tutorials][ | 
| 178 | 
            -
            version of the popular [Hyde theme][ | 
| 201 | 
            +
            capabilities is quite easy. You can follow [our tutorials][7] or use our forked
         | 
| 202 | 
            +
            version of the popular [Hyde theme][8].
         | 
| 179 203 |  | 
| 180 204 | 
             
            ## GitHub Pages
         | 
| 181 205 |  | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 206 | 
            +
            GitHub does not allow custom plugins to be run on GitHub Pages. This means that
         | 
| 207 | 
            +
            you'll either have to run `jekyll algolia push` manually, or configure TravisCI
         | 
| 208 | 
            +
            to do it for you.
         | 
| 209 | 
            +
             | 
| 210 | 
            +
            [Travis CI][9] is an hosted continuous integration
         | 
| 211 | 
            +
            service, and it's free for open-source projects. Properly configured, it can
         | 
| 212 | 
            +
            automatically reindex your data whenever you push to `gh-pages`.
         | 
| 213 | 
            +
             | 
| 214 | 
            +
            For it to work, you'll have 3 steps to perform.
         | 
| 215 | 
            +
             | 
| 216 | 
            +
            ### 1. Create a `.travis.yml` file
         | 
| 217 | 
            +
             | 
| 218 | 
            +
            Create a file named `.travis.yml` at the root of your project, with the
         | 
| 219 | 
            +
            following content:
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            ```yml
         | 
| 222 | 
            +
            language: ruby
         | 
| 223 | 
            +
            cache: bundler
         | 
| 224 | 
            +
            branches:
         | 
| 225 | 
            +
              only:
         | 
| 226 | 
            +
                - gh-pages
         | 
| 227 | 
            +
            script: 
         | 
| 228 | 
            +
              - bundle exec jekyll algolia push
         | 
| 229 | 
            +
            rvm:
         | 
| 230 | 
            +
             - 2.2
         | 
| 231 | 
            +
            ```
         | 
| 232 | 
            +
             | 
| 233 | 
            +
            This file will be read by Travis and instruct it to fetch all dependencies
         | 
| 234 | 
            +
            defined in the `Gemfile`, then run `jekyll algolia push`. This will only be
         | 
| 235 | 
            +
            triggered when data is pushed to the `gh-pages` branch.
         | 
| 236 | 
            +
             | 
| 237 | 
            +
            ### 2. Update your `_config.yml` file to exclude `vendor`
         | 
| 238 | 
            +
             | 
| 239 | 
            +
            Travis will download all you `Gemfile` dependencies into a directory named
         | 
| 240 | 
            +
            `vendor`. You have to tell Jekyll to ignore this directory, otherwise Jekyll
         | 
| 241 | 
            +
            will try to parse it (and fail).
         | 
| 242 | 
            +
             | 
| 243 | 
            +
            Doing so is easy, just add the following line to your `_config.yml` file:
         | 
| 244 | 
            +
             | 
| 245 | 
            +
            ```yml
         | 
| 246 | 
            +
            exclude: [vendor]
         | 
| 247 | 
            +
            ```
         | 
| 248 | 
            +
             | 
| 249 | 
            +
            ### 3. Configure Travis
         | 
| 250 | 
            +
             | 
| 251 | 
            +
            In order for Travis to be able to push data to your index on your behalf, you
         | 
| 252 | 
            +
            have to give it your write API Key. This is achieved by defining an
         | 
| 253 | 
            +
            `ALGOLIA_API_KEY` [environment variable][10] in Travis settings.
         | 
| 254 | 
            +
             | 
| 255 | 
            +
            You should also uncheck the "Build pull requests" option, otherwise any pull
         | 
| 256 | 
            +
            request targeting `gh-pages` will trigger the reindexing.
         | 
| 257 | 
            +
             | 
| 258 | 
            +
            ![Travis Configuration][11]
         | 
| 259 | 
            +
             | 
| 260 | 
            +
            ### Done
         | 
| 261 | 
            +
             | 
| 262 | 
            +
            Commit all the changes to the files, and then push to `gh-pages`. Travis will
         | 
| 263 | 
            +
            catch the event and trigger your indexing for you. You can follow the Travis job
         | 
| 264 | 
            +
            execution directly on [their website][12].
         | 
| 185 265 |  | 
| 186 266 |  | 
| 187 | 
            -
            [1]: https:// | 
| 188 | 
            -
            [2]: https:// | 
| 267 | 
            +
            [1]: https://badge.fury.io/rb/algoliasearch-jekyll.svg
         | 
| 268 | 
            +
            [2]: https://travis-ci.org/algolia/algoliasearch-jekyll.svg?branch=master
         | 
| 269 | 
            +
            [3]: https://coveralls.io/repos/algolia/algoliasearch-jekyll/badge.svg?branch=master&service=github
         | 
| 270 | 
            +
            [4]: https://codeclimate.com/github/algolia/algoliasearch-jekyll/badges/gpa.svg
         | 
| 271 | 
            +
            [5]: https://www.algolia.com/doc/ruby#indexing-parameters
         | 
| 272 | 
            +
            [6]: http://bundler.io/
         | 
| 273 | 
            +
            [7]: https://www.algolia.com/doc/javascript
         | 
| 274 | 
            +
            [8]: https://github.com/algolia/hyde
         | 
| 275 | 
            +
            [9]: https://travis-ci.org/
         | 
| 276 | 
            +
            [10]: http://docs.travis-ci.com/user/environment-variables/
         | 
| 277 | 
            +
            [11]: /docs/travis-settings.png
         | 
| 278 | 
            +
            [12]: https://travis-ci.org
         | 
| @@ -2,16 +2,16 @@ | |
| 2 2 | 
             
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 3 | 
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 4 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            -
            # stub: algoliasearch-jekyll 0. | 
| 5 | 
            +
            # stub: algoliasearch-jekyll 0.5.0 ruby lib
         | 
| 6 6 |  | 
| 7 7 | 
             
            Gem::Specification.new do |s|
         | 
| 8 8 | 
             
              s.name = "algoliasearch-jekyll"
         | 
| 9 | 
            -
              s.version = "0. | 
| 9 | 
            +
              s.version = "0.5.0"
         | 
| 10 10 |  | 
| 11 11 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 12 12 | 
             
              s.require_paths = ["lib"]
         | 
| 13 13 | 
             
              s.authors = ["Tim Carry"]
         | 
| 14 | 
            -
              s.date = "2015- | 
| 14 | 
            +
              s.date = "2015-11-03"
         | 
| 15 15 | 
             
              s.description = "Index all your pages and posts to an Algolia index with `jekyll algolia push`"
         | 
| 16 16 | 
             
              s.email = "tim@pixelastic.com"
         | 
| 17 17 | 
             
              s.extra_rdoc_files = [
         | 
| @@ -29,6 +29,7 @@ Gem::Specification.new do |s| | |
| 29 29 | 
             
                "README.md",
         | 
| 30 30 | 
             
                "Rakefile",
         | 
| 31 31 | 
             
                "algoliasearch-jekyll.gemspec",
         | 
| 32 | 
            +
                "docs/travis-settings.png",
         | 
| 32 33 | 
             
                "lib/algoliasearch-jekyll.rb",
         | 
| 33 34 | 
             
                "lib/credential_checker.rb",
         | 
| 34 35 | 
             
                "lib/push.rb",
         | 
| Binary file | 
    
        data/lib/record_extractor.rb
    CHANGED
    
    | @@ -135,10 +135,9 @@ class AlgoliaSearchRecordExtractor | |
| 135 135 | 
             
                node.css_path.gsub('html > body > ', '')
         | 
| 136 136 | 
             
              end
         | 
| 137 137 |  | 
| 138 | 
            -
              #  | 
| 139 | 
            -
              #  | 
| 140 | 
            -
               | 
| 141 | 
            -
              def weight(data)
         | 
| 138 | 
            +
              # The more words are in common between this node and its parent heading, the
         | 
| 139 | 
            +
              # higher the score
         | 
| 140 | 
            +
              def weight_heading_relevance(data)
         | 
| 142 141 | 
             
                # Get list of unique words in headings
         | 
| 143 142 | 
             
                title_words = %i(title h1 h2 h3 h4 h5 h6)
         | 
| 144 143 | 
             
                              .select { |title| data.key?(title) }
         | 
| @@ -152,13 +151,30 @@ class AlgoliaSearchRecordExtractor | |
| 152 151 | 
             
                (title_words & text_words).size
         | 
| 153 152 | 
             
              end
         | 
| 154 153 |  | 
| 154 | 
            +
              # Returns a weight based on the tag_name
         | 
| 155 | 
            +
              def weight_tag_name(item)
         | 
| 156 | 
            +
                tag_name = item[:tag_name]
         | 
| 157 | 
            +
                # No a heading, no weight
         | 
| 158 | 
            +
                return 0 unless  %w(h1 h2 h3 h4 h5 h6).include?(tag_name)
         | 
| 159 | 
            +
                # h1: 100, h2: 90, ..., h6: 50
         | 
| 160 | 
            +
                100 - (tag_name.gsub('h', '').to_i - 1) * 10
         | 
| 161 | 
            +
              end
         | 
| 162 | 
            +
             | 
| 163 | 
            +
              # Returns an object of all weights
         | 
| 164 | 
            +
              def weight(item, index)
         | 
| 165 | 
            +
                {
         | 
| 166 | 
            +
                  tag_name: weight_tag_name(item),
         | 
| 167 | 
            +
                  heading_relevance: weight_heading_relevance(item),
         | 
| 168 | 
            +
                  position: index
         | 
| 169 | 
            +
                }
         | 
| 170 | 
            +
              end
         | 
| 171 | 
            +
             | 
| 155 172 | 
             
              def extract
         | 
| 156 173 | 
             
                items = []
         | 
| 157 174 | 
             
                html_nodes.each_with_index do |node, index|
         | 
| 158 175 | 
             
                  next unless node.text.size > 0
         | 
| 159 176 |  | 
| 160 177 | 
             
                  item = metadata.clone
         | 
| 161 | 
            -
                  item[:objectID] = "#{item[:slug]}_#{index}"
         | 
| 162 178 | 
             
                  item.merge!(node_hierarchy(node))
         | 
| 163 179 | 
             
                  item[:tag_name] = node.name
         | 
| 164 180 | 
             
                  item[:raw_html] = node_raw_html(node)
         | 
| @@ -166,7 +182,7 @@ class AlgoliaSearchRecordExtractor | |
| 166 182 | 
             
                  item[:unique_hierarchy] = unique_hierarchy(item)
         | 
| 167 183 | 
             
                  item[:css_selector] = node_css_selector(node)
         | 
| 168 184 | 
             
                  item[:css_selector_parent] = node_css_selector(node_heading_parent(node))
         | 
| 169 | 
            -
                  item[:weight] = weight(item)
         | 
| 185 | 
            +
                  item[:weight] = weight(item, index)
         | 
| 170 186 |  | 
| 171 187 | 
             
                  # We pass item through the user defined custom hook
         | 
| 172 188 | 
             
                  item = custom_hook_each(item, node)
         | 
| @@ -316,7 +316,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 316 316 | 
             
                end
         | 
| 317 317 | 
             
              end
         | 
| 318 318 |  | 
| 319 | 
            -
              describe ' | 
| 319 | 
            +
              describe 'weight_heading_relevance' do
         | 
| 320 320 | 
             
                it 'gets the number of words in text also in the title' do
         | 
| 321 321 | 
             
                  # Given
         | 
| 322 322 | 
             
                  data = {
         | 
| @@ -325,7 +325,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 325 325 | 
             
                  }
         | 
| 326 326 |  | 
| 327 327 | 
             
                  # When
         | 
| 328 | 
            -
                  actual = page_file. | 
| 328 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 329 329 |  | 
| 330 330 | 
             
                  # Then
         | 
| 331 331 | 
             
                  expect(actual).to eq 2
         | 
| @@ -341,7 +341,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 341 341 | 
             
                  }
         | 
| 342 342 |  | 
| 343 343 | 
             
                  # When
         | 
| 344 | 
            -
                  actual = page_file. | 
| 344 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 345 345 |  | 
| 346 346 | 
             
                  # Then
         | 
| 347 347 | 
             
                  expect(actual).to eq 3
         | 
| @@ -357,7 +357,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 357 357 | 
             
                  }
         | 
| 358 358 |  | 
| 359 359 | 
             
                  # When
         | 
| 360 | 
            -
                  actual = page_file. | 
| 360 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 361 361 |  | 
| 362 362 | 
             
                  # Then
         | 
| 363 363 | 
             
                  expect(actual).to eq 2
         | 
| @@ -372,7 +372,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 372 372 | 
             
                  }
         | 
| 373 373 |  | 
| 374 374 | 
             
                  # When
         | 
| 375 | 
            -
                  actual = page_file. | 
| 375 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 376 376 |  | 
| 377 377 | 
             
                  # Then
         | 
| 378 378 | 
             
                  expect(actual).to eq 2
         | 
| @@ -386,7 +386,7 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 386 386 | 
             
                  }
         | 
| 387 387 |  | 
| 388 388 | 
             
                  # When
         | 
| 389 | 
            -
                  actual = page_file. | 
| 389 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 390 390 |  | 
| 391 391 | 
             
                  # Then
         | 
| 392 392 | 
             
                  expect(actual).to eq 1
         | 
| @@ -407,13 +407,71 @@ describe(AlgoliaSearchRecordExtractor) do | |
| 407 407 | 
             
                  }
         | 
| 408 408 |  | 
| 409 409 | 
             
                  # When
         | 
| 410 | 
            -
                  actual = page_file. | 
| 410 | 
            +
                  actual = page_file.weight_heading_relevance(data)
         | 
| 411 411 |  | 
| 412 412 | 
             
                  # Then
         | 
| 413 413 | 
             
                  expect(actual).to eq 2
         | 
| 414 414 | 
             
                end
         | 
| 415 415 | 
             
              end
         | 
| 416 416 |  | 
| 417 | 
            +
              describe 'weight_tag_name' do
         | 
| 418 | 
            +
                it 'gives a score of 0 to non-headings' do
         | 
| 419 | 
            +
                  # Given
         | 
| 420 | 
            +
                  data = {
         | 
| 421 | 
            +
                    tag_name: 'p'
         | 
| 422 | 
            +
                  }
         | 
| 423 | 
            +
             | 
| 424 | 
            +
                  # When
         | 
| 425 | 
            +
                  actual = page_file.weight_tag_name(data)
         | 
| 426 | 
            +
             | 
| 427 | 
            +
                  # Then
         | 
| 428 | 
            +
                  expect(actual).to eq 0
         | 
| 429 | 
            +
                end
         | 
| 430 | 
            +
                it 'gives a score of 100 to h1' do
         | 
| 431 | 
            +
                  # Given
         | 
| 432 | 
            +
                  data = {
         | 
| 433 | 
            +
                    tag_name: 'h1'
         | 
| 434 | 
            +
                  }
         | 
| 435 | 
            +
             | 
| 436 | 
            +
                  # When
         | 
| 437 | 
            +
                  actual = page_file.weight_tag_name(data)
         | 
| 438 | 
            +
             | 
| 439 | 
            +
                  # Then
         | 
| 440 | 
            +
                  expect(actual).to eq 100
         | 
| 441 | 
            +
                end
         | 
| 442 | 
            +
                it 'gives a score of 40 to h6' do
         | 
| 443 | 
            +
                  # Given
         | 
| 444 | 
            +
                  data = {
         | 
| 445 | 
            +
                    tag_name: 'h6'
         | 
| 446 | 
            +
                  }
         | 
| 447 | 
            +
             | 
| 448 | 
            +
                  # When
         | 
| 449 | 
            +
                  actual = page_file.weight_tag_name(data)
         | 
| 450 | 
            +
             | 
| 451 | 
            +
                  # Then
         | 
| 452 | 
            +
                  expect(actual).to eq 50
         | 
| 453 | 
            +
                end
         | 
| 454 | 
            +
              end
         | 
| 455 | 
            +
             | 
| 456 | 
            +
              describe 'weight' do
         | 
| 457 | 
            +
                it 'returns an object with all weights' do
         | 
| 458 | 
            +
                  # Given
         | 
| 459 | 
            +
                  item = {
         | 
| 460 | 
            +
                    tag_name: 'p'
         | 
| 461 | 
            +
                  }
         | 
| 462 | 
            +
                  allow(page_file).to receive(:weight_tag_name) { 10 }
         | 
| 463 | 
            +
                  allow(page_file).to receive(:weight_heading_relevance) { 20 }
         | 
| 464 | 
            +
             | 
| 465 | 
            +
                  # When
         | 
| 466 | 
            +
                  actual = page_file.weight(item, 42)
         | 
| 467 | 
            +
             | 
| 468 | 
            +
                  # Then
         | 
| 469 | 
            +
                  expect(actual).to include(tag_name: 10)
         | 
| 470 | 
            +
                  expect(actual).to include(heading_relevance: 20)
         | 
| 471 | 
            +
                  expect(actual).to include(position: 42)
         | 
| 472 | 
            +
                end
         | 
| 473 | 
            +
              end
         | 
| 474 | 
            +
             | 
| 417 475 | 
             
              describe 'custom_hook_each' do
         | 
| 418 476 | 
             
                it 'let the user call a custom hook to modify a record' do
         | 
| 419 477 | 
             
                  # Given
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: algoliasearch-jekyll
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tim Carry
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015- | 
| 11 | 
            +
            date: 2015-11-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: algoliasearch
         | 
| @@ -211,6 +211,7 @@ files: | |
| 211 211 | 
             
            - README.md
         | 
| 212 212 | 
             
            - Rakefile
         | 
| 213 213 | 
             
            - algoliasearch-jekyll.gemspec
         | 
| 214 | 
            +
            - docs/travis-settings.png
         | 
| 214 215 | 
             
            - lib/algoliasearch-jekyll.rb
         | 
| 215 216 | 
             
            - lib/credential_checker.rb
         | 
| 216 217 | 
             
            - lib/push.rb
         |