neo4apis-twitter 0.0.1 → 0.0.2

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: f9ac29686dd644899a2f184a99f653f1b15d1b78
4
- data.tar.gz: cb662fae49dd85790bdd8af896f87ea3f3ebe7a0
3
+ metadata.gz: 43816b4c7d84582347f3d469727ff75ab9219cad
4
+ data.tar.gz: b7fb544aa5507bec0c2094723479baa4078a39f7
5
5
  SHA512:
6
- metadata.gz: 33f5489c963868868b654557145dfa2858d6419977a42031a04ced7e93a2286ddf600d0552ee98629c2a9f5e9fde2a36f8ad914a7b1b52ddf8e9c4c09f5eb2f5
7
- data.tar.gz: c9eca1f76eaf51cabec63e3c87ee15418ae134a189e2c6cc6a75227e4a3a86273cce39c5931460efafad402f590b76f4e3c1cad4882349b3a27dd520b820529f
6
+ metadata.gz: fec12fd33e54c2601938c8b5e816ca99a26f8e359027aa8dcc1153d7b51b01fcb306024a8628b3c0d6f9e852fa53528a18fb19e85f43503903c01559e1a322a3
7
+ data.tar.gz: e00ac6020eed2fdc76fd9fe02303c2f66fe43c7870ce61b52aee6a9b8112ec78a04f4f26a844578ba298c8dbac267e7912ed4a5f7d2ef17c6ae0bbb284dea18f
data/README.md CHANGED
@@ -1,16 +1,23 @@
1
1
 
2
2
  neo4apis-twitter is a ruby gem for making importing data from twitter to neo4j easy
3
3
 
4
- The `twitter` gem is used and thus the methods in this API try to match that API as closely as possible
4
+ This adapter supports objects created from the `twitter` gem.
5
5
 
6
6
  ```ruby
7
7
 
8
8
  twitter_client = Twitter::REST::Client.new ...
9
9
 
10
- neo4japis_twitter = Neo4Apis::Twitter.new(Neo4j::Session.open, twitter_client: twitter_client)
11
-
12
- neo4japis_twitter.batch do
13
- neo4japis_twitter.import_search("ebola", :result_type => "recent")
10
+ neo4japis_twitter = Neo4Apis::Twitter.new(Neo4j::Session.open, import_retweets: true)
11
+
12
+ neo4japis_twitter.batch do
13
+ twitter_client.search("ebola", :result_type => "recent").take(100).each do |tweet|
14
+ # Imports:
15
+ # * The tweet
16
+ # * The tweeter,
17
+ # * The original tweet if a retweet
18
+ # * The user for the original tweet
19
+ import :Tweet, tweet
20
+ end
14
21
  end
15
22
 
16
23
  ```
@@ -2,32 +2,13 @@ require 'neo4apis'
2
2
 
3
3
  module Neo4Apis
4
4
  class Twitter < Base
5
- PREFIX = 'twitter'
5
+ uuid :Tweet, :id
6
+ uuid :User, :id
6
7
 
7
- def initialize(neo4j_client, options = {})
8
- @client = options[:twitter_client]
8
+ importer :Tweet do |tweet|
9
+ user_node = import :User, tweet.user
9
10
 
10
- raise ArgumentError, "Invalid client: #{@client.inspect}" if not @client.is_a?(::Twitter::REST::Client)
11
-
12
- options[:uuids] = (options[:uuids] || {}).merge({
13
- Tweet: :id,
14
- User: :id
15
- })
16
-
17
- super(neo4j_client, options)
18
- end
19
-
20
- def import_search(*args)
21
- @client.search(*args).take(100).each do |tweet|
22
- add_tweet(tweet)
23
- end
24
- end
25
-
26
- private
27
-
28
- def add_tweet(tweet)
29
- user_node = add_user(tweet.user)
30
- retweeted_tweet_node = add_tweet(tweet.retweeted_tweet) if tweet.retweeted_tweet?
11
+ retweeted_tweet_node = import :Tweet, tweet.retweeted_tweet if options[:import_retweets] && tweet.retweeted_tweet?
31
12
 
32
13
  node = add_node :Tweet, {
33
14
  id: tweet.id,
@@ -35,12 +16,12 @@ module Neo4Apis
35
16
  }
36
17
 
37
18
  add_relationship(:tweeted, user_node, node)
38
- add_relationship(:retweets, node, retweeted_tweet_node) if tweet.retweeted_tweet?
19
+ add_relationship(:retweets, node, retweeted_tweet_node) if options[:import_retweets] && tweet.retweeted_tweet?
39
20
 
40
21
  node
41
22
  end
42
23
 
43
- def add_user(user)
24
+ importer :User do |user|
44
25
  add_node :User, {
45
26
  id: user.id,
46
27
  screen_name: user.screen_name,
@@ -1,6 +1,8 @@
1
+ require 'neo4apis'
2
+
1
3
  module Neo4Apis
2
- class Twitter
3
- VERSION = '0.0.1'
4
+ class Twitter < Base
5
+ VERSION = '0.0.2'
4
6
  end
5
7
  end
6
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4apis-twitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Underwood
@@ -62,4 +62,3 @@ signing_key:
62
62
  specification_version: 4
63
63
  summary: An ruby gem to import twitter data to neo4j
64
64
  test_files: []
65
- has_rdoc: