tinylinks 0.2.0 → 0.3.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 +4 -4
- data/lib/tinylinks/cli.rb +6 -0
- data/lib/tinylinks/formatter.rb +24 -1
- data/lib/tinylinks.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bd4a470b6c9c25a8e96eb05ae5daaca8f40b3568110c0b70dd3f4e015e70aef3
|
|
4
|
+
data.tar.gz: b67838e3360ac7487dd844b17d67e3c92a1b04b5fff5bb1781a060f74104d91b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 32d3af576e893be5c0c865d1ac14aa715451c65114611bf0a0ebf2f3df63c4505613920a8ddc25bfca70f0da83a6bc84ce91dfe8ffdb4060fb262cb353de89e5
|
|
7
|
+
data.tar.gz: 9f391f8ddf3d190b196c9831daefe014f7fed0f5954fcb327ee3471e7d185492d3b0f5975ed0c55814ee2c79f13c2c104a0c4ed3aafb737bcadcbc9c4acb5f16
|
data/lib/tinylinks/cli.rb
CHANGED
|
@@ -58,10 +58,16 @@ module Tinylinks
|
|
|
58
58
|
|
|
59
59
|
desc "list", "List links"
|
|
60
60
|
method_option :tags, type: :string, desc: "Filter by tags (comma-separated)"
|
|
61
|
+
method_option :filter, type: :string, enum: %w[visited unvisited],
|
|
62
|
+
desc: "Filter by visit status: visited or unvisited"
|
|
63
|
+
method_option :sort, type: :string, enum: %w[newest oldest most_visited least_visited],
|
|
64
|
+
desc: "Sort order: newest (default), oldest, most_visited, least_visited"
|
|
61
65
|
method_option :page, type: :numeric, desc: "Page number"
|
|
62
66
|
def list
|
|
63
67
|
params = {}
|
|
64
68
|
params[:tags] = options[:tags] if options[:tags]
|
|
69
|
+
params[:filter] = options[:filter] if options[:filter]
|
|
70
|
+
params[:sort] = options[:sort] if options[:sort]
|
|
65
71
|
params[:page] = options[:page] if options[:page]
|
|
66
72
|
data = client.get("/links", params)
|
|
67
73
|
say formatter.link_list(data)
|
data/lib/tinylinks/formatter.rb
CHANGED
|
@@ -11,17 +11,22 @@ module Tinylinks
|
|
|
11
11
|
lines << @c.bold("#{data["title"] || "(untitled)"} [##{data["id"]}]")
|
|
12
12
|
lines << " #{@c.cyan(data["url"])}"
|
|
13
13
|
lines << " #{@c.dim(data["description"])}" if data["description"] && !data["description"].empty?
|
|
14
|
-
|
|
14
|
+
meta = meta_line(data)
|
|
15
|
+
lines << " #{meta}" if meta
|
|
15
16
|
lines.join("\n")
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
def link_list(data)
|
|
20
|
+
return @c.dim("No results found") if data["links"].empty?
|
|
21
|
+
|
|
19
22
|
lines = data["links"].map { |l| link(l) }
|
|
20
23
|
lines << @c.dim(pagination(data["meta"])) if data["meta"]
|
|
21
24
|
lines.join("\n\n")
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
def tags(data)
|
|
28
|
+
return @c.dim("No results found") if data["tags"].empty?
|
|
29
|
+
|
|
25
30
|
data["tags"].map { |t| "#{@c.green(t["name"])} #{@c.dim("(#{t["count"]})")}" }.join("\n")
|
|
26
31
|
end
|
|
27
32
|
|
|
@@ -33,6 +38,24 @@ module Tinylinks
|
|
|
33
38
|
|
|
34
39
|
private
|
|
35
40
|
|
|
41
|
+
def meta_line(data)
|
|
42
|
+
parts = []
|
|
43
|
+
parts << "tags: #{@c.green(data["tags"].join(", "))}" if data["tags"] && !data["tags"].empty?
|
|
44
|
+
if data.key?("visit_count") && !data["visit_count"].nil?
|
|
45
|
+
parts << @c.dim(visits_label(data["visit_count"]))
|
|
46
|
+
end
|
|
47
|
+
return if parts.empty?
|
|
48
|
+
parts.join(@c.dim(" · "))
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def visits_label(count)
|
|
52
|
+
case count
|
|
53
|
+
when 0 then "never visited"
|
|
54
|
+
when 1 then "1 visit"
|
|
55
|
+
else "#{count} visits"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
36
59
|
def pagination(meta)
|
|
37
60
|
"Page #{meta["page"]} of #{meta["total_pages"]} (#{meta["total_items"]} total)"
|
|
38
61
|
end
|
data/lib/tinylinks.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tinylinks
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jaime Rodas
|
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '0'
|
|
56
56
|
requirements: []
|
|
57
|
-
rubygems_version: 4.0.
|
|
57
|
+
rubygems_version: 4.0.10
|
|
58
58
|
specification_version: 4
|
|
59
59
|
summary: CLI for TinyLinks
|
|
60
60
|
test_files: []
|