yakka 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.2@yakka --create
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in yakka.gemspec
4
+ gemspec
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/bin/yakka ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+
4
+ require 'yakka/cli'
5
+
6
+ Yakka::Cli.start
data/lib/yakka/cli.rb ADDED
@@ -0,0 +1,36 @@
1
+ require 'thor'
2
+ require 'yakka'
3
+
4
+ module Yakka
5
+ class Cli < Thor
6
+ include Thor::Actions
7
+
8
+ def self.source_root
9
+ File.dirname(__FILE__)
10
+ end
11
+
12
+ desc "clear", "Clear all rules"
13
+ def clear
14
+ Rules.clear
15
+ end
16
+ map "c" => :clear
17
+
18
+ desc "enable RULE", "Enable a rule"
19
+ def enable(rule)
20
+ Rules.enable(rule)
21
+ end
22
+ map "e" => :enable
23
+
24
+ desc "install", "Create ~/.yakka file for your own rules"
25
+ def install
26
+ template('templates/yakka.yml', "~/.yakka")
27
+ end
28
+ map "i" => :install
29
+
30
+ desc "list", "List all available rules"
31
+ def list
32
+ Rules.list
33
+ end
34
+ map "l" => :list
35
+ end
36
+ end
@@ -0,0 +1,17 @@
1
+ require 'yaml'
2
+
3
+ module Yakka
4
+ class Configuration
5
+ attr_reader :rules, :rule_keys
6
+
7
+ def initialize
8
+ if ! File.exists?(File.expand_path("~/.yakka"))
9
+ puts "[Initializing] ".color(:red) + "Can not be done. You should run `yakka install`"
10
+ exit 0
11
+ end
12
+
13
+ @rules = YAML.load_file(File.expand_path("~/.yakka"))["rules"]
14
+ @rule_keys = rules.map(&:first)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,48 @@
1
+ require 'ghost'
2
+ require 'rainbow'
3
+
4
+ module Yakka
5
+ class Rules
6
+ class << self
7
+ def enable(rule)
8
+ begin
9
+ clear
10
+
11
+ Yakka.configuration.rules[rule].each do |host|
12
+ Host.add(host, '127.0.0.1', true)
13
+
14
+ puts "[Adding] ".color(:green) + host.underline
15
+ end
16
+ rescue
17
+ puts "[Adding] ".color(:red) + "Can not be done."
18
+ exit 0
19
+ end
20
+ end
21
+
22
+ def clear
23
+ begin
24
+ Host.empty!
25
+
26
+ puts "[Emptying] ".color(:green) + "Done."
27
+ rescue
28
+ puts "[Emptying] ".color(:red) + "Can not be done."
29
+ exit 0
30
+ end
31
+ end
32
+
33
+ def list
34
+ begin
35
+ rules = Yakka.configuration.rules
36
+
37
+ puts "[Listing] ".color(:green) + "#{rules.length} rule(s):"
38
+ rules.each_key do |key|
39
+ puts " #{key}"
40
+ end
41
+ rescue
42
+ puts "[Listing] ".color(:red) + "Can not be done."
43
+ exit 0
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ rules:
2
+ home:
3
+ - "basecamp.com"
4
+ - "campfire.com"
5
+
6
+
7
+ work:
8
+ - "facebook.com"
9
+ - "youtube.com"
10
+ - "reddit.com"
11
+ - "digg.com"
@@ -0,0 +1,3 @@
1
+ module Yakka
2
+ VERSION = "0.0.1"
3
+ end
data/lib/yakka.rb ADDED
@@ -0,0 +1,8 @@
1
+ module Yakka
2
+ require 'yakka/rules'
3
+ require 'yakka/configuration'
4
+
5
+ def self.configuration
6
+ @_configuration ||= Configuration.new
7
+ end
8
+ end
data/yakka.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "yakka/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "yakka"
7
+ s.version = Yakka::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Andrey Ognevsky"]
10
+ s.email = ["a.ognevsky@gmail.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{Simple gem to restrict time-killing resources}
13
+ s.description = %q{Update your own restriction list to avoid visits to time-killing resources while working}
14
+
15
+ s.add_dependency "ghost"
16
+ s.add_dependency "thor"
17
+ s.add_dependency "rainbow"
18
+
19
+ s.rubyforge_project = "yakka"
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yakka
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Andrey Ognevsky
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-05-19 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ghost
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: thor
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rainbow
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id003
48
+ description: Update your own restriction list to avoid visits to time-killing resources while working
49
+ email:
50
+ - a.ognevsky@gmail.com
51
+ executables:
52
+ - yakka
53
+ extensions: []
54
+
55
+ extra_rdoc_files: []
56
+
57
+ files:
58
+ - .gitignore
59
+ - .rvmrc
60
+ - Gemfile
61
+ - README
62
+ - Rakefile
63
+ - bin/yakka
64
+ - lib/yakka.rb
65
+ - lib/yakka/cli.rb
66
+ - lib/yakka/configuration.rb
67
+ - lib/yakka/rules.rb
68
+ - lib/yakka/templates/yakka.yml
69
+ - lib/yakka/version.rb
70
+ - yakka.gemspec
71
+ homepage: ""
72
+ licenses: []
73
+
74
+ post_install_message:
75
+ rdoc_options: []
76
+
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: "0"
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ requirements: []
92
+
93
+ rubyforge_project: yakka
94
+ rubygems_version: 1.8.2
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: Simple gem to restrict time-killing resources
98
+ test_files: []
99
+