livefyre 1.3.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: