livefyre 1.3.2 → 2.0.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.
Files changed (46) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +3 -6
  3. data/CHANGELOG +10 -0
  4. data/README.md +3 -66
  5. data/circle.yml +10 -0
  6. data/lib/livefyre.rb +1 -1
  7. data/lib/livefyre/api/domain.rb +15 -0
  8. data/lib/livefyre/api/personalized_stream.rb +79 -72
  9. data/lib/livefyre/core/collection.rb +93 -0
  10. data/lib/livefyre/core/network.rb +61 -56
  11. data/lib/livefyre/core/site.rb +34 -82
  12. data/lib/livefyre/cursor/timeline_cursor.rb +45 -0
  13. data/lib/livefyre/{entity → dto}/subscription.rb +12 -14
  14. data/lib/livefyre/{entity → dto}/topic.rb +16 -13
  15. data/lib/livefyre/exceptions/api_exception.rb +29 -0
  16. data/lib/livefyre/exceptions/livefyre_exception.rb +9 -0
  17. data/lib/livefyre/factory/cursor_factory.rb +4 -4
  18. data/lib/livefyre/model/collection_data.rb +30 -0
  19. data/lib/livefyre/model/cursor_data.rb +17 -0
  20. data/lib/livefyre/model/network_data.rb +10 -0
  21. data/lib/livefyre/model/site_data.rb +10 -0
  22. data/lib/livefyre/type/collection_type.rb +11 -0
  23. data/lib/livefyre/type/subscription_type.rb +5 -0
  24. data/lib/livefyre/utils/livefyre_util.rb +24 -0
  25. data/lib/livefyre/validator/collection_validator.rb +33 -0
  26. data/lib/livefyre/validator/cursor_validator.rb +15 -0
  27. data/lib/livefyre/validator/network_validator.rb +19 -0
  28. data/lib/livefyre/validator/site_validator.rb +14 -0
  29. data/lib/livefyre/version.rb +1 -1
  30. data/livefyre.gemspec +15 -12
  31. data/spec/livefyre/api/domain_spec.rb +40 -0
  32. data/spec/livefyre/api/personalized_stream_spec.rb +54 -37
  33. data/spec/livefyre/core/collection_spec.rb +90 -0
  34. data/spec/livefyre/core/network_spec.rb +32 -6
  35. data/spec/livefyre/core/site_spec.rb +24 -62
  36. data/spec/livefyre/cursor/timeline_cursor_spec.rb +25 -0
  37. data/spec/livefyre/dto/subscription_spec.rb +27 -0
  38. data/spec/livefyre/dto/topic_spec.rb +35 -0
  39. data/spec/livefyre/factory/cursor_factory_spec.rb +29 -0
  40. data/spec/livefyre/utils/utils_spec.rb +30 -0
  41. data/spec/spec_helper.rb +34 -0
  42. metadata +134 -72
  43. data/.idea/misc.xml +0 -5
  44. data/.idea/modules.xml +0 -9
  45. data/lib/livefyre/entity/timeline_cursor.rb +0 -41
  46. data/spec/livefyre/test_spec.rb +0 -7
