twingly-search 4.0.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a62fb19132e1def965555e328f84667e5588a4c3
4
- data.tar.gz: 9d04745eba432e6d60676c9ff5ce517d20f539fe
3
+ metadata.gz: b5fa690bb24c2c41b7f1c1141a636970c76b9057
4
+ data.tar.gz: 40ba48f85e4f1d255c0fb64b69aabac2b1e347c7
5
5
  SHA512:
6
- metadata.gz: 9d2c2e6d94f4748e78bb355d60376afa52abda4249bee1ccd1654c8a5e16995baf7d5b272ce09748c5eead3f777d4d41a3db48c4256b1e0fe93ae9232413a24a
7
- data.tar.gz: 6094058ff17173434ee61da5251f47d9777625e6a49a2485b64741925ef192f9120170263f6d79d093b1a4d42752ba75c446529c3805c096282d715e036c7d26
6
+ metadata.gz: 43941210a16c5377a5858d1bc296145d92f23162168043b7a932bb9a60590ea938b267b2ba1d0ec8e21effe9735ec09a939c43a99e3d49e75d61ee57156407d8
7
+ data.tar.gz: a82b2cb9a89a6539093a4f8e72b8ee79c0afc8c11d61f3ee60f26a12fd312619e49ec08c08df4516769b207d090dd0d316779dd36fa1914f9643320516c105dc
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  before_install:
3
4
  - gem update bundler
4
5
  cache: bundler
@@ -7,6 +8,7 @@ rvm:
7
8
  - 2.0.0
8
9
  - 2.1
9
10
  - 2.2
11
+ - 2.3.0
10
12
  - jruby-9.0.0.0
11
13
  deploy:
12
14
  provider: rubygems
data/CHANGELOG.md CHANGED
@@ -1,7 +1,14 @@
1
1
  # Change Log
2
2
 
