grammer 0.2.1.edge → 0.2.3.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 +43 -0
- data/lib/grammer/macro_handler.rb +19 -0
- data/lib/grammer/macros.rb +6 -17
- data/lib/grammer/node.rb +6 -0
- data/lib/grammer/version.rb +1 -1
- data/lib/grammer.rb +8 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ea42af8ecb0f495ad1f5e83707eed9a7a0c9cae
|
4
|
+
data.tar.gz: d86e6a3de1e8a97351c29a713a1b4118b20c20b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbcffea118ae4c2ed70f95d36058b58887f9c2452b29485e3ac9da198b4a9107d73cb205900c36db347c8d30d13bd0eb4de52a706d7ce4d3f08dc53795467f56
|
7
|
+
data.tar.gz: 4ba1bb4abc6eee42796f1fc4b6dc86b521fe154b6c8b69d2abb114985a030d414456e210374e7319c5a950ed795e4fabb03d26a28b8cd57fc8fbc23a1b560b1e
|
data/README.md
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
[](https://badge.fury.io/rb/grammer)
|
2
|
+
[](https://codeclimate.com/github/caioertai/grammer/maintainability)
|
3
|
+
[](https://travis-ci.org/caioertai/grammer)
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
5
|
+
|
6
|
+
Grammer
|
7
|
+
========
|
8
|
+
|
9
|
+
**Connect objects to Instagram account info.**
|
10
|
+
|
11
|
+
Key features:
|
12
|
+
|
13
|
+
* Can be included in objects.
|
14
|
+
* On one request:
|
15
|
+
* Gets the public info of a provided username (except for followers).
|
16
|
+
* Text, link and caption of latest 12 medias.
|
17
|
+
|
18
|
+
Compatibility:
|
19
|
+
|
20
|
+
* Work in progress
|
21
|
+
|
22
|
+
|
23
|
+
Incluing Grammer in Objects
|
24
|
+
-----------------
|
25
|
+
|
26
|
+
To include Grammer you model must implement a method that returns an Instagram username:
|
27
|
+
|
28
|
+
**1.** Your model must provide a method that returns an Instagram username.
|
29
|
+
|
30
|
+
**2.** In your model, tell grammer where to find the Instagram username and on which method to provide the data:
|
31
|
+
|
32
|
+
grammed_by :username, on: :ig
|
33
|
+
|
34
|
+
**3.** This allows you to call `#ig` on your object to retrieve its Instagram info.
|
35
|
+
|
36
|
+
TODO
|
37
|
+
------------
|
38
|
+
* Finish documentation.
|
39
|
+
* Command line interface
|
40
|
+
* Media objects
|
41
|
+
* RDOCs
|
42
|
+
|
43
|
+
Copyright (c) 2019 Caio Andrade, released under the MIT license.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Grammer
|
4
|
+
##
|
5
|
+
# Build procs for singleton method definitions
|
6
|
+
class MacroHandler
|
7
|
+
DEFINE = proc do |method_name, options|
|
8
|
+
define_method(options[:on]) do
|
9
|
+
instance_variable_name = "@#{options[:on]}"
|
10
|
+
if instance_variable_defined?(instance_variable_name)
|
11
|
+
instance_variable_get(instance_variable_name)
|
12
|
+
else
|
13
|
+
node = Node.new(send(method_name), service: options[:service])
|
14
|
+
instance_variable_set(instance_variable_name, node)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/grammer/macros.rb
CHANGED
@@ -15,23 +15,6 @@ module Grammer
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
##
|
19
|
-
# Defines methods on singleton modules in order to handle macros
|
20
|
-
def define_module_method(mod, method_name, opts)
|
21
|
-
mod.class_eval do
|
22
|
-
target_attribute = opts[:on]
|
23
|
-
define_method(target_attribute) do
|
24
|
-
instance_variable_name = "@#{target_attribute}"
|
25
|
-
if instance_variable_defined?(instance_variable_name)
|
26
|
-
instance_variable_get(instance_variable_name)
|
27
|
-
else
|
28
|
-
node = Node.new(send(method_name), service: opts[:service])
|
29
|
-
instance_variable_set(instance_variable_name, node)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
18
|
##
|
36
19
|
# Main initializing class macro for the module.
|
37
20
|
# Defines a Node instance on the given name.
|
@@ -40,5 +23,11 @@ module Grammer
|
|
40
23
|
define_module_method(mod, method_name, opts)
|
41
24
|
prepend mod
|
42
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def define_module_method(mod, method_name, opts)
|
30
|
+
mod.class_exec(method_name, opts, &Grammer::MacroHandler::DEFINE)
|
31
|
+
end
|
43
32
|
end
|
44
33
|
end
|
data/lib/grammer/node.rb
CHANGED
data/lib/grammer/version.rb
CHANGED
data/lib/grammer.rb
CHANGED
@@ -8,10 +8,17 @@ module Grammer
|
|
8
8
|
|
9
9
|
require 'grammer/ig_service'
|
10
10
|
require 'grammer/macros'
|
11
|
+
require 'grammer/macro_handler'
|
11
12
|
require 'grammer/node'
|
12
13
|
|
13
14
|
##
|
14
|
-
#
|
15
|
+
# Initializes a node with a given username
|
16
|
+
def self.node(username)
|
17
|
+
Node.new(username)
|
18
|
+
end
|
19
|
+
|
20
|
+
##
|
21
|
+
# Extends class macros to main module
|
15
22
|
def self.included(klass)
|
16
23
|
klass.extend(Macros)
|
17
24
|
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.2.
|
4
|
+
version: 0.2.3.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-
|
11
|
+
date: 2019-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -134,7 +134,8 @@ dependencies:
|
|
134
134
|
- - "~>"
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: 0.16.1
|
137
|
-
description: Provides a simple way to connect objects to the info on a Instagram
|
137
|
+
description: " Provides a simple way to connect objects to the info on a Instagram
|
138
|
+
account.'\n"
|
138
139
|
email: caioertai@gmail.com
|
139
140
|
executables: []
|
140
141
|
extensions: []
|
@@ -144,10 +145,11 @@ files:
|
|
144
145
|
- README.md
|
145
146
|
- lib/grammer.rb
|
146
147
|
- lib/grammer/ig_service.rb
|
148
|
+
- lib/grammer/macro_handler.rb
|
147
149
|
- lib/grammer/macros.rb
|
148
150
|
- lib/grammer/node.rb
|
149
151
|
- lib/grammer/version.rb
|
150
|
-
homepage:
|
152
|
+
homepage: https://github.com/caioertai/grammer
|
151
153
|
licenses:
|
152
154
|
- MIT
|
153
155
|
metadata: {}
|