looks 0.1.1 → 0.2.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 +15 -0
- data/README.md +1 -1
- data/lib/looks/cli.rb +8 -4
- data/lib/looks/command.rb +3 -1
- data/lib/looks/command/base.rb +2 -2
- data/lib/looks/command/pull.rb +29 -0
- data/lib/looks/command/{add.rb → push.rb} +2 -2
- data/lib/looks/command/rm.rb +1 -1
- data/lib/looks/command/set.rb +1 -1
- data/lib/looks/command/unset.rb +29 -0
- data/lib/looks/error.rb +0 -2
- data/lib/looks/gravatar.rb +12 -2
- data/lib/looks/gravatar/account.rb +12 -3
- data/lib/looks/version.rb +1 -1
- metadata +11 -25
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmM3OWZlZjA5YTg2NTRkY2I5ZmExMTJhZjI4YTM0MDlhYzg4MDFkOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTE3MDRmYjBkNDlkYWRiNDAwODVkNmY5Mzc3YTQ1Yzk5MTcwY2ZmYw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NTg5NWI2N2MzYmJlN2RiYjZiNmJkM2YzYWFlNGRiNGU3ZDZmMDEwZGFmZjdk
|
10
|
+
NDcwNGU0Mzk2MDQzMmNkZDg2ZDM0NzEyNjJjMDY1M2JjZDc5MzMzZGU2MzJl
|
11
|
+
NjRmMDQ3MDMzMWE4YjQwYzljZWFhMGUyNTZjZmIwMmFlNDIyZmQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTAzNmM1MDAwOTAyM2E0NDE2YTY4NzM0OGZjZmI4YzY1ZTZiMmVlOTY4ZDNk
|
14
|
+
YTg5MmRlZjcxY2MzZTg3NmNmNTA0ODE4YWM1NDZhMTc2Y2U4NDQ1NWNhOWY5
|
15
|
+
MWU3ZjU1OGIxNTQ1YWM4YWE2NDkyOTIzZWMxZDgxOGIyOGFiNWU=
|
data/README.md
CHANGED
data/lib/looks/cli.rb
CHANGED
@@ -2,29 +2,33 @@ require 'looks/command'
|
|
2
2
|
require 'looks/config'
|
3
3
|
require 'looks/error'
|
4
4
|
|
5
|
-
module Looks
|
5
|
+
module Looks
|
6
6
|
module CLI
|
7
7
|
|
8
8
|
USAGE = <<-EOF
|
9
9
|
Usage: looks <command> [arguments]
|
10
10
|
|
11
11
|
Commands:
|
12
|
-
add Upload an image
|
13
12
|
addresses List email addresses
|
14
13
|
config Configure the default account
|
15
14
|
images List uploaded images
|
15
|
+
pull Download an image
|
16
|
+
push Upload an image
|
16
17
|
rm Remove an uploaded image
|
17
18
|
set Set the image for an email address
|
19
|
+
unset Unset the image for an email address
|
18
20
|
|
19
21
|
EOF
|
20
22
|
|
21
23
|
COMMANDS = {
|
22
|
-
'add' => Command::Add,
|
23
24
|
'addresses' => Command::Addresses,
|
24
25
|
'config' => Command::Config,
|
25
26
|
'images' => Command::Images,
|
27
|
+
'pull' => Command::Pull,
|
28
|
+
'push' => Command::Push,
|
26
29
|
'rm' => Command::Rm,
|
27
|
-
'set' => Command::Set
|
30
|
+
'set' => Command::Set,
|
31
|
+
'unset' => Command::Unset
|
28
32
|
}
|
29
33
|
|
30
34
|
def self.start(args)
|
data/lib/looks/command.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'looks/command/account_management'
|
2
|
-
require 'looks/command/add'
|
3
2
|
require 'looks/command/addresses'
|
4
3
|
require 'looks/command/base'
|
5
4
|
require 'looks/command/config'
|
6
5
|
require 'looks/command/images'
|
6
|
+
require 'looks/command/pull'
|
7
|
+
require 'looks/command/push'
|
7
8
|
require 'looks/command/rm'
|
8
9
|
require 'looks/command/set'
|
10
|
+
require 'looks/command/unset'
|
data/lib/looks/command/base.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'looks/
|
1
|
+
require 'looks/error'
|
2
2
|
require 'looks/version'
|
3
3
|
|
4
4
|
require 'optparse'
|
@@ -22,7 +22,7 @@ module Looks
|
|
22
22
|
begin
|
23
23
|
@opts.parse! args
|
24
24
|
rescue OptionParser::ParseError => e
|
25
|
-
|
25
|
+
raise Error, e
|
26
26
|
end
|
27
27
|
|
28
28
|
usage unless args.length == arguments.length
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'looks/command/base'
|
2
|
+
require 'looks/error'
|
3
|
+
require 'looks/gravatar'
|
4
|
+
|
5
|
+
module Looks
|
6
|
+
module Command
|
7
|
+
class Pull < Base
|
8
|
+
|
9
|
+
def arguments
|
10
|
+
[ '<address>', '<filename>' ]
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute(args)
|
14
|
+
super
|
15
|
+
|
16
|
+
address, filename = args
|
17
|
+
|
18
|
+
begin
|
19
|
+
File.open(filename, 'wb') do |file|
|
20
|
+
file.write(Gravatar.get(address))
|
21
|
+
end
|
22
|
+
rescue IOError, SystemCallError
|
23
|
+
raise Error, "#{filename}: Cannot write file"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -4,7 +4,7 @@ require 'looks/gravatar'
|
|
4
4
|
|
5
5
|
module Looks
|
6
6
|
module Command
|
7
|
-
class
|
7
|
+
class Push < AccountManagement
|
8
8
|
|
9
9
|
def arguments
|
10
10
|
[ '<filename>' ]
|
@@ -19,7 +19,7 @@ module Looks
|
|
19
19
|
|
20
20
|
begin
|
21
21
|
File.open(filename) do |file|
|
22
|
-
puts Gravatar::Account.new(config).
|
22
|
+
puts Gravatar::Account.new(config).save_data(file.read)
|
23
23
|
end
|
24
24
|
rescue IOError, SystemCallError
|
25
25
|
raise Error, "#{filename}: Cannot read file"
|
data/lib/looks/command/rm.rb
CHANGED
data/lib/looks/command/set.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'looks/command/account_management'
|
2
|
+
require 'looks/error'
|
3
|
+
require 'looks/gravatar'
|
4
|
+
|
5
|
+
module Looks
|
6
|
+
module Command
|
7
|
+
class Unset < AccountManagement
|
8
|
+
|
9
|
+
def arguments
|
10
|
+
[ '<address>' ]
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute(args)
|
14
|
+
super
|
15
|
+
|
16
|
+
address = args.first
|
17
|
+
|
18
|
+
account = Gravatar::Account.new(config)
|
19
|
+
|
20
|
+
begin
|
21
|
+
account.remove_image(address)
|
22
|
+
rescue Gravatar::IncorrectMethodParameterError
|
23
|
+
raise Error, "#{address}: Unknown email address"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/looks/error.rb
CHANGED
data/lib/looks/gravatar.rb
CHANGED
@@ -4,18 +4,28 @@ require 'looks/gravatar/errors'
|
|
4
4
|
require 'looks/gravatar/image'
|
5
5
|
|
6
6
|
require 'digest/md5'
|
7
|
+
require 'net/http'
|
8
|
+
require 'uri'
|
7
9
|
|
8
10
|
module Looks
|
9
11
|
module Gravatar
|
10
12
|
|
11
|
-
|
13
|
+
DEFAULT_API_URL = 'https://secure.gravatar.com/xmlrpc'
|
14
|
+
DEFAULT_DOWNLOAD_URL = 'http://gravatar.com/avatar'
|
15
|
+
|
16
|
+
API_URL = ENV['LOOKS_GRAVATAR_API_URL'] || DEFAULT_API_URL
|
17
|
+
DOWNLOAD_URL = ENV['LOOKS_GRAVATAR_DOWNLOAD_URL'] || DEFAULT_DOWNLOAD_URL
|
18
|
+
|
19
|
+
def self.get(email)
|
20
|
+
Net::HTTP.get(URI("#{DOWNLOAD_URL}/#{hash(email)}.jpg"))
|
21
|
+
end
|
12
22
|
|
13
23
|
def self.hash(email)
|
14
24
|
Digest::MD5.hexdigest(email.strip.downcase)
|
15
25
|
end
|
16
26
|
|
17
27
|
def self.url(email)
|
18
|
-
"#{
|
28
|
+
"#{API_URL}?user=#{hash(email)}"
|
19
29
|
end
|
20
30
|
|
21
31
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'looks/error'
|
1
2
|
require 'looks/gravatar/address'
|
2
3
|
require 'looks/gravatar/errors'
|
3
4
|
require 'looks/gravatar/image'
|
@@ -34,23 +35,29 @@ module Looks
|
|
34
35
|
images.sort
|
35
36
|
end
|
36
37
|
|
37
|
-
def
|
38
|
+
def save_data(image)
|
38
39
|
data = Base64.encode64(image)
|
39
40
|
|
40
41
|
call('grav.saveData', { 'data' => data, 'rating' => 0 })
|
41
42
|
end
|
42
43
|
|
43
|
-
def
|
44
|
+
def delete_image(image)
|
44
45
|
call('grav.deleteUserimage', { 'userimage' => image })
|
45
46
|
end
|
46
47
|
|
47
|
-
def
|
48
|
+
def use_image(address, id)
|
48
49
|
call('grav.useUserimage', {
|
49
50
|
'userimage' => id,
|
50
51
|
'addresses' => [ address ]
|
51
52
|
})
|
52
53
|
end
|
53
54
|
|
55
|
+
def remove_image(address)
|
56
|
+
call('grav.removeImage', {
|
57
|
+
'addresses' => [ address ]
|
58
|
+
})
|
59
|
+
end
|
60
|
+
|
54
61
|
private
|
55
62
|
|
56
63
|
def call(method, args = {})
|
@@ -58,6 +65,8 @@ module Looks
|
|
58
65
|
|
59
66
|
begin
|
60
67
|
@server.call(method, args)
|
68
|
+
rescue SocketError, SystemCallError
|
69
|
+
raise Error, "Unable to connect to Gravatar server"
|
61
70
|
rescue XMLRPC::FaultException => fault
|
62
71
|
handle fault
|
63
72
|
end
|
data/lib/looks/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: looks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jussi Virtanen
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: highline
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: inifile
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: aruba
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: cucumber
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,23 +69,20 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: dimensions
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
75
|
+
version: 1.2.0
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
82
|
+
version: 1.2.0
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rake
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rspec-expectations
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -135,13 +120,15 @@ files:
|
|
135
120
|
- bin/looks
|
136
121
|
- lib/looks/cli.rb
|
137
122
|
- lib/looks/command/account_management.rb
|
138
|
-
- lib/looks/command/add.rb
|
139
123
|
- lib/looks/command/addresses.rb
|
140
124
|
- lib/looks/command/base.rb
|
141
125
|
- lib/looks/command/config.rb
|
142
126
|
- lib/looks/command/images.rb
|
127
|
+
- lib/looks/command/pull.rb
|
128
|
+
- lib/looks/command/push.rb
|
143
129
|
- lib/looks/command/rm.rb
|
144
130
|
- lib/looks/command/set.rb
|
131
|
+
- lib/looks/command/unset.rb
|
145
132
|
- lib/looks/command.rb
|
146
133
|
- lib/looks/config.rb
|
147
134
|
- lib/looks/error.rb
|
@@ -155,26 +142,25 @@ files:
|
|
155
142
|
homepage: http://github.com/jvirtanen/looks
|
156
143
|
licenses:
|
157
144
|
- MIT
|
145
|
+
metadata: {}
|
158
146
|
post_install_message:
|
159
147
|
rdoc_options: []
|
160
148
|
require_paths:
|
161
149
|
- lib
|
162
150
|
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
151
|
requirements:
|
165
152
|
- - ! '>='
|
166
153
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
154
|
+
version: 1.9.3
|
168
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
156
|
requirements:
|
171
157
|
- - ! '>='
|
172
158
|
- !ruby/object:Gem::Version
|
173
159
|
version: '0'
|
174
160
|
requirements: []
|
175
161
|
rubyforge_project:
|
176
|
-
rubygems_version:
|
162
|
+
rubygems_version: 2.0.7
|
177
163
|
signing_key:
|
178
|
-
specification_version:
|
164
|
+
specification_version: 4
|
179
165
|
summary: Command line interface to Gravatar
|
180
166
|
test_files: []
|