3
- ## [v4.0.0](https://github.com/twingly/twingly-search-api-ruby/tree/v4.0.0)
3
+ ## [v4.0.1](https://github.com/twingly/twingly-search-api-ruby/tree/v4.0.1) (2016-01-28)
4
+ [Full Changelog](https://github.com/twingly/twingly-search-api-ruby/compare/v4.0.0...v4.0.1)
4
5
 
6
+ **Merged pull requests:**
7
+
8
+ - Improve tests [\#38](https://github.com/twingly/twingly-search-api-ruby/pull/38) ([roback](https://github.com/roback))
9
+ - Take contenttype into account [\#37](https://github.com/twingly/twingly-search-api-ruby/pull/37) ([walro](https://github.com/walro))
10
+
11
+ ## [v4.0.0](https://github.com/twingly/twingly-search-api-ruby/tree/v4.0.0) (2015-12-02)
5
12
  [Full Changelog](https://github.com/twingly/twingly-search-api-ruby/compare/v3.0.0...v4.0.0)
6
13
 
7
14
  **Implemented enhancements:**
@@ -99,4 +106,4 @@
99
106
 
100
107
 
101
108
 
102
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
109
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/README.md CHANGED
@@ -51,17 +51,18 @@ To learn more about the capabilities of the API, please read the [Twingly Search
51
51
 
52
52
  * API key, contact sales@twingly.com via [twingly.com](https://www.twingly.com/try-for-free/) to get one
53
53
  * Ruby
54
- * Ruby 1.9, 2.0, 2.1, 2.2
54
+ * Ruby 1.9, 2.0, 2.1, 2.2, 2.3
55
55
  * JRuby 9000
56
56
 
57
57
  ## Development and release
58
58
 
59
- 1. Make sure the master branch has an up-to-date changelog. Generate with `rake changelog`. Set `CHANGELOG_GITHUB_TOKEN` to a personal access token to increase the API rate limit. (The changelog uses [GitHub Changelog Generator](https://github.com/skywinder/github-changelog-generator/))
60
- 1. Bump version in `lib/twingly/search/version.rb`, follow [Semantic Versioning 2.0.0](http://semver.org/)
61
- 1. Build and release gem with `bundle exec rake release`. This will create a git tag for the version and push the `.gem` file to https://rubygems.org/.
62
- 1. Update release information on the [releases page].
59
+ 1. Bump the version in `lib/twingly/search/version.rb`, follow [Semantic Versioning 2.0.0](http://semver.org/). No need to push as this will be taken care of automatically in the next step.
60
+ 1. Build and the release gem with `bundle exec rake release`. This will create a git tag for the version and push the `.gem` file to [RubyGems.org].
61
+ 1. Generate a changelog with `bundle exec rake changelog`. Set `CHANGELOG_GITHUB_TOKEN` to a personal access token to increase the API rate limit. (The changelog uses [GitHub Changelog Generator](https://github.com/skywinder/github-changelog-generator/))
62
+ 1. Update release information on the [releases page]. This is done manually.
63
63
 
64
64
  [releases page]: https://github.com/twingly/twingly-search-api-ruby/releases
65
+ [RubyGems.org]: https://rubygems.org/
65
66
 
66
67
  ### Documentation
67
68
 
@@ -77,7 +78,7 @@ The YARD server reloads the documentation automatically so there is no need to r
77
78
 
78
79
  The MIT License (MIT)
79
80
 
80
- Copyright (c) 2013 Twingly AB
81
+ Copyright (c) 2013-2016 Twingly AB
81
82
 
82
83
  Permission is hereby granted, free of charge, to any person obtaining a copy of
83
84
  this software and associated documentation files (the "Software"), to deal in
@@ -14,7 +14,7 @@ module Twingly
14
14
  # Creates a new Twingly Search API client
15
15
  #
16
16
  # @param api_key [optional, String] the API key provided by Twingly.
17
- # If nil, reads api_key from environment (TWINGLY_SEARCH_KEY).
17
+ # If nil, reads key from environment (TWINGLY_SEARCH_KEY).
18
18
  # @param options [Hash]
19
19
  # @option options [String] :user_agent the user agent to be used
20
20
  # for all requests
@@ -11,8 +11,8 @@ module Twingly
11
11
  # @attr_reader [String] summary the blog post text.
12
12
  # @attr_reader [String] language_code ISO two letter language code for the
13
13
  # language that the post was written in.
14
- # @attr_reader [DateTime] indexed the time, in UTC, when this post was indexed by Twingly.
15
- # @attr_reader [DateTime] published the time, in UTC, when this post was published.
14
+ # @attr_reader [Time] indexed the time, in UTC, when the post was indexed by Twingly.
15
+ # @attr_reader [Time] published the time, in UTC, when the post was published.
16
16
  # @attr_reader [String] blog_url the blog URL.
17
17
  # @attr_reader [String] blog_name name of the blog.
18
18
  # @attr_reader [String] authority the blog's authority/influence.
@@ -32,8 +32,8 @@ module Twingly
32
32
  @title = params.fetch('title')
33
33
  @summary = params.fetch('summary')
34
34
  @language_code = params.fetch('languageCode')
35
- @published = DateTime.parse(params.fetch('published'))
36
- @indexed = DateTime.parse(params.fetch('indexed'))
35
+ @published = Time.parse(params.fetch('published'))
36
+ @indexed = Time.parse(params.fetch('indexed'))
37
37
  @blog_url = params.fetch('blogUrl')
38
38
  @blog_name = params.fetch('blogName')
39
39
  @authority = params.fetch('authority').to_i
@@ -1,18 +1,25 @@
1
1
  require "faraday"
2
+ require "time"
2
3
 
3
4
  module Twingly
4
5
  module Search
5
6
  # Twingly Search API query
6
7
  #
7
8
  # @attr [String] pattern the search query.
8
- # @attr [String] language which language to restrict the query to.
9
+ # @attr [String] language language to restrict the query to.
9
10
  # @attr [Client] client the client that this query is connected to.
10
- # @attr [Time, #to_time] start_time search for posts published after
11
- # this time (inclusive).
12
- # @attr [Time, #to_time] end_time search for posts published before
13
- # this time (inclusive).
14
11
  class Query
15
- attr_accessor :pattern, :language, :client, :start_time, :end_time
12
+ attr_accessor :pattern, :language, :client
13
+
14
+ # @return [Time] the time that was set with {#start_time=}.
15
+ def start_time
16
+ @start_time
17
+ end
18
+
19
+ # @return [Time] the time that was set with {#end_time=}.
20
+ def end_time
21
+ @end_time
22
+ end
16
23
 
17
24
  # No need to call this method manually, instead use {Client#query}.
18
25
  #
@@ -56,14 +63,34 @@ module Twingly
56
63
  }
57
64
  end
58
65
 
66
+ # Search for posts published after this time (inclusive).
67
+ #
68
+ # @param [Time, #to_time] time an instance of the Time class
69
+ # or an object responding to #to_time.
70
+ def start_time=(time)
71
+ fail QueryError, "Not a Time object" unless time.respond_to?(:to_time)
72
+
73
+ @start_time = time
74
+ end
75
+
76
+ # Search for posts published before this time (inclusive).
77
+ #
78
+ # @param [Time, #to_time] time an instance of the Time class
79
+ # or an object responding to #to_time.
80
+ def end_time=(time)
81
+ fail QueryError, "Not a Time object" unless time.respond_to?(:to_time)
82
+
83
+ @end_time = time
84
+ end
85
+
59
86
  private
60
87
 
61
88
  def ts
62
- start_time.to_time.strftime("%F %T") if start_time
89
+ start_time.to_time.utc.strftime("%F %T") if start_time
63
90
  end
64
91
 
65
92
  def ts_to
66
- end_time.to_time.strftime("%F %T") if end_time
93
+ end_time.to_time.utc.strftime("%F %T") if end_time
67
94
  end
68
95
  end
69
96
  end
@@ -1,5 +1,5 @@
1
1
  module Twingly
2
2
  module Search
3
- VERSION = "4.0.1"
3
+ VERSION = "5.0.0"
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
- require 'twingly/search/version'
2
- require 'twingly/search/error'
3
- require 'twingly/search/client'
4
- require 'twingly/search/query'
5
- require 'twingly/search/result'
6
- require 'twingly/search/parser'
7
- require 'twingly/search/post'
1
+ require_relative "search/version"
2
+ require_relative "search/error"
3
+ require_relative "search/client"
4
+ require_relative "search/query"
5
+ require_relative "search/result"
6
+ require_relative "search/parser"
7
+ require_relative "search/post"
@@ -0,0 +1,52 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <twinglydata numberOfMatchesReturned="1" secondsElapsed="0.148" numberOfMatchesTotal="1">
3
+ <post contentType="blog">
4
+ <url>http://oppogner.blogg.no/1409602010_bare_m_ha.html</url>
5
+ <title><![CDATA[Bare MÅ ha!]]></title>
6
+ <summary><![CDATA[Ja, velkommen til høsten ...]]></summary>
7
+ <languageCode>no</languageCode>
8
+ <published>2014-09-02 06:53:26Z</published>
9
+ <indexed>2014-09-02 09:00:53Z</indexed>
10
+ <blogUrl>http://oppogner.blogg.no/</blogUrl>
11
+ <blogName><![CDATA[oppogner]]></blogName>
12
+ <authority>1</authority>
13
+ <blogRank>1</blogRank>
14
+ <tags>
15
+ <tag><![CDATA[Blogg]]></tag>
16
+ </tags>
17
+ </post><post contentType="blog">
18
+ <url>http://www.skvallernytt.se/hardtraning-da-galler-swedish-house-mafia</url>
19
+ <title><![CDATA[Hårdträning – då gäller Swedish House Mafia]]></title>
20
+ <summary><![CDATA[Träning. Och Swedish House Mafia. Det verkar vara ett lyckat koncept. "Don't you worry child" och "Greyhound" är nämligen de två mest spelade träningslåtarna under januari 2013 på Spotify.
21
+
22
+ Relaterade inlägg:
23
+ Swedish House Mafia – ny låt!
24
+ Ny knivattack på Swedish House Mafia-konsert
25
+ Swedish House Mafia gör succé i USA]]></summary>
26
+ <languageCode>sv</languageCode>
27
+ <published>2013-01-29 15:21:56Z</published>
28
+ <indexed>2013-01-29 15:22:52Z</indexed>
29
+ <blogUrl>http://www.skvallernytt.se/</blogUrl>
30
+ <blogName><![CDATA[Skvallernytt.se]]></blogName>
31
+ <authority>38</authority>
32
+ <blogRank>4</blogRank>
33
+ <tags>
34
+ <tag><![CDATA[Okategoriserat]]></tag>
35
+ <tag><![CDATA[Träning]]></tag>
36
+ <tag><![CDATA[greyhound]]></tag>
37
+ <tag><![CDATA[koncept]]></tag>
38
+ <tag><![CDATA[mafia]]></tag>
39
+ </tags>
40
+ </post><post contentType="blog">
41
+ <url>http://didriksinspesielleverden.blogg.no/1359472349_justin_bieber.html</url>
42
+ <title><![CDATA[Justin Bieber]]></title>
43
+ <summary><![CDATA[OMG! Justin Bieber Believe acoustic albumet er nå ute på spotify. Han er helt super. Love him. Personlig liker jeg best beauty and a beat og as long as you love me, kommenter gjerne hva dere synes! <3 #sus YOLO]]></summary>
44
+ <languageCode>no</languageCode>
45
+ <published>2013-01-29 15:12:29Z</published>
46
+ <indexed>2013-01-29 15:14:37Z</indexed>
47
+ <blogUrl>http://didriksinspesielleverden.blogg.no/</blogUrl>
48
+ <blogName><![CDATA[Didriksinspesielleverden]]></blogName>
49
+ <authority>0</authority>
50
+ <blogRank>1</blogRank>
51
+ </post>
52
+ </twinglydata>
data/spec/parser_spec.rb CHANGED
@@ -1,4 +1,7 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
4
+ require 'date'
2
5
 
3
6
  include Twingly::Search
4
7
 
@@ -6,8 +9,9 @@ describe Parser do
6
9
  it { should respond_to(:parse) }
7
10
 
8
11
  describe "#parse" do
9
- subject { described_class.new.parse(document) }
10
12
  let(:document) { Fixture.get(fixture) }
13
+ let(:result) { described_class.new.parse(document) }
14
+ subject { result }
11
15
 
12
16
  context "with a valid result" do
13
17
  let(:fixture) { :valid }
@@ -15,6 +19,177 @@ describe Parser do
15
19
  it { is_expected.to be_a Result }
16
20
  end
17
21
 
22
+ context "with a minimal valid result" do
23
+ let(:fixture) { :minimal_valid }
24
+
25
+ describe "#posts[0]" do
26
+ subject(:post) { result.posts[0] }
27
+
28
+ describe "#url" do
29
+ subject { post.url }
30
+ it { is_expected.to eq("http://oppogner.blogg.no/1409602010_bare_m_ha.html") }
31
+ end
32
+
33
+ describe "#title" do
34
+ subject { post.title }
35
+ it { is_expected.to eq("Bare MÅ ha!") }
36
+ end
37
+
38
+ describe "#summary" do
39
+ subject { post.summary }
40
+ it { is_expected.to eq("Ja, velkommen til høsten ...") }
41
+ end
42
+
43
+ describe "#language_code" do
44
+ subject { post.language_code }
45
+ it { is_expected.to eq("no") }
46
+ end
47
+
48
+ describe "#published" do
49
+ subject { post.published }
50
+ it { is_expected.to eq(Time.parse("2014-09-02 06:53:26Z")) }
51
+ end
52
+
53
+ describe "#indexed" do
54
+ subject { post.indexed }
55
+ it { is_expected.to eq(Time.parse("2014-09-02 09:00:53Z")) }
56
+ end
57
+
58
+ describe "#blog_url" do
59
+ subject { post.blog_url }
60
+ it { is_expected.to eq("http://oppogner.blogg.no/") }
61
+ end
62
+
63
+ describe "#authority" do
64
+ subject { post.authority }
65
+ it { is_expected.to eq(1) }
66
+ end
67
+
68
+ describe "#blog_rank" do
69
+ subject { post.blog_rank }
70
+ it { is_expected.to eq(1) }
71
+ end
72
+
73
+ describe "#tags" do
74
+ subject { post.tags }
75
+ it { is_expected.to eq(["Blogg"]) }
76
+ end
77
+ end
78
+
79
+ describe "#posts[1]" do
80
+ subject(:post) { result.posts[1] }
81
+
82
+ describe "#url" do
83
+ subject { post.url }
84
+ it { is_expected.to eq("http://www.skvallernytt.se/hardtraning-da-galler-swedish-house-mafia") }
85
+ end
86
+
87
+ describe "#title" do
88
+ subject { post.title }
89
+ it { is_expected.to eq("Hårdträning – då gäller Swedish House Mafia") }
90
+ end
91
+
92
+ describe "#summary" do
93
+ subject { post.summary }
94
+ it { is_expected.to eq("Träning. Och Swedish House Mafia. Det verkar vara ett lyckat koncept. \"Don't you worry child\" och \"Greyhound\" är nämligen de två mest spelade träningslåtarna under januari 2013 på Spotify.
95
+
96
+ Relaterade inlägg:
97
+ Swedish House Mafia – ny låt!
98
+ Ny knivattack på Swedish House Mafia-konsert
99
+ Swedish House Mafia gör succé i USA") }
100
+ end
101
+
102
+ describe "#language_code" do
103
+ subject { post.language_code }
104
+ it { is_expected.to eq("sv") }
105
+ end
106
+
107
+ describe "#published" do
108
+ subject { post.published }
109
+ it { is_expected.to eq(Time.parse("2013-01-29 15:21:56Z")) }
110
+ end
111
+
112
+ describe "#indexed" do
113
+ subject { post.indexed }
114
+ it { is_expected.to eq(Time.parse("2013-01-29 15:22:52Z")) }
115
+ end
116
+
117
+ describe "#blog_url" do
118
+ subject { post.blog_url }
119
+ it { is_expected.to eq("http://www.skvallernytt.se/") }
120
+ end
121
+
122
+ describe "#authority" do
123
+ subject { post.authority }
124
+ it { is_expected.to eq(38) }
125
+ end
126
+
127
+ describe "#blog_rank" do
128
+ subject { post.blog_rank }
129
+ it { is_expected.to eq(4) }
130
+ end
131
+
132
+ describe "#tags" do
133
+ subject { post.tags }
134
+ it { is_expected.to eq(["Okategoriserat", "Träning", "greyhound", "koncept", "mafia"]) }
135
+ end
136
+ end
137
+
138
+ describe "#posts[2]" do
139
+ subject(:post) { result.posts[2] }
140
+
141
+ describe "#url" do
142
+ subject { post.url }
143
+ it { is_expected.to eq("http://didriksinspesielleverden.blogg.no/1359472349_justin_bieber.html") }
144
+ end
145
+
146
+ describe "#title" do
147
+ subject { post.title }
148
+ it { is_expected.to eq("Justin Bieber") }
149
+ end
150
+
151
+ describe "#summary" do
152
+ subject { post.summary }
153
+ it { is_expected.to eq("OMG! Justin Bieber Believe acoustic albumet er nå ute på spotify. Han er helt super. Love him. Personlig liker jeg best beauty and a beat og as long as you love me, kommenter gjerne hva dere synes! <3 #sus YOLO") }
154
+ end
155
+
156
+ describe "#language_code" do
157
+ subject { post.language_code }
158
+ it { is_expected.to eq("no") }
159
+ end
160
+
161
+ describe "#published" do
162
+ subject { post.published }
163
+ it { is_expected.to eq(Time.parse("2013-01-29 15:12:29Z")) }
164
+ end
165
+
166
+ describe "#indexed" do
167
+ subject { post.indexed }
168
+ it { is_expected.to eq(Time.parse("2013-01-29 15:14:37Z")) }
169
+ end
170
+
171
+ describe "#blog_url" do
172
+ subject { post.blog_url }
173
+ it { is_expected.to eq("http://didriksinspesielleverden.blogg.no/") }
174
+ end
175
+
176
+ describe "#authority" do
177
+ subject { post.authority }
178
+ it { is_expected.to eq(0) }
179
+ end
180
+
181
+ describe "#blog_rank" do
182
+ subject { post.blog_rank }
183
+ it { is_expected.to eq(1) }
184
+ end
185
+
186
+ describe "#tags" do
187
+ subject { post.tags }
188
+ it { is_expected.to eq([]) }
189
+ end
190
+ end
191
+ end
192
+
18
193
  context "with a valid result containing non-blogs" do
19
194
  let(:fixture) { :valid_non_blog }
20
195
 
data/spec/query_spec.rb CHANGED
@@ -70,6 +70,98 @@ describe Query do
70
70
  end
71
71
  end
72
72
 
73
+ describe "#start_time=" do
74
+ before do
75
+ subject.pattern = "semla"
76
+ end
77
+
78
+ context "when given time in UTC" do
79
+ before do
80
+ subject.start_time = time
81
+ end
82
+
83
+ let(:time) { Time.parse("2016-02-09 09:01:22 UTC") }
84
+
85
+ it "should not change timezone" do
86
+ expect(subject.request_parameters).to include(ts: "2016-02-09 09:01:22")
87
+ end
88
+
89
+ it "should not modify the given time object" do
90
+ expect(subject.start_time).to equal(time)
91
+ end
92
+ end
93
+
94
+ context "when given time not in UTC" do
95
+ before do
96
+ subject.start_time = time
97
+ end
98
+
99
+ let(:time) { Time.parse("2016-02-09 09:01:22 +05:00") }
100
+
101
+ it "should convert to UTC" do
102
+ expect(subject.request_parameters).to include(ts: "2016-02-09 04:01:22")
103
+ end
104
+
105
+ it "should not modify the given time object" do
106
+ expect(subject.start_time).to equal(time)
107
+ end
108
+ end
109
+
110
+ context "when given non-time object" do
111
+ let(:time) { "2013-12-28+09%3A01%3A22" }
112
+
113
+ it "should raise exception" do
114
+ expect { subject.start_time = time }.to raise_error(QueryError, "Not a Time object")
115
+ end
116
+ end
117
+ end
118
+
119
+ describe "#end_time=" do
120
+ before do
121
+ subject.pattern = "semla"
122
+ end
123
+
124
+ context "when given time in UTC" do
125
+ before do
126
+ subject.end_time = time
127
+ end
128
+
129
+ let(:time) { Time.parse("2016-02-09 09:01:22 UTC") }
130
+
131
+ it "should not change timezone" do
132
+ expect(subject.request_parameters).to include(tsTo: "2016-02-09 09:01:22")
133
+ end
134
+
135
+ it "should not modify the given time object" do
136
+ expect(subject.end_time).to equal(time)
137
+ end
138
+ end
139
+
140
+ context "when given time not in UTC" do
141
+ before do
142
+ subject.end_time = time
143
+ end
144
+
145
+ let(:time) { Time.parse("2016-02-09 09:01:22 +05:00") }
146
+
147
+ it "should convert to UTC" do
148
+ expect(subject.request_parameters).to include(tsTo: "2016-02-09 04:01:22")
149
+ end
150
+
151
+ it "should not modify the given time object" do
152
+ expect(subject.end_time).to equal(time)
153
+ end
154
+ end
155
+
156
+ context "when given non-time object" do
157
+ let(:time) { "2013-12-28+09%3A01%3A22" }
158
+
159
+ it "should raise exception" do
160
+ expect { subject.end_time = time }.to raise_error(QueryError, "Not a Time object")
161
+ end
162
+ end
163
+ end
164
+
73
165
  context "with valid pattern" do
74
166
  before { subject.pattern = "christmas" }
75
167
 
@@ -78,18 +170,8 @@ describe Query do
78
170
  expect(subject.request_parameters).to include(documentlang: 'en')
79
171
  end
80
172
 
81
- it "should add start_time" do
82
- subject.start_time = Time.new(2012, 12, 28, 9, 01, 22)
83
- expect(subject.request_parameters).to include(ts: '2012-12-28 09:01:22')
84
- end
85
-
86
- it "should add end_time" do
87
- subject.end_time = Time.new(2013, 12, 28, 9, 01, 22)
88
- expect(subject.request_parameters).to include(tsTo: '2013-12-28 09:01:22')
89
- end
90
-
91
173
  it "should encode url paramters" do
92
- subject.end_time = Time.new(2013, 12, 28, 9, 01, 22)
174
+ subject.end_time = Time.parse("2013-12-28 09:01:22 UTC")
93
175
  expect(subject.url_parameters).to include('tsTo=2013-12-28+09%3A01%3A22')
94
176
  end
95
177
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twingly-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twingly AB
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-28 00:00:00.000000000 Z
11
+ date: 2016-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -169,6 +169,7 @@ files:
169
169
  - lib/twingly/search/version.rb
170
170
  - spec/client_spec.rb
171
171
  - spec/error_spec.rb
172
+ - spec/fixtures/minimal_valid_result.xml
172
173
  - spec/fixtures/non_xml_result.xml
173
174
  - spec/fixtures/nonexistent_api_key_result.xml
174
175
  - spec/fixtures/service_unavailable_result.xml
@@ -212,6 +213,7 @@ summary: Ruby API client for Twingly Search
212
213
  test_files:
213
214
  - spec/client_spec.rb
214
215
  - spec/error_spec.rb
216
+ - spec/fixtures/minimal_valid_result.xml
215
217
  - spec/fixtures/non_xml_result.xml
216
218
  - spec/fixtures/nonexistent_api_key_result.xml
217
219
  - spec/fixtures/service_unavailable_result.xml