wreddit 0.1.1 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 113fa2a253b67c27554640143b156bdfe3fe3b22
4
- data.tar.gz: bed896e7d76e72df2be471b05f53bded122a5b49
3
+ metadata.gz: 43b53b6bc7d2068f537113008ff9e959fdba9639
4
+ data.tar.gz: e00ed9ef3283b070309dde649057f7ce3aa8e345
5
5
  SHA512:
6
- metadata.gz: 2d71eb9f7d63b148e8317f5493db4d7756d07ffe88fc6ca8e15c0d0ae970112801bad5a8ab89c37a1739b090761741462a48be4dd6361a08a510245dfb4136c3
7
- data.tar.gz: 7f70ecc0c057a26e8b4004c76e81b1a287a44fc68cfd8efdef19f720468e5b7b9ff1c06ea3a079ee153063ccb8d5b64cd2f5606113954989f01b09be7ce52bf5
6
+ metadata.gz: 7eef17c513ce04b90b128be4844909f4926bda57c579abbeff21246aee057ba8fd05d2b9f99009cb4640bd0a48dec1a2cd2e1bfdf3b543363c82403f1ca520d6
7
+ data.tar.gz: ef8f3e084460043c76f0b9bad58660f4ad48513938e0623d55f29bf1be80098f662a161a42742bcfb8d1cd2691192f876413b999dcb129cda6f407c5c4592a37
@@ -0,0 +1,5 @@
1
+ require_relative 'wreddit'
2
+ puts "Hello world"
3
+
4
+ reddit = Wreddit.new
5
+ puts reddit.subreddit.titles
@@ -1,17 +1,23 @@
1
- require "wreddit/version"
2
- require 'net/http'
3
1
  require 'json'
4
2
  require 'nokogiri'
3
+ require 'httparty'
5
4
 
6
- module Wreddit
7
- def subreddit(subreddit_name)
8
- @uri = "https://www.reddit.com/r/#{subreddit_name}"
5
+
6
+ class Wreddit
7
+ def initialize
8
+ @uri = "https://www.reddit.com"
9
+ end
10
+ # standard requests
11
+ def subreddit(subreddit_name = "all")
12
+ @uri += "/r/#{subreddit_name}"
9
13
  self
10
14
  end
15
+
11
16
  def user(user_name)
12
- @uri = "https://www.reddit.com/user/#{user_name}"
17
+ @uri += "/u/#{user_name}"
13
18
  self
14
19
  end
20
+
15
21
  def comments(article_id = nil)
16
22
  # gets all comments if article_id is unspecified
17
23
  @uri += "/comments"
@@ -21,26 +27,83 @@ module Wreddit
21
27
  end
22
28
  self
23
29
  end
30
+
24
31
  def title(title_name)
25
32
  @uri += "/#{title_name}"
26
33
  self
27
34
  end
35
+
28
36
  def comment(comment_id)
29
37
  @uri += "/#{comment_id}"
30
38
  self
31
39
  end
32
- def parser(method = nil)
40
+
41
+ # unique parsing (currently only works in JSON)
42
+ def links
43
+ links = []
44
+ response = self.json
45
+ if response.code == 200
46
+ response['data']['children'].each do |child|
47
+ links.push(child['data']['url'])
48
+ end
49
+ return links
50
+ else
51
+ return response
52
+ end
53
+ end
54
+
55
+ def titles
56
+ titles = []
57
+ response = self.json
58
+ if response.code == 200
59
+ response['data']['children'].each do |child|
60
+ titles.push(child['data']['title'])
61
+ end
62
+ return titles
63
+ else
64
+ return response
65
+ end
66
+ end
67
+
68
+ def descriptions
69
+ descriptions = []
70
+ response = self.json
71
+ if response.code == 200
72
+ response['data']['children'].each do |child|
73
+ descriptions.push(child['data']['selftext'])
74
+ end
75
+ return descriptions
76
+ else
77
+ return response
78
+ end
79
+ end
80
+
81
+ # parse helpers
82
+ def json
83
+ HTTParty.get(URI(@uri + '.json'))
84
+ end
85
+
86
+ def xml
87
+ HTTParty.get(URI(@uri + '.xml'))
88
+ end
89
+
90
+ def html
91
+ HTTParty.get(URI(@uri))
92
+ end
93
+
94
+ # general parsing
95
+ def parse(method = nil)
33
96
  # method of parsing your request
34
97
  case method
35
98
  when "json"
36
- JSON.parse(Net::HTTP.get(URI(@uri + '.json')))
99
+ self.json
37
100
  when "xml"
38
- Nokogiri::XML(Net::HTTP.get(URI(@uri + '.xml')))
101
+ self.xml
39
102
  when "html"
40
- Nokogiri::HTML(Net::HTTP.get(URI(@uri)))
103
+ self.html
41
104
  else
42
105
  # assume the user wants it in JSON format
43
- JSON.parse(Net::HTTP.get(URI(@uri + '.json')))
106
+ self.json
44
107
  end
45
108
  end
46
109
  end
@@ -1,3 +1,3 @@
1
- module Wreddit
2
- VERSION = "0.1.1"
1
+ class Wreddit
2
+ VERSION = "1.0.0"
3
3
  end
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
36
  spec.add_development_dependency "nokogiri"
37
+ spec.add_development_dependency "httparty"
37
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wreddit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Hulse
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Reddit has a built-in API with JSON requests. The WReddit class allows
70
84
  users to access the JSON data for quick applications
71
85
  email:
@@ -84,6 +98,7 @@ files:
84
98
  - Rakefile
85
99
  - bin/console
86
100
  - bin/setup
101
+ - lib/test.rb
87
102
  - lib/wreddit.rb
88
103
  - lib/wreddit/version.rb
89
104
  - wreddit.gemspec