@@ -0,0 +1,90 @@
1
+ require 'spec_helper'
2
+ require 'livefyre'
3
+ require 'jwt'
4
+ require 'livefyre/dto/topic'
5
+ require 'livefyre/exceptions/livefyre_exception'
6
+
7
+ include Livefyre
8
+
9
+ describe Livefyre::Collection do
10
+ before(:each) do
11
+ @site = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY).get_site(SITE_ID, SITE_KEY)
12
+ end
13
+
14
+ it 'should raise ArgumentError if article id, title, and/or url is blank' do
15
+ expect{ @site.build_comments_collection('', ARTICLE_ID, URL) }.to raise_error(ArgumentError)
16
+ expect{ @site.build_comments_collection(TITLE, '', URL) }.to raise_error(ArgumentError)
17
+ expect{ @site.build_comments_collection(TITLE, ARTICLE_ID, '') }.to raise_error(ArgumentError)
18
+
19
+ expect{ @site.build_collection(nil, nil, nil, nil) }.to raise_error(ArgumentError)
20
+ end
21
+
22
+ it 'should raise ArgumentError if url is not a valid url for collection' do
23
+ expect{ @site.build_comments_collection(TITLE, ARTICLE_ID, 'blah.com/') }.to raise_error(ArgumentError)
24
+ end
25
+
26
+ it 'should raise ArgumentError if title is more than 255 characters for collection' do
27
+ expect{ @site.build_comments_collection('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', ARTICLE_ID, URL) }.to raise_error(ArgumentError)
28
+ end
29
+
30
+ it 'should raise ArgumentError if not a valid type is passed in when building a collection' do
31
+ expect{ @site.build_collection('bad_type', TITLE, ARTICLE_ID, URL) }.to raise_error(ArgumentError)
32
+ end
33
+
34
+ it 'should check type and assign them to the correct field in the collection meta token' do
35
+ @token = @site.build_reviews_collection(TITLE, ARTICLE_ID, URL).build_collection_meta_token
36
+ @decoded = JWT.decode(@token, SITE_KEY)
37
+
38
+ expect(@decoded['type']).to eq('reviews')
39
+
40
+ @token = @site.build_blog_collection(TITLE, ARTICLE_ID, URL).build_collection_meta_token
41
+ @decoded = JWT.decode(@token, SITE_KEY)
42
+
43
+ expect(@decoded['type']).to eq('liveblog')
44
+ end
45
+
46
+ it 'should return a collection meta token' do
47
+ expect(@site.build_comments_collection(TITLE, ARTICLE_ID, URL).build_collection_meta_token).to be_truthy
48
+ end
49
+
50
+ it 'should return a valid checksum' do
51
+ collection = @site.build_comments_collection('title', 'articleId', 'http://livefyre.com')
52
+ collection.data.tags = 'tags'
53
+ expect(collection.build_checksum).to eq('8bcfca7fb2187b1dcb627506deceee32')
54
+ end
55
+
56
+ it 'should test network_issued properly' do
57
+ collection = @site.build_comments_collection(TITLE, ARTICLE_ID, URL)
58
+ expect(collection.is_network_issued).to be false
59
+
60
+ topics = [ Topic.create(@site, 'ID', 'LABEL') ]
61
+ collection.data.topics = topics
62
+ expect(collection.is_network_issued).to be false
63
+
64
+ topics << Topic.create(@site.network, 'ID', 'LABEL')
65
+ expect(collection.is_network_issued).to be true
66
+ end
67
+
68
+ it 'should throw an error when trying to retrieve collection id when it is not set' do
69
+ collection = @site.build_comments_collection(TITLE, ARTICLE_ID, URL)
70
+ expect{ collection.data.id }.to raise_error(LivefyreException)
71
+ end
72
+
73
+ it 'should product the correct urn for a collection' do
74
+ collection = @site.build_comments_collection(TITLE, ARTICLE_ID, URL)
75
+ collection.data.id = 1
76
+ expect(collection.urn).to eq("#{@site.urn}:collection=1")
77
+ end
78
+
79
+ it 'should test basic site api' do
80
+ name = "RubyCreateCollection#{Time.new}"
81
+
82
+ collection = @site.build_comments_collection(name, name, URL).create_or_update
83
+ content = collection.get_collection_content
84
+
85
+ collection.data.title+='super'
86
+ collection.create_or_update
87
+
88
+ expect(collection.data.id).to eq(content['collectionSettings']['collectionId'])
89
+ end
90
+ end
@@ -1,24 +1,50 @@
1
+ require 'spec_helper'
1
2
  require 'livefyre'
2
3
  require 'jwt'
3
4
 
4
- RSpec.configure do |c|
5
- c.filter_run_excluding :broken => true
6
- end
7
-
8
5
  describe Livefyre::Network do
9
6
  before(:each) do
10
7
  @network = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY)
11
8
  end
12
9
 
10
+ it 'should raise ArgumentError if any param is nil' do
11
+ expect{ Livefyre.get_network(nil, nil) }.to raise_error(ArgumentError)
12
+ expect{ Livefyre.get_network('', NETWORK_KEY) }.to raise_error(ArgumentError)
13
+ expect{ Livefyre.get_network(NETWORK_NAME, '') }.to raise_error(ArgumentError)
14
+ end
15
+
16
+ it 'should raise ArgumentError if network name does not end in fyre.co' do
17
+ expect{ Livefyre.get_network('some.network', '') }.to raise_error(ArgumentError)
18
+ end
19
+
13
20
  it 'should raise ArgumentError if url_template does not contain {id}' do
14
21
  expect{ @network.set_user_sync_url('blah.com/') }.to raise_error(ArgumentError)
15
22
  end
16
23
 
17
24
  it 'should raise ArgumentError if user_id is not alphanumeric' do
18
- expect{ @network.build_user_auth_token('fjoiwje.1fj', 'test', 100) }.to raise_error(ArgumentError)
25
+ expect{ @network.build_user_auth_token('fjoi@wje.1fj', 'test', 100) }.to raise_error(ArgumentError)
26
+ end
27
+
28
+ it 'should raise Argument Error if expires is not a number' do
29
+ expect{ @network.build_user_auth_token('abc', 'test', "100") }.to raise_error(ArgumentError)
19
30
  end
20
31
 
21
32
  it 'should validate a livefyre token' do
22
- @network.validate_livefyre_token(@network.build_livefyre_token).should == true
33
+ expect(@network.validate_livefyre_token(@network.build_livefyre_token)).to be true
34
+ end
35
+
36
+ it 'should verify the urn and user urn' do
37
+ urn = "urn:livefyre:#{@network.data.name}"
38
+ expect(@network.urn).to eq(urn)
39
+ expect(@network.get_urn_for_user(USER_ID)).to eq("#{urn}:user=#{USER_ID}")
40
+ end
41
+
42
+ it 'should get the correct network name' do
43
+ expect(@network.network_name).to eq(NETWORK_NAME.split('.')[0])
44
+ end
45
+
46
+ it 'should test network api calls' do
47
+ @network.set_user_sync_url(URL+'/{id}')
48
+ @network.sync_user('abc.ABC-123_huh')
23
49
  end
24
50
  end
@@ -1,73 +1,35 @@
1
- # coding: utf-8
2
-
1
+ require 'spec_helper'
3
2
  require 'livefyre'
4
3
  require 'jwt'
4
+ require 'livefyre/type/collection_type'
5
5
 
6
- RSpec.configure do |c|
7
- c.filter_run_excluding :broken => true
8
- end
6
+ include Livefyre
9
7
 
10
8
  describe Livefyre::Site do
11
9
  before(:each) do
12
10
  @site = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY).get_site(SITE_ID, SITE_KEY)
13
11
  end
14
12
 
