pixela 0.1.1 → 0.2.0

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
  SHA256:
3
- metadata.gz: 1e324737e723e18a31a7f909771be43a3f12528375747c3d5c2eb40389f3243d
4
- data.tar.gz: e2b59967a4f5a79d4278f9982bfe23b7fd70b2af18acc29653d185052936cd7d
3
+ metadata.gz: 245d38a5c8da2a19b31e3d621bab11be044147077ddc1d8926ce8cae228152be
4
+ data.tar.gz: 378bf2f361bbf229c93142175f7365389273a9f0cafaa7dbaedf0eeeb14af943
5
5
  SHA512:
6
- metadata.gz: 4b7d41ba7582b77f39872a2fb91ff30beb3b8849c90b08172569db68c48290aecfe3fc3eadd1ff69fad590252760088eee3608c05127a02fe44f4c82645dd675
7
- data.tar.gz: 10cf6d6778b51c4890faaf8c1f1e2a8ef16679beef4030b389c86dad2d46a717c551edc8cd483a3810544c9c45280aad770428788d702c0d1d08a2e8bdb3c6f7
6
+ metadata.gz: 57847e630f6b0c341cd8ba1ca75df3d23fbe8948cb4d36c8e947299d9c55818f94fe1ff81ecfa7462f1fd645aa92e0869c51c33b07ac3de8a42ecd782de46443
7
+ data.tar.gz: 62f09e06bb0654249d494b216b467c2e27c821e227b670d1befb035047033c976fd1c41be4ae7712c54b2e9891bd1cc2cf1e2cb056c0a373155c7a5534c99958
@@ -0,0 +1 @@
1
+ repo_token: Q6A7yXGKoFD4xsC1GFAacIyLiIK9mV0JK
@@ -1,5 +1,11 @@
1
1
  ## Unreleased
