git-sleep 0.2.1 → 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/.gitignore +3 -1
- data/README.md +9 -2
- data/bin/git-sleep +1 -69
- data/git-sleep.gemspec +1 -0
- data/hooks/post-commit +6 -21
- data/hooks/pre-commit +11 -25
- data/lib/git-sleep.rb +3 -0
- data/lib/git-sleep/cli.rb +69 -0
- data/lib/git-sleep/communicator.rb +73 -0
- data/lib/git-sleep/exceptions.rb +1 -0
- data/lib/git-sleep/hook_installer.rb +60 -0
- data/lib/git-sleep/metadata.rb +2 -2
- metadata +44 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03761eab75a16919876defde696872ddbb25abed
|
4
|
+
data.tar.gz: 96806446a53e17a10e9623b9769131319c292072
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51f064e90fc2b9d7df55e9d7d771e43260f40414dd725669670a2002026d9bb09677ea0336db83d5f27d53b0ca7787aabfb3110f44b9017153d947c95d97301c
|
7
|
+
data.tar.gz: 55e8a184cd8cacf9a6fc933bd207bf9214e8e341ad0056632a5cf069948443e0c661eca5dcfb2be6b36ab14d9d1a144b69be54967b39c3070e7d3a863f225edb
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,14 @@
|
|
1
1
|
# git sleep
|
2
2
|
|
3
|
-
[](https://travis-ci.org/maxjacobson/git-sleep-gem)
|
4
|
+
[](http://badge.fury.io/rb/git-sleep)
|
5
|
+
[](https://codeclimate.com/github/maxjacobson/git-sleep-gem)
|
6
|
+
[](https://codeclimate.com/github/maxjacobson/git-sleep-gem)
|
7
|
+
|
8
|
+
(code climate score is higher than it should be, I think, because it's ignoring
|
9
|
+
the non `*.rb` files)
|
10
|
+
|
11
|
+
## installation:
|
5
12
|
|
6
13
|
`gem install git-sleep`
|
7
14
|
|
data/bin/git-sleep
CHANGED
@@ -2,73 +2,5 @@
|
|
2
2
|
|
3
3
|
require File.expand_path('../../lib/git-sleep', __FILE__)
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
help_text = "Available commands:
|
8
|
-
git sleep authorize
|
9
|
-
git sleep init"
|
10
|
-
|
11
|
-
CURRENT_PATH = File.expand_path('.')
|
12
|
-
PATH_TO_THIS_REPOS_HOOKS = "#{CURRENT_PATH}/.git/hooks"
|
13
|
-
|
14
|
-
def install_hook(event)
|
15
|
-
hook_code = File.read(File.expand_path("../../hooks/#{event}", __FILE__))
|
16
|
-
path_to_new_hook = File.expand_path("#{PATH_TO_THIS_REPOS_HOOKS}/#{event}")
|
17
|
-
if File.exist?(path_to_new_hook)
|
18
|
-
puts "You already have a #{event} hook and we don't want to overwrite it..."
|
19
|
-
print 'Is it okay? [y/n] '
|
20
|
-
ok = $stdin.gets.chomp
|
21
|
-
return unless ok == 'y'
|
22
|
-
end
|
23
|
-
File.open(path_to_new_hook, 'w') do |f|
|
24
|
-
f.write hook_code
|
25
|
-
end
|
26
|
-
`chmod a+x #{path_to_new_hook}`
|
27
|
-
puts 'Hook installed and made executable'
|
28
|
-
end
|
29
|
-
|
30
|
-
case ARGV.length
|
31
|
-
when 0
|
32
|
-
puts help_text
|
33
|
-
when 1
|
34
|
-
case ARGV.first.downcase.to_sym
|
35
|
-
when :init
|
36
|
-
|
37
|
-
unless Dir.entries(CURRENT_PATH).include?('.git')
|
38
|
-
puts 'This is not a git repo. Would you like to initialize one?'
|
39
|
-
print '[y/n] '
|
40
|
-
ok = $stdin.gets.chomp
|
41
|
-
if ok == 'y'
|
42
|
-
`git init`
|
43
|
-
else
|
44
|
-
exit 0
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
puts 'Install the pre-commit hook that prevents ' \
|
49
|
-
"commits when you haven't sleep enough?"
|
50
|
-
print 'Is it okay? [y/n] '
|
51
|
-
ok = $stdin.gets.chomp
|
52
|
-
install_hook('pre-commit') if ok == 'y'
|
53
|
-
|
54
|
-
puts 'Install the post-commit hook that adds ' \
|
55
|
-
'git notes about your sleep data?'
|
56
|
-
print 'Is it okay? [y/n] '
|
57
|
-
ok = $stdin.gets.chomp
|
58
|
-
install_hook('post-commit') if ok == 'y'
|
59
|
-
|
60
|
-
when :authorize
|
61
|
-
puts "Visit #{GitSleep::OUR_SITE} to get the necessary information"
|
62
|
-
puts 'what is your xid?'
|
63
|
-
print '> '
|
64
|
-
xid = $stdin.gets.chomp
|
65
|
-
auth.xid = xid
|
66
|
-
when :'-v'
|
67
|
-
puts "Git Sleep v#{GitSleep::VERSION}"
|
68
|
-
else # unrecognized command
|
69
|
-
puts help_text
|
70
|
-
end
|
71
|
-
else # other amounts of arguments
|
72
|
-
puts help_text
|
73
|
-
end
|
5
|
+
GitSleep::Cli.start
|
74
6
|
|
data/git-sleep.gemspec
CHANGED
@@ -33,5 +33,6 @@ Gem::Specification.new do |git_sleep|
|
|
33
33
|
git_sleep.add_development_dependency 'rubocop', '~> 0.27'
|
34
34
|
git_sleep.add_development_dependency 'rspec', '~> 3.1'
|
35
35
|
git_sleep.add_development_dependency 'pry', '~> 0.10'
|
36
|
+
git_sleep.add_development_dependency 'codeclimate-test-reporter', '~> 0.4'
|
36
37
|
end
|
37
38
|
|
data/hooks/post-commit
CHANGED
@@ -1,36 +1,21 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'git-sleep'
|
4
|
-
require 'httparty'
|
5
4
|
|
6
|
-
|
5
|
+
comm = GitSleep::Communicator.instance
|
7
6
|
|
8
|
-
|
9
|
-
response = HTTParty.get(
|
10
|
-
'http://www.gitsleep.com/api/need_sleep',
|
11
|
-
body: {
|
12
|
-
xid: auth.xid
|
13
|
-
}
|
14
|
-
)
|
15
|
-
rescue StandardError => _
|
7
|
+
unless comm.can_connect?
|
16
8
|
puts "Can't connect to gitsleep.com"
|
17
9
|
exit 0
|
18
10
|
end
|
19
11
|
|
20
|
-
if
|
21
|
-
|
22
|
-
|
23
|
-
`git notes --ref=gitsleep add -m "On #{data['sleep24']} hours sleep"`
|
12
|
+
if comm.happy_response?
|
13
|
+
`git notes --ref=gitsleep add -m "On #{comm.hours_of_sleep} hours sleep"`
|
24
14
|
remotes = `git remote`.split("\n")
|
25
15
|
remotes.each do |remote|
|
26
16
|
`git push #{remote} refs/notes/* 2> /dev/null`
|
27
17
|
end
|
28
|
-
|
29
|
-
|
30
|
-
puts "Must first authorize at #{GitSleep::OUR_SITE}"
|
31
|
-
puts 'Then run `git sleep authorize`'
|
32
|
-
else
|
33
|
-
# could not communicate with our server
|
34
|
-
# uh oh!
|
18
|
+
elsif comm.not_signed_up_response?
|
19
|
+
puts comm.not_signed_up_message
|
35
20
|
end
|
36
21
|
|
data/hooks/pre-commit
CHANGED
@@ -1,40 +1,26 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'git-sleep'
|
4
|
-
require 'httparty'
|
5
4
|
|
6
|
-
|
5
|
+
comm = GitSleep::Communicator.instance
|
7
6
|
|
8
|
-
|
9
|
-
response = HTTParty.get(
|
10
|
-
'http://www.gitsleep.com/api/need_sleep',
|
11
|
-
body: {
|
12
|
-
xid: auth.xid
|
13
|
-
}
|
14
|
-
)
|
15
|
-
rescue StandardError => _
|
7
|
+
unless comm.can_connect?
|
16
8
|
puts "Can't connect to gitsleep.com"
|
17
9
|
exit 0
|
18
10
|
end
|
19
11
|
|
20
|
-
if
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
"You slept #{data['sleep24']} hours in the last 24 hours"
|
12
|
+
if comm.happy_response?
|
13
|
+
if comm.can_commit?
|
14
|
+
puts "Great job #{comm.username}! " \
|
15
|
+
"You slept #{comm.hours_of_sleep} hours in the last 24 hours"
|
25
16
|
else
|
26
|
-
puts "You have only slept #{
|
27
|
-
|
28
|
-
|
29
|
-
puts "(if you're sure you want to commit right now, " \
|
17
|
+
puts "You have only slept #{comm.hours_of_sleep} hours in the " \
|
18
|
+
"last 24 hours!!\nYou'll have to git some sleep #{ENV['USER']} before" \
|
19
|
+
"you can commit again\n(if you're sure you want to commit right now, " \
|
30
20
|
'run: git commit --no-verify)'
|
31
21
|
exit(1)
|
32
22
|
end
|
33
|
-
elsif
|
34
|
-
puts
|
35
|
-
puts 'Then run `git sleep authorize`'
|
36
|
-
else
|
37
|
-
# could not communicate with our server
|
38
|
-
# uh oh!
|
23
|
+
elsif comm.not_signed_up_response?
|
24
|
+
puts comm.not_signed_up_message
|
39
25
|
end
|
40
26
|
|
data/lib/git-sleep.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require_relative './hook_installer'
|
2
|
+
|
3
|
+
module GitSleep
|
4
|
+
class Cli
|
5
|
+
def self.start
|
6
|
+
if command = ARGV.first
|
7
|
+
command = command.to_sym
|
8
|
+
end
|
9
|
+
new.start(command)
|
10
|
+
end
|
11
|
+
|
12
|
+
def start(command)
|
13
|
+
case command
|
14
|
+
when :init then init!
|
15
|
+
when :authorize then authorize!
|
16
|
+
when :'-v' then version!
|
17
|
+
else
|
18
|
+
send_help!
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def version!
|
25
|
+
puts "Git Sleep v#{GitSleep::VERSION}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def authorize!
|
29
|
+
puts "Visit #{GitSleep::OUR_SITE} to get the necessary information"
|
30
|
+
puts 'what is your xid?'
|
31
|
+
print '> '
|
32
|
+
auth.xid = $stdin.gets.chomp
|
33
|
+
end
|
34
|
+
|
35
|
+
def init!
|
36
|
+
raise NotGitRepoError unless Dir.entries(current_path).include?('.git')
|
37
|
+
|
38
|
+
puts 'Install the pre-commit hook that prevents commits when you' \
|
39
|
+
" haven't slept enough?"
|
40
|
+
HookInstaller.install('pre-commit') if user_consents?
|
41
|
+
|
42
|
+
puts 'Install the post-commit hook that adds git notes about your sleep' \
|
43
|
+
' data?'
|
44
|
+
HookInstaller.install('post-commit') if user_consents?
|
45
|
+
end
|
46
|
+
|
47
|
+
def send_help!
|
48
|
+
puts help_text
|
49
|
+
end
|
50
|
+
|
51
|
+
def auth
|
52
|
+
GitSleep::Authorizer.instance
|
53
|
+
end
|
54
|
+
|
55
|
+
def help_text
|
56
|
+
"Available commands:\n git sleep authorize\n git sleep init"
|
57
|
+
end
|
58
|
+
|
59
|
+
def current_path
|
60
|
+
File.expand_path('.')
|
61
|
+
end
|
62
|
+
|
63
|
+
def user_consents?
|
64
|
+
print 'Is it okay? [y/n] '
|
65
|
+
$stdin.gets.chomp == 'y'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
require 'httparty'
|
3
|
+
|
4
|
+
module GitSleep
|
5
|
+
class Communicator
|
6
|
+
include Singleton
|
7
|
+
|
8
|
+
def can_connect?
|
9
|
+
reset_data!
|
10
|
+
true
|
11
|
+
# TODO: be more specific
|
12
|
+
# only rescue httparty error related to inability to connect
|
13
|
+
rescue StandardError
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
def happy_response?
|
18
|
+
response.code == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
def not_signed_up_response?
|
22
|
+
response.code == 401
|
23
|
+
end
|
24
|
+
|
25
|
+
def not_signed_up_message
|
26
|
+
"Must first authorize at #{GitSleep::OUR_SITE}\n" \
|
27
|
+
'Then run `git sleep authorize`'
|
28
|
+
end
|
29
|
+
|
30
|
+
def can_commit?
|
31
|
+
data['can_commit']
|
32
|
+
end
|
33
|
+
|
34
|
+
def hours_of_sleep
|
35
|
+
data['sleep24']
|
36
|
+
end
|
37
|
+
|
38
|
+
def username
|
39
|
+
ENV['USER']
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def data
|
45
|
+
@data ||= response.parsed_response
|
46
|
+
end
|
47
|
+
|
48
|
+
def response
|
49
|
+
@response ||= HTTParty.get(
|
50
|
+
need_sleep_url,
|
51
|
+
timeout: 2,
|
52
|
+
body: {
|
53
|
+
xid: auth.xid
|
54
|
+
}
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
def reset_data!
|
59
|
+
@response = nil
|
60
|
+
@data = nil
|
61
|
+
data
|
62
|
+
end
|
63
|
+
|
64
|
+
def need_sleep_url
|
65
|
+
'http://www.gitsleep.com/api/need_sleep'
|
66
|
+
end
|
67
|
+
|
68
|
+
def auth
|
69
|
+
Authorizer.instance
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
data/lib/git-sleep/exceptions.rb
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
module GitSleep
|
2
|
+
class HookInstaller
|
3
|
+
def self.install(event)
|
4
|
+
new(event).install
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_reader :event
|
8
|
+
|
9
|
+
def initialize(event)
|
10
|
+
@event = event
|
11
|
+
end
|
12
|
+
|
13
|
+
def install
|
14
|
+
(return unless ok_to_overwrite?) if File.exist?(new_hook_path)
|
15
|
+
move_hook_code_into_place
|
16
|
+
make_hook_executable
|
17
|
+
puts 'Hook installed and made executable'
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def ok_to_overwrite?
|
23
|
+
puts already_exists_warning_text
|
24
|
+
print 'Is it okay? [y/n] '
|
25
|
+
$stdin.gets.chomp == 'y'
|
26
|
+
end
|
27
|
+
|
28
|
+
def move_hook_code_into_place
|
29
|
+
File.open(new_hook_path, 'w') do |f|
|
30
|
+
f.write hook_code
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def make_hook_executable
|
35
|
+
`chmod a+x #{new_hook_path}`
|
36
|
+
end
|
37
|
+
|
38
|
+
def hook_code
|
39
|
+
File.read(hook_code_path)
|
40
|
+
end
|
41
|
+
|
42
|
+
def hook_code_path
|
43
|
+
File.expand_path("../../../hooks/#{event}", __FILE__)
|
44
|
+
end
|
45
|
+
|
46
|
+
def new_hook_path
|
47
|
+
current_path + '/.git/hooks/' + event
|
48
|
+
end
|
49
|
+
|
50
|
+
# TODO: make sure this will be the path the user is currently in
|
51
|
+
def current_path
|
52
|
+
File.expand_path('.')
|
53
|
+
end
|
54
|
+
|
55
|
+
def already_exists_warning_text
|
56
|
+
"you already have a #{event} hook and we don't want to overwrite it..."
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
data/lib/git-sleep/metadata.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-sleep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Jacobson
|
@@ -10,78 +10,92 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0.13'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '0.13'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: netrc
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '0.8'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '0.8'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rubocop
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0.27'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0.27'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rspec
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '3.1'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '3.1'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: pry
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0.10'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - ~>
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0.10'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: codeclimate-test-reporter
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0.4'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.4'
|
85
99
|
description: Uses Jawbone to figure out if you are awake enough to code
|
86
100
|
email:
|
87
101
|
- max@hardscrabble.net
|
@@ -92,17 +106,20 @@ executables:
|
|
92
106
|
extensions: []
|
93
107
|
extra_rdoc_files: []
|
94
108
|
files:
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
-
|
99
|
-
-
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
109
|
+
- ./.gitignore
|
110
|
+
- ./README.md
|
111
|
+
- ./bin/git-sleep
|
112
|
+
- ./git-sleep.gemspec
|
113
|
+
- ./hooks/post-commit
|
114
|
+
- ./hooks/pre-commit
|
115
|
+
- ./lib/git-sleep.rb
|
116
|
+
- ./lib/git-sleep/authorizer.rb
|
117
|
+
- ./lib/git-sleep/cli.rb
|
118
|
+
- ./lib/git-sleep/communicator.rb
|
119
|
+
- ./lib/git-sleep/credentials_file.rb
|
120
|
+
- ./lib/git-sleep/exceptions.rb
|
121
|
+
- ./lib/git-sleep/hook_installer.rb
|
122
|
+
- ./lib/git-sleep/metadata.rb
|
106
123
|
- bin/git-sleep
|
107
124
|
homepage: http://www.gitsleep.com
|
108
125
|
licenses:
|
@@ -114,19 +131,20 @@ require_paths:
|
|
114
131
|
- lib
|
115
132
|
required_ruby_version: !ruby/object:Gem::Requirement
|
116
133
|
requirements:
|
117
|
-
- -
|
134
|
+
- - '>='
|
118
135
|
- !ruby/object:Gem::Version
|
119
136
|
version: 2.0.0
|
120
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
138
|
requirements:
|
122
|
-
- -
|
139
|
+
- - '>='
|
123
140
|
- !ruby/object:Gem::Version
|
124
141
|
version: '0'
|
125
142
|
requirements: []
|
126
143
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.4.1
|
128
145
|
signing_key:
|
129
146
|
specification_version: 4
|
130
147
|
summary: Uses Jawbone to figure out if you are awake enoughto code based on your sleep
|
131
148
|
data
|
132
149
|
test_files: []
|
150
|
+
has_rdoc:
|