15
- it 'should raise ArgumentError if url is not a valid url for cmt' do
16
- expect{ @site.build_collection_meta_token('test', 'test', 'blah.com/', 'test') }.to raise_error(ArgumentError)
17
- end
18
-
19
- it 'should raise ArgumentError if title is more than 255 characters for cmt' do
20
- expect{ @site.build_collection_meta_token('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', 'test', 'http://test.com', 'test') }.to raise_error(ArgumentError)
21
- end
22
-
23
- it 'should raise ArgumentError if not a valid type is passed in when building a collection meta token' do
24
- expect{ @site.build_collection_meta_token('', '', 'http://livefyre.com', {type: 'bad type'}) }.to raise_error(ArgumentError)
25
- end
26
-
27
- it 'should check type and assign them to the correct field in the collection meta token' do
28
- @token = @site.build_collection_meta_token('', '', 'http://livefyre.com', {tags: '', type: 'reviews'})
29
- @decoded = JWT.decode(@token, SITE_KEY)
30
-
31
- expect(@decoded['type']).to eq('reviews')
32
-
33
- @token = @site.build_collection_meta_token('', '', 'http://livefyre.com', {type: 'liveblog'})
34
- @decoded = JWT.decode(@token, SITE_KEY)
35
-
36
- expect(@decoded['type']).to eq('liveblog')
37
- end
38
-
39
- it 'should return a collection meta token' do
40
- expect{ @site.build_collection_meta_token('title', 'article_id', 'https://www.url.com', 'tags') }.to be_true
41
- end
42
-
43
- it 'should raise ArgumentError if url is not a valid url for checksum' do
44
- expect{ @site.build_checksum('test', 'blah.com/', 'test') }.to raise_error(ArgumentError)
45
- end
46
-
47
- it 'should raise ArgumentError if title is more than 255 characters for checksum' do
48
- expect{ @site.build_checksum('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', 'http://test.com', 'test') }.to raise_error(ArgumentError)
49
- end
50
-
51
- it 'should return a valid checksum' do
52
- expect(@site.build_checksum('title', 'https://www.url.com', 'tags')).to eq('4464458a10c305693b5bf4d43a384be7')
53
- end
54
-
55
- it 'should check for valid and invalid urls' do
56
- expect{ @site.build_checksum('', 'test.com', '') }.to raise_error(ArgumentError)
57
-
58
- @site.build_checksum('', 'http://localhost:8000', '')
59
- @site.build_checksum('', 'http://清华大学.cn', '')
60
- @site.build_checksum('', 'http://www.mysite.com/myresumé.html', '')
61
- @site.build_checksum('', 'https://test.com/', '')
62
- @site.build_checksum('', 'ftp://test.com/', '')
63
- @site.build_checksum('', "https://test.com/path/test.-_~!$&'()*+,;=:@/dash", '')
64
- end
65
-
66
- it 'should test basic site api', :broken => true do
67
- @site.get_collection_content(ARTICLE_ID)
68
-
69
- name = "RubyCreateCollection#{Time.new}"
70
- id = @site.create_collection(name, name, 'http://answers.livefyre.com/RUBY')
71
- expect(@site.get_collection_id(name)).to eq(id)
13
+ it 'should verify the urn' do
14
+ expect(@site.urn).to eq("#{@site.network.urn}:site=#{SITE_ID}")
15
+ end
16
+
17
+ it 'should create collections of all types and verify their type' do
18
+ collection = @site.build_comments_collection(TITLE, ARTICLE_ID, URL)
19
+ expect(collection.data.type).to eq(CollectionType::COMMENTS)
20
+ collection = @site.build_blog_collection(TITLE, ARTICLE_ID, URL)
21
+ expect(collection.data.type).to eq(CollectionType::BLOG)
22
+ collection = @site.build_chat_collection(TITLE, ARTICLE_ID, URL)
23
+ expect(collection.data.type).to eq(CollectionType::CHAT)
24
+ collection = @site.build_counting_collection(TITLE, ARTICLE_ID, URL)
25
+ expect(collection.data.type).to eq(CollectionType::COUNTING)
26
+ collection = @site.build_ratings_collection(TITLE, ARTICLE_ID, URL)
27
+ expect(collection.data.type).to eq(CollectionType::RATINGS)
28
+ collection = @site.build_reviews_collection(TITLE, ARTICLE_ID, URL)
29
+ expect(collection.data.type).to eq(CollectionType::REVIEWS)
30
+ collection = @site.build_sidenotes_collection(TITLE, ARTICLE_ID, URL)
31
+ expect(collection.data.type).to eq(CollectionType::SIDENOTES)
32
+ collection = @site.build_collection(CollectionType::COMMENTS, TITLE, ARTICLE_ID, URL)
33
+ expect(collection.data.type).to eq(CollectionType::COMMENTS)
72
34
  end
73
35
  end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+ require 'livefyre'