2
- [full changelog](http://github.com/sue445/pixela/compare/v0.1.1...master)
2
+ [full changelog](http://github.com/sue445/pixela/compare/v0.2.0...master)
3
+
4
+ ## v0.2.0
5
+ [full changelog](http://github.com/sue445/pixela/compare/v0.1.1...v0.2.0)
6
+
7
+ * Impl resource methods
8
+ * https://github.com/sue445/pixela/pull/17
3
9
 
4
10
  ## v0.1.1
5
11
  [full changelog](http://github.com/sue445/pixela/compare/v0.1.0...v0.1.1)
data/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  [![Gem Version](https://badge.fury.io/rb/pixela.svg)](https://badge.fury.io/rb/pixela)
6
6
  [![Build Status](https://travis-ci.org/sue445/pixela.svg?branch=master)](https://travis-ci.org/sue445/pixela)
7
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/4c6316222717ee809b57/maintainability)](https://codeclimate.com/github/sue445/pixela/maintainability)
8
+ [![Coverage Status](https://coveralls.io/repos/github/sue445/pixela/badge.svg)](https://coveralls.io/github/sue445/pixela)
8
9
 
9
10
  ## Installation
10
11
 
@@ -7,6 +7,8 @@ require "date"
7
7
  module Pixela
8
8
  autoload :Client, "pixela/client"
9
9
  autoload :Configuration, "pixela/configuration"
10
+ autoload :Graph, "pixela/graph"
11
+ autoload :Pixel, "pixela/pixel"
10
12
 
11
13
  # @return [Pixela::Configuration]
12
14
  def self.config
@@ -27,6 +27,13 @@ module Pixela
27
27
  %Q(#<Pixela::Client:0x#{"%016X" % object_id} @username="#{username}">)
28
28
  end
29
29
 
30
+ # @param graph_id [String]
31
+ #
32
+ # @return [Pixela::Graph]
33
+ def graph(graph_id)
34
+ Graph.new(client: self, graph_id: graph_id)
35
+ end
36
+
30
37
  private
31
38
 
32
39
  # @!attribute [r] token
@@ -12,6 +12,9 @@ module Pixela::Client::GraphMethods
12
12
  # @raise [Pixela::PixelaError] API is failed
13
13
  #
14
14
  # @see https://pixe.la/#api-graph
15
+ #
16
+ # @example
17
+ # client.create_graph(graph_id: "test-graph", name: "graph-name", unit: "commit", type: "int", color: "shibafu")
15
18
  def create_graph(graph_id:, name:, unit:, type:, color:)
16
19
  params = {
17
20
  id: graph_id,
@@ -33,6 +36,9 @@ module Pixela::Client::GraphMethods
33
36
  # @raise [Pixela::PixelaError] API is failed
34
37
  #
35
38
  # @see https://pixe.la/#api-graph
39
+ #
40
+ # @example
41
+ # client.get_graphs
36
42
  def get_graphs
37
43
  with_error_handling do
38
44
  connection.get("users/#{username}/graphs", nil, user_token_headers).body.graphs
@@ -46,9 +52,11 @@ module Pixela::Client::GraphMethods
46
52
  #
47
53
  # @return [String]
48
54
  #
49
- # @raise [Pixela::PixelaError] API is failed
50
- #
51
55
  # @see https://pixe.la/#api-graph
56
+ #
57
+ # @example
58
+ # client.graph_url(graph_id: "test-graph")
59
+ # client.graph_url(graph_id: "test-graph", date: Date.new(2018, 3, 31))
52
60
  def graph_url(graph_id:, date: nil)
53
61
  url = "#{Pixela::Client::API_ENDPOINT}/users/#{username}/graphs/#{graph_id}"
54
62
 
@@ -69,6 +77,9 @@ module Pixela::Client::GraphMethods
69
77
  # @raise [Pixela::PixelaError] API is failed
70
78
  #
71
79
  # @see https://pixe.la/#api-graph
80
+ #
81
+ # @example
82
+ # client.update_graph(graph_id: "test-graph", name: "graph-name", unit: "commit", color: "shibafu")
72
83
  def update_graph(graph_id:, name:, unit:, color:)
73
84
  params = {
74
85
  name: name,
@@ -90,6 +101,9 @@ module Pixela::Client::GraphMethods
90
101
  # @raise [Pixela::PixelaError] API is failed
91
102
  #
92
103
  # @see https://pixe.la/#api-graph
104
+ #
105
+ # @example
106
+ # client.delete_graph("test-graph")
93
107
  def delete_graph(graph_id)
94
108
  with_error_handling do
95
109
  connection.delete("users/#{username}/graphs/#{graph_id}", nil, user_token_headers).body
@@ -10,6 +10,9 @@ module Pixela::Client::PixelMethods
10
10
  # @raise [Pixela::PixelaError] API is failed
11
11
  #
12
12
  # @see https://pixe.la/#api-pixel
13
+ #
14
+ # @example
15
+ # client.create_pixel(graph_id: "test-graph", date: Date.new(2018, 9, 15), quantity: 5)
13
16
  def create_pixel(graph_id:, date: Date.today, quantity:)
14
17
  params = {
15
18
  date: to_ymd(date),
@@ -31,6 +34,9 @@ module Pixela::Client::PixelMethods
31
34
  # @raise [Pixela::PixelaError] API is failed
32
35
  #
33
36
  # @see https://pixe.la/#api-pixel
37
+ #
38
+ # @example
39
+ # client.get_pixel(graph_id: "test-graph", date: Date.new(2018, 9, 15))
34
40
  def get_pixel(graph_id:, date: Date.today)
35
41
  with_error_handling do
36
42
  connection.get("users/#{username}/graphs/#{graph_id}/#{to_ymd(date)}", nil, user_token_headers).body
@@ -48,6 +54,9 @@ module Pixela::Client::PixelMethods
48
54
  # @raise [Pixela::PixelaError] API is failed
49
55
  #
50
56
  # @see https://pixe.la/#api-pixel
57
+ #
58
+ # @example
59
+ # client.update_pixel(graph_id: "test-graph", date: Date.new(2018, 9, 15), quantity: 7)
51
60
  def update_pixel(graph_id:, date: Date.today, quantity:)
52
61
  params = {
53
62
  quantity: quantity.to_s,
@@ -68,6 +77,9 @@ module Pixela::Client::PixelMethods
68
77
  # @raise [Pixela::PixelaError] API is failed
69
78
  #
70
79
  # @see https://pixe.la/#api-pixel
80
+ #
81
+ # @example
82
+ # client.delete_pixel(graph_id: "test-graph", date: Date.new(2018, 9, 15))
71
83
  def delete_pixel(graph_id:, date: Date.today)
72
84
  with_error_handling do
73
85
  connection.delete("users/#{username}/graphs/#{graph_id}/#{to_ymd(date)}", nil, user_token_headers).body
@@ -83,6 +95,9 @@ module Pixela::Client::PixelMethods
83
95
  # @raise [Pixela::PixelaError] API is failed
84
96
  #
85
97
  # @see https://pixe.la/#api-pixel
98
+ #
99
+ # @example
100
+ # client.increment_pixel(graph_id: "test-graph")
86
101
  def increment_pixel(graph_id:)
87
102
  with_error_handling do
88
103
  connection.put("users/#{username}/graphs/#{graph_id}/increment", nil, user_token_headers).body
@@ -98,6 +113,9 @@ module Pixela::Client::PixelMethods
98
113
  # @raise [Pixela::PixelaError] API is failed
99
114
  #
100
115
  # @see https://pixe.la/#api-pixel
116
+ #
117
+ # @example
118
+ # client.decrement_pixel(graph_id: "test-graph")
101
119
  def decrement_pixel(graph_id:)
102
120
  with_error_handling do
103
121
  connection.put("users/#{username}/graphs/#{graph_id}/decrement", nil, user_token_headers).body
@@ -9,6 +9,9 @@ module Pixela::Client::UserMethods
9
9
  # @raise [Pixela::PixelaError] API is failed
10
10
  #
11
11
  # @see https://pixe.la/#api-user
12
+ #
13
+ # @example
14
+ # client.create_user(agree_terms_of_service: true, not_minor: true)
12
15
  def create_user(agree_terms_of_service:, not_minor:)
13
16
  params = {
14
17
  token: token,
@@ -31,6 +34,9 @@ module Pixela::Client::UserMethods
31
34
  # @raise [Pixela::PixelaError] API is failed
32
35
  #
33
36
  # @see https://pixe.la/#api-user
37
+ #
38
+ # @example
39
+ # client.update_user(new_token: "thisissecret")
34
40
  def update_user(new_token:)
35
41
  params = {
36
42
  newToken: new_token,
@@ -53,6 +59,9 @@ module Pixela::Client::UserMethods
53
59
  # @raise [Pixela::PixelaError] API is failed
54
60
  #
55
61
  # @see https://pixe.la/#api-user
62
+ #
63
+ # @example
64
+ # client.delete_user
56
65
  def delete_user
57
66
  with_error_handling do
58
67
  connection.delete("users/#{username}", nil, user_token_headers).body
@@ -0,0 +1,105 @@
1
+ module Pixela
2
+ class Graph
3
+ # @!attribute [r] client
4
+ # @return [Pixela::Client]
5
+ attr_reader :client
6
+
7
+ # @!attribute [r] graph_id
8
+ # @return [String]
9
+ attr_reader :graph_id
10
+
11
+ # @param client [Pixela::Client]
12
+ # @param graph_id [String]
13
+ def initialize(client:, graph_id:)
14
+ @client = client
15
+ @graph_id = graph_id
16
+ end
17
+
18
+ # @param date [Date,Time]
19
+ #
20
+ # @return [Pixela::Pixel]
21
+ def pixel(date = Date.today)
22
+ Pixel.new(client: client, graph_id: graph_id, date: date)
23
+ end
24
+
25
+ # Create a new pixelation graph definition.
26
+ #
27
+ # @param name [String]
28
+ # @param unit [String]
29
+ # @param type [String]
30
+ # @param color [String]
31
+ #
32
+ # @return [Hashie::Mash]
33
+ #
34
+ # @raise [Pixela::PixelaError] API is failed
35
+ #
36
+ # @see https://pixe.la/#api-graph
37
+ #
38
+ # @example
39
+ # client.graph("test-graph").create(name: "graph-name", unit: "commit", type: "int", color: "shibafu")
40
+ def create(name:, unit:, type:, color:)
41
+ client.create_graph(graph_id: graph_id, name: name, unit: unit, type: type, color: color)
42
+ end
43
+
44
+ # Get graph url
45
+ #
46
+ # @param date [Date,Time]
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @see https://pixe.la/#api-graph
51
+ #
52
+ # @example
53
+ # client.graph("test-graph").url
54
+ # client.graph("test-graph").url(date: Date.new(2018, 3, 31))
55
+ def url(date: nil)
56
+ client.graph_url(graph_id: graph_id, date: date)
57
+ end
58
+
59
+ # Update predefined pixelation graph definitions.
60
+ #
61
+ # @param name [String]
62
+ # @param unit [String]
63
+ # @param color [String]
64
+ #
65
+ # @return [Hashie::Mash]
66
+ #
67
+ # @raise [Pixela::PixelaError] API is failed
68
+ #
69
+ # @see https://pixe.la/#api-graph
70
+ #
71
+ # @example
72
+ # client.graph("test-graph").update(name: "graph-name", unit: "commit", color: "shibafu")
73
+ def update(name:, unit:, color:)
74
+ client.update_graph(graph_id: graph_id, name: name, unit: unit, color: color)
75
+ end
76
+
77
+ # Increment quantity "Pixel" of the day (UTC).
78
+ #
79
+ # @return [Hashie::Mash]
80
+ #
81
+ # @raise [Pixela::PixelaError] API is failed
82
+ #
83
+ # @see https://pixe.la/#api-pixel
84
+ #
85
+ # @example
86
+ # client.graph("test-graph").increment
87
+ def increment
88
+ client.increment_pixel(graph_id: graph_id)
89
+ end
90
+
91
+ # Decrement quantity "Pixel" of the day (UTC).
92
+ #
93
+ # @return [Hashie::Mash]
94
+ #
95
+ # @raise [Pixela::PixelaError] API is failed
96
+ #
97
+ # @see https://pixe.la/#api-pixel
98
+ #
99
+ # @example
100
+ # client.graph("test-graph").decrement
101
+ def decrement
102
+ client.decrement_pixel(graph_id: graph_id)
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,84 @@
1
+ module Pixela
2
+ class Pixel
3
+ # @!attribute [r] client
4
+ # @return [Pixela::Client]
5
+ attr_reader :client
6
+
7
+ # @!attribute [r] graph_id
8
+ # @return [String]
9
+ attr_reader :graph_id
10
+
11
+ # @!attribute [r] date
12
+ # @return [Date]
13
+ attr_reader :date
14
+
15
+ # @param client [Pixela::Client]
16
+ # @param graph_id [String]
17
+ # @param date [Date,Time]
18
+ def initialize(client:, graph_id:, date:)
19
+ @client = client
20
+ @graph_id = graph_id
21
+ @date = date
22
+ end
23
+
24
+ # It records the quantity of the specified date as a "Pixel".
25
+ #
26
+ # @param quantity [Integer,Float]
27
+ #
28
+ # @return [Hashie::Mash]
29
+ #
30
+ # @raise [Pixela::PixelaError] API is failed
31
+ #
32
+ # @see https://pixe.la/#api-pixel
33
+ #
34
+ # @example
35
+ # client.graph("test-graph").pixel(Date.new(2018, 9, 15)).create(quantity: 5)
36
+ def create(quantity:)
37
+ client.create_pixel(graph_id: graph_id, date: date, quantity: quantity)
38
+ end
39
+
40
+ # Get registered quantity as "Pixel".
41
+ #
42
+ # @return [Hashie::Mash]
43
+ #
44
+ # @raise [Pixela::PixelaError] API is failed
45
+ #
46
+ # @see https://pixe.la/#api-pixel
47
+ #
48
+ # @example
49
+ # client.graph("test-graph").pixel(Date.new(2018, 9, 15)).get
50
+ def get
51
+ client.get_pixel(graph_id: graph_id, date: date)
52
+ end
53
+
54
+ # Update the quantity already registered as a "Pixel".
55
+ #
56
+ # @param quantity [Integer,Float]
57
+ #
58
+ # @return [Hashie::Mash]
59
+ #
60
+ # @raise [Pixela::PixelaError] API is failed
61
+ #
62
+ # @see https://pixe.la/#api-pixel
63
+ #
64
+ # @example
65
+ # client.graph("test-graph").pixel(Date.new(2018, 9, 15)).update(quantity: 7)
66
+ def update(quantity:)
67
+ client.update_pixel(graph_id: graph_id, date: date, quantity: quantity)
68
+ end
69
+
70
+ # Delete the registered "Pixel".
71
+ #
72
+ # @return [Hashie::Mash]
73
+ #
74
+ # @raise [Pixela::PixelaError] API is failed
75
+ #
76
+ # @see https://pixe.la/#api-pixel
77
+ #
78
+ # @example
79
+ # client.graph("test-graph").pixel(Date.new(2018, 9, 15)).delete
80
+ def delete
81
+ client.delete_pixel(graph_id: graph_id, date: date)
82
+ end
83
+ end
84
+ end
@@ -1,3 +1,3 @@
1
1
  module Pixela
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixela
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-15 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -227,6 +227,7 @@ executables: []
227
227
  extensions: []
228
228
  extra_rdoc_files: []
229
229
  files:
230
+ - ".coveralls.yml"
230
231
  - ".env.example"
231
232
  - ".gitignore"
232
233
  - ".rspec"
@@ -245,6 +246,8 @@ files:
245
246
  - lib/pixela/client/pixel_methods.rb
246
247
  - lib/pixela/client/user_methods.rb
247
248
  - lib/pixela/configuration.rb
249
+ - lib/pixela/graph.rb
250
+ - lib/pixela/pixel.rb
248
251
  - lib/pixela/version.rb
249
252
  - pixela.gemspec
250
253
  homepage: https://github.com/sue445/pixela