grammer 0.1.1.edge → 0.2.1.edge

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: a3efaa410d894849bb8745cb2587906913fd0b47
4
- data.tar.gz: 95e81e4fa7e1a66543af2250ef52cf93c3ed213a
3
+ metadata.gz: 5859b926ee38745c21ad36c2cac29e3458c6ae62
4
+ data.tar.gz: 1c84b880ee2e0dfee69e12a464d8e759d588938b
5
5
  SHA512:
6
- metadata.gz: 7aaaa0fd4b5cb468f02125cea29da80db7627714f5efeca3b924aab4b8e15338cdda57f17c2d262c47ad24a199147bb4d666d902e828058b64ce94f3ede1309f
7
- data.tar.gz: e02c3fa58f25e98b2303f76d768bcba886ce4b5f776214fbed6e433c6051deed963c029fa5ad1e896f522d4ae6f2c3930444f4c6071640cdfc701c5c77940bfc
6
+ metadata.gz: f11bbbfe6131d6ff983cc3b1e4b125ec19fa656e137a24ceb17e69ad7892a586a26b25158c203e249bebd75d4d2cfd8a9a8f3b524c499e694da2e2d637263c6a
7
+ data.tar.gz: f2a7a2a063bb266788924004a9c3728f234cdd76f476ac9c8831ca28790b645e17714ea19de836db8319d2240d2e9dcb9c6b22901b41d7993b9bf289d304de39
data/README.md ADDED
File without changes
@@ -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)
@@ -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
- def self.included(klass)
6
- klass.extend(Macros)
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
- # Represents Instagram nodes (Users)
4
+ ##
5
+ # = Node
6
+ # Represents Instagram nodes (accounts)
5
7
  class Node
6
- attr_reader :data, :service
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
@@ -1,10 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Grammer
4
+ ##
5
+ # = Version
4
6
  # Describes version for gemspec
5
7
  module VERSION
6
8
  MAJOR = 0
7
- MINOR = 1
9
+ MINOR = 2
8
10
  PATCH = 1
9
11
  BUILD = 'edge'
10
12
 
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.1.1.edge
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-02 00:00:00.000000000 Z
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