3
+ require 'livefyre/cursor/timeline_cursor'
4
+
5
+ include Livefyre
6
+
7
+ describe Livefyre::TimelineCursor do
8
+ before(:each) do
9
+ @network = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY)
10
+ end
11
+
12
+ it 'should raise ArgumentError if any param is nil' do
13
+ expect{ TimelineCursor::init(@network, nil, nil, Time.new) }.to raise_error(ArgumentError)
14
+ expect{ TimelineCursor::init(@network, '', '', Time.new) }.to raise_error(ArgumentError)
15
+ end
16
+
17
+ it 'should set the same cursor time' do
18
+ time = Time.new
19
+
20
+ cursor = TimelineCursor::init(@network, 'resource', 50, time)
21
+ set_time = cursor.data.cursor_time
22
+ cursor.data.set_cursor_time(time)
23
+ expect(cursor.data.cursor_time).to eq(set_time)
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'livefyre/dto/subscription'
4
+
5
+ include Livefyre
6
+
7
+ describe Livefyre::Subscription do
8
+ it 'should correctly form a hash' do
9
+ sub = Subscription.new('a', 'b', 'c')
10
+ h = sub.to_hash
11
+ expect(h[:to]).to eq('a')
12
+ expect(h[:by]).to eq('b')
13
+ expect(h[:type]).to eq('c')
14
+ expect(h.has_key?(:createdAt)).to be false
15
+
16
+ sub.created_at=0
17
+ h = sub.to_hash
18
+ expect(h[:createdAt]).to eq(0)
19
+ end
20
+
21
+ it 'should produce the expected json and serialize from it' do
22
+ sub1 = Subscription.new('a', 'b', 'c')
23
+ json = sub1.to_json
24
+ sub2 = JSON.parse(json)
25
+ expect(sub1.to_hash).to eq(Subscription::serialize_from_json(sub2).to_hash)
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'livefyre/dto/topic'
4
+ require 'livefyre'
5
+
6
+ include Livefyre
7
+
8
+ describe Livefyre::Topic do
9
+ it 'should correctly form a hash' do
10
+ topic = Topic.new('a', 'b')
11
+ h = topic.to_hash
12
+ expect(h[:id]).to eq('a')
13
+ expect(h[:label]).to eq('b')
14
+ expect(h.has_key?(:createdAt)).to be false
15
+ expect(h.has_key?(:modifiedAt)).to be false
16
+
17
+ topic.created_at=0
18
+ topic.modified_at=1
19
+ h = topic.to_hash
20
+ expect(h[:createdAt]).to eq(0)
21
+ expect(h[:modifiedAt]).to eq(1)
22
+ end
23
+
24
+ it 'should produce the expected json and serialize from it' do
25
+ topic = Topic.new('a', 'b', 0, 1)
26
+ json = topic.to_json
27
+ topic2 = JSON.parse(json)
28
+ expect(topic.to_hash).to eq(Topic::serialize_from_json(topic2).to_hash)
29
+ end
30
+
31
+ it 'should retrieve the correct truncated id from a Topic' do
32
+ topic = Topic.create(Livefyre.get_network(NETWORK_NAME, NETWORK_KEY), 'ID', 'LABEL')
33
+ expect(topic.truncated_id).to eq('ID')
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ require 'livefyre'
3
+ require 'livefyre/factory/cursor_factory'
4
+
5
+ include Livefyre
6
+
7
+ describe Livefyre::CursorFactory do
8
+ before(:each) do
9
+ @network = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY)
10
+ end
11
+
12
+ it 'should create a cursor with a personal stream resource' do
13
+ topic = Topic.create(@network, 'ID', 'LABEL')
14
+ cursor = CursorFactory.get_personal_stream_cursor(@network, USER_ID)
15
+ expect(cursor.data.resource).to eq("#{@network.get_urn_for_user(USER_ID)}:personalStream")
16
+
17
+ cursor = CursorFactory.get_personal_stream_cursor(@network, USER_ID, 10, Time.new)
18
+ expect(cursor.data.limit).to eq(10)
19
+ end
20
+
21
+ it 'should create a cursor with a topic stream resource' do
22
+ topic = Topic.create(@network, 'ID', 'LABEL')
23
+ cursor = CursorFactory.get_topic_stream_cursor(@network, topic)
24
+ expect(cursor.data.resource).to eq("#{topic.id}:topicStream")
25
+
26
+ cursor = CursorFactory.get_topic_stream_cursor(@network, topic, 10, Time.new)
27
+ expect(cursor.data.limit).to eq(10)
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require 'livefyre'
5
+ require 'jwt'
6
+
7
+ include Livefyre
8
+
9
+ describe Livefyre::LivefyreUtil do
10
+ it 'should check for valid and invalid urls' do
11
+ expect(LivefyreUtil::uri?('test.com')).to eq(false)
12
+
13
+ expect(LivefyreUtil::uri?('http://localhost:8000')).to eq(true)
14
+ expect(LivefyreUtil::uri?('http://清华大学.cn')).to eq(true)
15
+ expect(LivefyreUtil::uri?('http://www.mysite.com/myresumé.html')).to eq(true)
16
+ expect(LivefyreUtil::uri?('https://test.com/')).to eq(true)
17
+ expect(LivefyreUtil::uri?('ftp://test.com/')).to eq(true)
18
+ expect(LivefyreUtil::uri?("https://test.com/path/test.-_~!$&'()*+,;=:@/dash")).to eq(true)
19
+ end
20
+
21
+ it 'should get network from all core objects' do
22
+ network = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY)
23
+ site = network.get_site(SITE_ID, SITE_KEY)
24
+ collection = site.build_comments_collection(TITLE, ARTICLE_ID, URL)
25
+
26
+ expect(LivefyreUtil::get_network_from_core(network)).to eq(network)
27
+ expect(LivefyreUtil::get_network_from_core(site)).to eq(network)
28
+ expect(LivefyreUtil::get_network_from_core(collection)).to eq(network)
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
5
+ SimpleCov.start do
6
+ add_filter 'spec/'
7
+ add_filter 'lib/livefyre/exceptions'
8
+ end
9
+
10
+ Coveralls.wear!
11
+
12
+ begin
13
+ config = File.open('test.yml') { |yf| YAML::load(yf) }
14
+ env = config['production']
15
+
16
+ NETWORK_NAME = env['NETWORK_NAME']
17
+ NETWORK_KEY = env['NETWORK_KEY']
18
+ SITE_ID = env['SITE_ID']
19
+ SITE_KEY = env['SITE_KEY']
20
+ COLLECTION_ID = env['COLLECTION_ID']
21
+ USER_ID = env['USER_ID']
22
+ ARTICLE_ID = env['ARTICLE_ID']
23
+ rescue
24
+ NETWORK_NAME = ENV['NETWORK_NAME'] || '<NETWORK-NAME>'
25
+ NETWORK_KEY = ENV['NETWORK_KEY'] || '<NETWORK-KEY>'
26
+ SITE_ID = ENV['SITE_ID'] || '<SITE-ID>'
27
+ SITE_KEY = ENV['SITE_KEY'] || '<SITE-KEY>'
28
+ COLLECTION_ID = ENV['COLLECTION_ID'] || '<COLLECTION-ID>'
29
+ USER_ID = ENV['USER_ID'] || '<USER-ID>'
30
+ ARTICLE_ID = ENV['ARTICLE_ID'] || '<ARTICLE-ID>'
31
+ end
32
+
33
+ TITLE = 'RubyTest'
34
+ URL = 'http://answers.livefyre.com/RUBY'
metadata CHANGED
@@ -1,123 +1,157 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livefyre
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Livefyre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-12 00:00:00.000000000 Z
11
+ date: 2014-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
19
+ version: '0'
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: '1.3'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: rest-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
33
+ version: '1.7'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.7.2
37
+ type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - ! '>='
41
+ - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '0'
43
+ version: '1.7'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.7.2
41
47
  - !ruby/object:Gem::Dependency
