grammer 0.1.1.edge → 0.2.1.edge
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 +4 -4
- data/README.md +0 -0
- data/lib/grammer/ig_service.rb +3 -0
- data/lib/grammer/macros.rb +9 -12
- data/lib/grammer/node.rb +16 -2
- data/lib/grammer/version.rb +3 -1
- data/lib/grammer.rb +7 -0
- metadata +23 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5859b926ee38745c21ad36c2cac29e3458c6ae62
|
4
|
+
data.tar.gz: 1c84b880ee2e0dfee69e12a464d8e759d588938b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f11bbbfe6131d6ff983cc3b1e4b125ec19fa656e137a24ceb17e69ad7892a586a26b25158c203e249bebd75d4d2cfd8a9a8f3b524c499e694da2e2d637263c6a
|
7
|
+
data.tar.gz: f2a7a2a063bb266788924004a9c3728f234cdd76f476ac9c8831ca28790b645e17714ea19de836db8319d2240d2e9dcb9c6b22901b41d7993b9bf289d304de39
|
data/README.md
ADDED
File without changes
|
data/lib/grammer/ig_service.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Grammer
|
4
|
+
##
|
4
5
|
# Handles Ig Requests
|
5
6
|
class IgService
|
6
7
|
include HTTParty
|
7
8
|
base_uri 'https://www.instagram.com'
|
8
9
|
|
10
|
+
##
|
11
|
+
# Requests Instagram node information with a given username.
|
9
12
|
def node(username)
|
10
13
|
page = self.class.get("/#{username}")
|
11
14
|
json = Nokogiri.parse(page)
|
data/lib/grammer/macros.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Adds class macros to top level module
|
4
3
|
module Grammer
|
5
|
-
|
6
|
-
|
7
|
-
end
|
8
|
-
|
4
|
+
##
|
5
|
+
# = Macros
|
9
6
|
# Defines class macros
|
10
7
|
module Macros
|
8
|
+
##
|
9
|
+
# Gets constant value or sets it if it haven't been defined before.
|
11
10
|
def get_or_set_const(module_name)
|
12
11
|
if const_defined?(module_name)
|
13
12
|
const_get(module_name)
|
@@ -16,6 +15,8 @@ module Grammer
|
|
16
15
|
end
|
17
16
|
end
|
18
17
|
|
18
|
+
##
|
19
|
+
# Defines methods on singleton modules in order to handle macros
|
19
20
|
def define_module_method(mod, method_name, opts)
|
20
21
|
mod.class_eval do
|
21
22
|
target_attribute = opts[:on]
|
@@ -31,17 +32,13 @@ module Grammer
|
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
35
|
+
##
|
36
|
+
# Main initializing class macro for the module.
|
37
|
+
# Defines a Node instance on the given name.
|
34
38
|
def grammed_by(method_name, opts = {})
|
35
39
|
mod = get_or_set_const(:"GammerMod#{object_id}")
|
36
40
|
define_module_method(mod, method_name, opts)
|
37
41
|
prepend mod
|
38
42
|
end
|
39
|
-
|
40
|
-
def grammed_by_class_method(*methods)
|
41
|
-
singleton_class.class_eval do
|
42
|
-
include Grammer
|
43
|
-
grammed_by(*methods)
|
44
|
-
end
|
45
|
-
end
|
46
43
|
end
|
47
44
|
end
|
data/lib/grammer/node.rb
CHANGED
@@ -1,19 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Grammer
|
4
|
-
|
4
|
+
##
|
5
|
+
# = Node
|
6
|
+
# Represents Instagram nodes (accounts)
|
5
7
|
class Node
|
6
|
-
|
8
|
+
##
|
9
|
+
# General Instagram hash of data from the node
|
10
|
+
attr_reader :data
|
7
11
|
|
12
|
+
##
|
13
|
+
# Service used for requesting instagram info
|
14
|
+
attr_reader :service
|
15
|
+
|
16
|
+
##
|
17
|
+
# Creates a new instagram node defined by its username.
|
8
18
|
def initialize(username, attr = {})
|
9
19
|
@service = attr[:service] || IgService.new
|
10
20
|
@data = service.node(username)
|
11
21
|
end
|
12
22
|
|
23
|
+
##
|
24
|
+
# Helper for displaying node's biography
|
13
25
|
def biography
|
14
26
|
@data.dig('biography')
|
15
27
|
end
|
16
28
|
|
29
|
+
##
|
30
|
+
# Helper for displaying node's followers count
|
17
31
|
def followers_count
|
18
32
|
@data.dig('edge_followed_by', 'count')
|
19
33
|
end
|
data/lib/grammer/version.rb
CHANGED
data/lib/grammer.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
##
|
3
4
|
# Main Module
|
4
5
|
module Grammer
|
5
6
|
require 'httparty'
|
@@ -8,4 +9,10 @@ module Grammer
|
|
8
9
|
require 'grammer/ig_service'
|
9
10
|
require 'grammer/macros'
|
10
11
|
require 'grammer/node'
|
12
|
+
|
13
|
+
##
|
14
|
+
# Extends class macros to main module
|
15
|
+
def self.included(klass)
|
16
|
+
klass.extend(Macros)
|
17
|
+
end
|
11
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grammer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1.edge
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Caio Andrade
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -64,6 +64,20 @@ dependencies:
|
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '3.6'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rdoc
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '6.1'
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '6.1'
|
67
81
|
- !ruby/object:Gem::Dependency
|
68
82
|
name: reek
|
69
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,8 +138,10 @@ description: Provides a simple way to connect objects to the info on a Instagram
|
|
124
138
|
email: caioertai@gmail.com
|
125
139
|
executables: []
|
126
140
|
extensions: []
|
127
|
-
extra_rdoc_files:
|
141
|
+
extra_rdoc_files:
|
142
|
+
- README.md
|
128
143
|
files:
|
144
|
+
- README.md
|
129
145
|
- lib/grammer.rb
|
130
146
|
- lib/grammer/ig_service.rb
|
131
147
|
- lib/grammer/macros.rb
|
@@ -136,7 +152,10 @@ licenses:
|
|
136
152
|
- MIT
|
137
153
|
metadata: {}
|
138
154
|
post_install_message:
|
139
|
-
rdoc_options:
|
155
|
+
rdoc_options:
|
156
|
+
- lib/
|
157
|
+
- "--exclude"
|
158
|
+
- lib/grammer/version.rb
|
140
159
|
require_paths:
|
141
160
|
- lib
|
142
161
|
required_ruby_version: !ruby/object:Gem::Requirement
|