codeunion 0.0.1 → 0.0.2
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/.rubocop.yml +4 -0
- data/bin/codeunion +3 -2
- data/bin/codeunion-config +13 -0
- data/lib/codeunion/command.rb +1 -28
- data/lib/codeunion/command/base.rb +16 -0
- data/lib/codeunion/command/config.rb +47 -0
- data/lib/codeunion/command/main.rb +35 -0
- data/lib/codeunion/config.rb +50 -0
- data/lib/codeunion/version.rb +1 -1
- metadata +8 -3
- data/lib/codeunion/cli.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4974f6eb01104b8573b4e0deaa5639e1086032cc
|
4
|
+
data.tar.gz: dbe02e702d20aa4879662b91dfe0b736931d1c45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efec75d73b5607462b3fda7b39354b96125916273602895ee26178c3de172dfe7f79f699d7a707433969020e7ab167617bc8cff3c70403c9b10016017dda2958
|
7
|
+
data.tar.gz: 20861af23710e2f96c2ee2486bab9261f988fe5e7dc4d29478687a01d540779eabb392da261f1925218f74692b7c930e47844fde47eb7e23ac90330e8b950392
|
data/.rubocop.yml
CHANGED
data/bin/codeunion
CHANGED
@@ -8,5 +8,6 @@ bin_file = Pathname.new(__FILE__).realpath
|
|
8
8
|
# Add the gem's "lib" directory to library path
|
9
9
|
$LOAD_PATH.unshift File.expand_path("../../lib", bin_file)
|
10
10
|
|
11
|
-
require "codeunion/
|
12
|
-
|
11
|
+
require "codeunion/command/main"
|
12
|
+
|
13
|
+
CodeUnion::Command::Main.new(*ARGV).run
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
# Resolve the pathname for this executable
|
5
|
+
require "pathname"
|
6
|
+
bin_file = Pathname.new(__FILE__).realpath
|
7
|
+
|
8
|
+
# Add the gem's "lib" directory to library path
|
9
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", bin_file)
|
10
|
+
|
11
|
+
require "codeunion/command/config"
|
12
|
+
|
13
|
+
CodeUnion::Command::Config.new(*ARGV).run
|
data/lib/codeunion/command.rb
CHANGED
@@ -1,34 +1,7 @@
|
|
1
1
|
require "codeunion"
|
2
|
-
require "ptools"
|
3
2
|
|
4
3
|
module CodeUnion
|
5
|
-
|
6
|
-
class Command
|
4
|
+
module Command
|
7
5
|
class CommandNotFound < StandardError; end
|
8
|
-
|
9
|
-
def initialize(command, *args)
|
10
|
-
@command = command
|
11
|
-
@args = args
|
12
|
-
end
|
13
|
-
|
14
|
-
def exist?
|
15
|
-
File.which(executable_name)
|
16
|
-
end
|
17
|
-
|
18
|
-
def exec!
|
19
|
-
if exist?
|
20
|
-
exec(executable_name, *args)
|
21
|
-
else
|
22
|
-
fail CommandNotFound, "Unknown command `#{@command}`."
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
attr_reader :command, :args
|
29
|
-
|
30
|
-
def executable_name
|
31
|
-
"codeunion-#{command}"
|
32
|
-
end
|
33
6
|
end
|
34
7
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require "codeunion/command/base"
|
2
|
+
require "codeunion/config"
|
3
|
+
require "fileutils"
|
4
|
+
|
5
|
+
module CodeUnion
|
6
|
+
module Command
|
7
|
+
# The bulit-in `codeunion config` command
|
8
|
+
class Config < Base
|
9
|
+
CONFIG_DIR = File.join(Dir.home, ".codeunion")
|
10
|
+
CONFIG_FILE = File.join(CONFIG_DIR, "config")
|
11
|
+
|
12
|
+
def run
|
13
|
+
ensure_config_exists!
|
14
|
+
|
15
|
+
case args.length
|
16
|
+
when 1
|
17
|
+
puts config.get(*args)
|
18
|
+
when 2
|
19
|
+
config.set(*args)
|
20
|
+
end
|
21
|
+
|
22
|
+
save_config!
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def config
|
28
|
+
@config ||= CodeUnion::Config.new(YAML.load_file(CONFIG_FILE))
|
29
|
+
end
|
30
|
+
|
31
|
+
def ensure_config_exists!
|
32
|
+
FileUtils.mkdir(CONFIG_DIR) unless Dir.exist?(CONFIG_DIR)
|
33
|
+
write_config_data({}) unless File.exist?(CONFIG_FILE)
|
34
|
+
end
|
35
|
+
|
36
|
+
def save_config!
|
37
|
+
write_config_data(config)
|
38
|
+
end
|
39
|
+
|
40
|
+
def write_config_data(data)
|
41
|
+
File.open(CONFIG_FILE, "w") do |f|
|
42
|
+
f.write YAML.dump(Hash(data))
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "codeunion/command/base"
|
2
|
+
require "ptools"
|
3
|
+
|
4
|
+
module CodeUnion
|
5
|
+
module Command
|
6
|
+
# The built-in main `codeunion` command
|
7
|
+
class Main < Base
|
8
|
+
def run
|
9
|
+
if exist?
|
10
|
+
exec(executable_name, *command_args)
|
11
|
+
else
|
12
|
+
fail CommandNotFound, "Unknown command `#{command_name}`."
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def exist?
|
17
|
+
File.which(executable_name)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def command_name
|
23
|
+
args.first
|
24
|
+
end
|
25
|
+
|
26
|
+
def command_args
|
27
|
+
args.drop(1)
|
28
|
+
end
|
29
|
+
|
30
|
+
def executable_name
|
31
|
+
"codeunion-#{command_name}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "yaml"
|
2
|
+
|
3
|
+
module CodeUnion
|
4
|
+
# A class to manage CodeUnion configuration data
|
5
|
+
class Config
|
6
|
+
def initialize(config_data)
|
7
|
+
@config = Hash(config_data.dup)
|
8
|
+
@config.default_proc = proc { |h, k| h[k] = {} }
|
9
|
+
end
|
10
|
+
|
11
|
+
def set(dotted_key, value)
|
12
|
+
@config = set_dotted(@config, dotted_key, value)
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(dotted_key)
|
17
|
+
get_dotted(@config, dotted_key)
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_hash
|
21
|
+
@config.dup
|
22
|
+
end
|
23
|
+
|
24
|
+
alias_method :to_h, :to_hash
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def set_dotted(config, dotted_key, value)
|
29
|
+
return value if dotted_key.nil?
|
30
|
+
|
31
|
+
key, sub_key = extract_subkey(dotted_key)
|
32
|
+
|
33
|
+
config.merge(key => set_dotted(config[key], sub_key, value))
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_dotted(config, dotted_key)
|
37
|
+
key, sub_key = extract_subkey(dotted_key)
|
38
|
+
|
39
|
+
if sub_key
|
40
|
+
get_dotted(config[key], sub_key)
|
41
|
+
else
|
42
|
+
config[key]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def extract_subkey(dotted_key)
|
47
|
+
dotted_key.split(".", 2)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/codeunion/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codeunion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Farmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,6 +72,7 @@ email:
|
|
72
72
|
- jesse@codeunion.io
|
73
73
|
executables:
|
74
74
|
- codeunion
|
75
|
+
- codeunion-config
|
75
76
|
extensions: []
|
76
77
|
extra_rdoc_files: []
|
77
78
|
files:
|
@@ -82,10 +83,14 @@ files:
|
|
82
83
|
- README.md
|
83
84
|
- Rakefile
|
84
85
|
- bin/codeunion
|
86
|
+
- bin/codeunion-config
|
85
87
|
- codeunion.gemspec
|
86
88
|
- lib/codeunion.rb
|
87
|
-
- lib/codeunion/cli.rb
|
88
89
|
- lib/codeunion/command.rb
|
90
|
+
- lib/codeunion/command/base.rb
|
91
|
+
- lib/codeunion/command/config.rb
|
92
|
+
- lib/codeunion/command/main.rb
|
93
|
+
- lib/codeunion/config.rb
|
89
94
|
- lib/codeunion/version.rb
|
90
95
|
homepage: http://github.com/codeunion/codeunion-client
|
91
96
|
licenses:
|
data/lib/codeunion/cli.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require "codeunion"
|
2
|
-
require "codeunion/command"
|
3
|
-
|
4
|
-
module CodeUnion
|
5
|
-
# This class serves as a simple command-line client
|
6
|
-
class CLI
|
7
|
-
def self.start(*args)
|
8
|
-
subcommand = args.shift.strip
|
9
|
-
|
10
|
-
CodeUnion::Command.new(subcommand, *args).exec!
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|