42
- name: rest-client
48
+ name: jwt
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ~>
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.6'
48
- - - ! '>='
53
+ version: '0.1'
54
+ - - ">="
49
55
  - !ruby/object:Gem::Version
50
- version: 1.6.7
51
- type: :development
56
+ version: 0.1.13
57
+ type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
54
60
  requirements:
55
- - - ~>
61
+ - - "~>"
56
62
  - !ruby/object:Gem::Version
57
- version: '1.6'
58
- - - ! '>='
63
+ version: '0.1'
64
+ - - ">="
59
65
  - !ruby/object:Gem::Version
60
- version: 1.6.7
66
+ version: 0.1.13
61
67
  - !ruby/object:Gem::Dependency
62
- name: jwt
68
+ name: addressable
63
69
  requirement: !ruby/object:Gem::Requirement
64
70
  requirements:
65
- - - ~>
71
+ - - "~>"
66
72
  - !ruby/object:Gem::Version
67
- version: '0.1'
68
- - - ! '>='
73
+ version: '2.3'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 2.3.6
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '2.3'
84
+ - - ">="
69
85
  - !ruby/object:Gem::Version
70
- version: 0.1.11
86
+ version: 2.3.6
87
+ - !ruby/object:Gem::Dependency
88
+ name: bundler
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.7'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.7.4
71
97
  type: :development
