siteseeker_normalizer 0.1.0 → 0.1.1

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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODRiMzZlNmRkYTA4ZDY5YmQxZWNkODVkZjk5NDIyNjYyMzlmNmZhNw==
5
- data.tar.gz: !binary |-
6
- NjcyNjZjZDBkMjA1NDBkM2Y0MTQzMjg4MjE3YWFlNGNiOTljOGI1NQ==
2
+ SHA1:
3
+ metadata.gz: 211d91fe539ec4e33ddebe8336c73252ab3b67a0
4
+ data.tar.gz: 5dba9516fdc952c5e9b9e1f4a850d0e6db4cb641
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmFiODBjNzVhOTRlM2Y2MzdmZjkxMTVkYTFlZmJjODM0ZjE4ODQ1OTkxZDNk
10
- MTQ1YWEzNjY3ZWE1ODA0OTJiYjI5YTk2MWE0NWIzYTNlM2M3ODA4MGEyOTI1
11
- ZWUzYzIwMzZhZDEzNzczN2JkOWRlZjBkYjdjZTMxYTk5YzNiNzA=
12
- data.tar.gz: !binary |-
13
- ODk5Yjc3MTEyZDJlNmVhNzM4ZWVmMmE3NTQwYTg4ZmEyNjVjZmQ3NDRjYmQ2
14
- OTE2MjQyMDA1OGE5YjAwM2U1YjA5OTM5OWQwNmQ2ZTI3MTUyMDBjMTc1ZTZl
15
- MmU1NWI5NjhhYjA0YTUxOWUyZjM0ZjI2YzdhMjE4N2JjZGU4MTM=
6
+ metadata.gz: 4189fa5ad8c6245bf92bf4fc8a1beb24bb93da650bbf3326905c43c771d853892f8c56c680ebd876a819e70860c4531b66ba5b3cf626a46a545c88bb9a877c78
7
+ data.tar.gz: 7b7d752a74009fb6e38640ad05a2b48444b48d1f81d64d78ab6ea249f2043d32928da246d524d6822d2d0594efebe9d87b3ddf3788523d7a76dbc731bdcf8e48
data/README.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/malmostad/siteseeker_normalizer.png)](https://travis-ci.org/malmostad/siteseeker_normalizer) [![Dependency Status](https://gemnasium.com/malmostad/siteseeker_normalizer.png)](https://gemnasium.com/malmostad/siteseeker_normalizer) [![Gem Version](https://badge.fury.io/rb/siteseeker_normalizer.png)](http://badge.fury.io/rb/siteseeker_normalizer)
4
4
 
5
- Ruby gem for Siteseeker integration. Performs requests and parses the response from Siteseeker. Search results is available as a structured object ready to use in Rails templates or another Ruby context.
5
+ Ruby gem for Siteseeker integration. Performs requests and parses the response from Siteseeker. Search results is available as a structured object.
6
6
 
7
7
  ## Requirements
8
- * Ruby 1.9.3 or 2.0.
8
+ * Ruby 1.9.3, 2.0.0 or 2.1.0.
9
9
  * A [Siteseeker](http://www.siteseeker.se/) account.
10
10
 
11
11
  ## Installation
@@ -22,13 +22,62 @@ Or install it yourself as:
22
22
 
23
23
  $ gem install siteseeker_normalizer
24
24
 
25
- If you get an error message about Nokogiri, install it with `sudo` first:
26
-
27
- $ sudo gem install nokogiri
28
-
29
25
  ## Usage
30
-
31
- TODO: write spec
26
+ Check out the the Rails app [Intranet Dashboard](https://github.com/malmostad/intranet-dashboard) in the `site_search` controller and views or the standalone Sinatra search app [Sitesearch](https://github.com/malmostad/sitesearch). Both are using memcached wrappers for the fetched search results.
27
+
28
+ ```Ruby
29
+ require 'siteseeker_normalizer'
30
+
31
+ # Initialize a search client with your account name and a search index name.
32
+ client = SiteseekerNormalizer::Client.new("account_name", "index_name")
33
+
34
+ # Search query with a search string.
35
+ results = client.search("parkering")
36
+
37
+ # Search query with a Hash of parameters
38
+ # Used for category filtering, load more results etc. where the query comes from a previous result.
39
+ results = client.search(params)
40
+
41
+ # Fetch the results first and then parse. Useful for caching the response before parsing.
42
+ raw_results = client.fetch("parkering")
43
+ raw_results = client.fetch(params)
44
+ results = SiteseekerNormalizer::Parse.new(raw_results)
45
+
46
+ # Parsed response
47
+ results.total # => 1008
48
+ results.entries # => Array with result entries
49
+
50
+ # First entry in results
51
+ entry = results.entries.first
52
+ entry.title # => "Boendeparkering"
53
+ entry.summary # => "Boendeparkering finns snart i 19 ..."
54
+ entry.date # => "2013-12-17"
55
+ entry.breadcrumbs.first.text # => "malmo.se"
56
+ entry.breadcrumbs.first.url # => "http://www.malmo.se/Medborgare.html"
57
+ entry.category # => "Ämnessidor: Stadsplanering & trafik"
58
+
59
+ # Sorting, Array with sorting alternatives
60
+ results.sorting.first.text # => "Relevans"
61
+ results.sorting.first.query # => "q=parkering&t=simple&ls=2&d=0&d1=01&d2 ..."
62
+ results.sorting.first.current # => false
63
+
64
+ # Query for loading more results
65
+ results.more_query # => "q=parkering&t=simple&ls=2&d=0&d1=01&d2 ..."
66
+
67
+ # Array with categories for the results, used for filtering
68
+ category_group = results.category_groups.first
69
+ category_group.title # => "Ämnessidor"
70
+ category = category_group.categories.first
71
+ category.current? # => false
72
+ category.hits # => "12"
73
+ category.title # => "Biblioteken"
74
+ category.query # => "q=parkering&t=simple&ls=2&d=0&d1=01&d2 ..."
75
+
76
+ # Spelling suggestions
77
+ results = client.search("parkkering")
78
+ results.suggestions.first.text # => "parkering"
79
+ results.suggestions.first.url # => "q=parkering&t=simple&ls=2&d=0&d1=01& ..."
80
+ ```
32
81
 
33
82
  ## Testing
34
83
  Run:
@@ -46,3 +95,4 @@ Run:
46
95
 
47
96
  ## License
48
97
  Released under AGPL version 3.
98
+
@@ -1,5 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'open-uri'
3
+ require 'nokogiri'
3
4
  require 'uri'
4
5
 
5
6
  module SiteseekerNormalizer
@@ -18,7 +19,7 @@ module SiteseekerNormalizer
18
19
  if query.is_a? Hash
19
20
  query = URI.encode_www_form(query)
20
21
  else
21
- query = "q=#{query}"
22
+ query = "q=#{URI.encode_www_form_component(query)}"
22
23
  end
23
24
  open("#{@base_search_url}&#{query}", read_timeout: @options[:read_timeout]).read
24
25
  end
@@ -1,3 +1,3 @@
1
1
  module SiteseekerNormalizer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: siteseeker_normalizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - martent
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-11 00:00:00.000000000 Z
11
+ date: 2014-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
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
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
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
40
  version: '1.3'
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
47
  version: '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
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Siteseeker integration library
@@ -73,9 +73,9 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
77
- - .rspec
78
- - .travis.yml
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - ".travis.yml"
79
79
  - COPYING
80
80
  - Gemfile
81
81
  - README.md
@@ -101,12 +101,12 @@ require_paths:
101
101
  - lib
102
102
  required_ruby_version: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - ! '>='
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ! '>='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  requirements: []