git-sleep 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build
|
4
|
-
|
3
|
+
[![Build Status](https://travis-ci.org/maxjacobson/git-sleep-gem.svg?branch=master)](https://travis-ci.org/maxjacobson/git-sleep-gem)
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/git-sleep.svg)](http://badge.fury.io/rb/git-sleep)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/maxjacobson/git-sleep-gem/badges/gpa.svg)](https://codeclimate.com/github/maxjacobson/git-sleep-gem)
|
6
|
+
[![Test Coverage](https://codeclimate.com/github/maxjacobson/git-sleep-gem/badges/coverage.svg)](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:
|