72
98
  prerelease: false
73
99
  version_requirements: !ruby/object:Gem::Requirement
74
100
  requirements:
75
- - - ~>
101
+ - - "~>"
76
102
  - !ruby/object:Gem::Version
77
- version: '0.1'
78
- - - ! '>='
103
+ version: '1.7'
104
+ - - ">="
79
105
  - !ruby/object:Gem::Version
80
- version: 0.1.11
106
+ version: 1.7.4
81
107
  - !ruby/object:Gem::Dependency
82
108
  name: rspec
83
109
  requirement: !ruby/object:Gem::Requirement
84
110
  requirements:
85
- - - ~>
111
+ - - "~>"
86
112
  - !ruby/object:Gem::Version
87
- version: '2.14'
88
- - - ! '>='
113
+ version: '3.1'
114
+ - - ">="
89
115
  - !ruby/object:Gem::Version
90
- version: 2.14.1
116
+ version: '3.1'
91
117
  type: :development
92
118
  prerelease: false
93
119
  version_requirements: !ruby/object:Gem::Requirement
94
120
  requirements:
95
- - - ~>
121
+ - - "~>"
96
122
  - !ruby/object:Gem::Version
97
- version: '2.14'
98
- - - ! '>='
123
+ version: '3.1'
124
+ - - ">="
99
125
  - !ruby/object:Gem::Version
100
- version: 2.14.1
126
+ version: '3.1'
101
127
  - !ruby/object:Gem::Dependency
102
- name: addressable
128
+ name: coveralls
103
129
  requirement: !ruby/object:Gem::Requirement
104
130
  requirements:
105
- - - ~>
131
+ - - "~>"
106
132
  - !ruby/object:Gem::Version
107
- version: '2.3'
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: 2.3.6
133
+ version: 0.7.1
111
134
  type: :development
112
135
  prerelease: false
113
136
  version_requirements: !ruby/object:Gem::Requirement
114
137
  requirements:
115
- - - ~>
138
+ - - "~>"
116
139
  - !ruby/object:Gem::Version
117
- version: '2.3'
118
- - - ! '>='
140
+ version: 0.7.1
141
+ - !ruby/object:Gem::Dependency
142
+ name: simplecov
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
119
146
  - !ruby/object:Gem::Version
120
- version: 2.3.6
147
+ version: 0.9.1
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: 0.9.1
121
155
  description: Livefyre Ruby utility classes
122
156
  email:
123
157
  - tools@livefyre.com
@@ -125,54 +159,75 @@ executables: []
125
159
  extensions: []
126
160
  extra_rdoc_files: []
127
161
  files:
128
- - .gitignore
129
- - .idea/.name
130
- - .idea/.rakeTasks
131
- - .idea/encodings.xml
132
- - .idea/misc.xml
133
- - .idea/modules.xml
134
- - .idea/scopes/scope_settings.xml
135
- - .idea/vagrant.xml
136
- - .idea/vcs.xml
137
- - .project
162
+ - ".gitignore"
163
+ - ".idea/.name"
164
+ - ".idea/.rakeTasks"
165
+ - ".idea/encodings.xml"
166
+ - ".idea/scopes/scope_settings.xml"
167
+ - ".idea/vagrant.xml"
168
+ - ".idea/vcs.xml"
169
+ - ".project"
138
170
  - CHANGELOG
139
171
  - Gemfile
140
172
  - LICENSE.txt
141
173
  - README.md
142
174
  - Rakefile
175
+ - circle.yml
143
176
  - lib/livefyre.rb
177
+ - lib/livefyre/api/domain.rb
144
178
  - lib/livefyre/api/personalized_stream.rb
179
+ - lib/livefyre/core/collection.rb
145
180
  - lib/livefyre/core/network.rb
146
181
  - lib/livefyre/core/site.rb
147
- - lib/livefyre/entity/subscription.rb
148
- - lib/livefyre/entity/timeline_cursor.rb
149
- - lib/livefyre/entity/topic.rb
182
+ - lib/livefyre/cursor/timeline_cursor.rb
183
+ - lib/livefyre/dto/subscription.rb
184
+ - lib/livefyre/dto/topic.rb
185
+ - lib/livefyre/exceptions/api_exception.rb
186
+ - lib/livefyre/exceptions/livefyre_exception.rb
150
187
  - lib/livefyre/factory/cursor_factory.rb
188
+ - lib/livefyre/model/collection_data.rb
189
+ - lib/livefyre/model/cursor_data.rb
190
+ - lib/livefyre/model/network_data.rb
191
+ - lib/livefyre/model/site_data.rb
192
+ - lib/livefyre/type/collection_type.rb
193
+ - lib/livefyre/type/subscription_type.rb
194
+ - lib/livefyre/utils/livefyre_util.rb
195
+ - lib/livefyre/validator/collection_validator.rb
196
+ - lib/livefyre/validator/cursor_validator.rb
197
+ - lib/livefyre/validator/network_validator.rb
198
+ - lib/livefyre/validator/site_validator.rb
151
199
  - lib/livefyre/version.rb
152
200
  - livefyre.gemspec
201
+ - spec/livefyre/api/domain_spec.rb
153
202
  - spec/livefyre/api/personalized_stream_spec.rb
203
+ - spec/livefyre/core/collection_spec.rb
154
204
  - spec/livefyre/core/network_spec.rb
155
205
  - spec/livefyre/core/site_spec.rb
156
- - spec/livefyre/test_spec.rb
206
+ - spec/livefyre/cursor/timeline_cursor_spec.rb
207
+ - spec/livefyre/dto/subscription_spec.rb
208
+ - spec/livefyre/dto/topic_spec.rb
209
+ - spec/livefyre/factory/cursor_factory_spec.rb
210
+ - spec/livefyre/utils/utils_spec.rb
211
+ - spec/spec_helper.rb
157
212
  homepage: http://github.com/livefyre/livefyre-ruby-utils
158
213
  licenses:
159
214
  - MIT
160
215
  metadata: {}
161
- post_install_message: ! " ! Note: this is a completely new version of the livefyre
162
- gem from Livefyre.\n ! Users that were using the previous livefyre gem (v.0.1.2)
163
- should now refer to livefyre-mashable.\n ! These two gems cannot be used in conjunction
164
- with one another as they share the same namespace.\n"
216
+ post_install_message: |2
217
+ ! Note: this is a completely new version of the livefyre gem from Livefyre.
218
+ ! Users that were using the previous livefyre gem (v.0.1.2) should now refer to livefyre-mashable.
219
+ ! These two gems cannot be used in conjunction with one another as they share the same namespace.
165
220
  rdoc_options: []
166
221
  require_paths:
167
222
  - lib
168
223
  required_ruby_version: !ruby/object:Gem::Requirement
169
224
  requirements:
170
- - - ! '>='
225
+ - - ">="
171
226
  - !ruby/object:Gem::Version
172
227
  version: '0'
173
228
  required_rubygems_version: !ruby/object:Gem::Requirement
174
229
  requirements:
175
- - - ! '>='
230
+ - - ">="
176
231
  - !ruby/object:Gem::Version
177
232
  version: '0'
178
233
  requirements: []
@@ -182,8 +237,15 @@ signing_key:
182
237
  specification_version: 4
183
238
  summary: Livefyre Ruby utility classes
184
239
  test_files:
240
+ - spec/livefyre/api/domain_spec.rb
185
241
  - spec/livefyre/api/personalized_stream_spec.rb
242
+ - spec/livefyre/core/collection_spec.rb
186
243
  - spec/livefyre/core/network_spec.rb
187
244
  - spec/livefyre/core/site_spec.rb
188
- - spec/livefyre/test_spec.rb
245
+ - spec/livefyre/cursor/timeline_cursor_spec.rb
246
+ - spec/livefyre/dto/subscription_spec.rb
247
+ - spec/livefyre/dto/topic_spec.rb
248
+ - spec/livefyre/factory/cursor_factory_spec.rb
249
+ - spec/livefyre/utils/utils_spec.rb
250
+ - spec/spec_helper.rb
189
251
  has_rdoc: