brief 1.11.6 → 1.11.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +3 -1
- data/lib/brief/briefcase.rb +21 -0
- data/lib/brief/cli/run.rb +18 -0
- data/lib/brief/cli/write.rb +14 -0
- data/lib/brief/dsl.rb +17 -0
- data/lib/brief/version.rb +1 -1
- data/lib/brief.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd687a96421413cf2b583197c999a635c776270f
|
4
|
+
data.tar.gz: a099d2c06a067176634a00a89b0277b3a57230fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35eec77e8ba37daf91350e9a3b4a91c526ec02b4f2148c9058a002a2c2f993cc9048f8b8f7994521d40e3d18e4d92bfbc22e917c7d82d815852ff57135e27226
|
7
|
+
data.tar.gz: 75e7f2d9201a49d96262e7871bbdf3b1c4b2c373adca20b4ed68857e6e1ea57eaa30c669f8ee916bda98f01f0c646ffd31959284e91ebd7b577aa989e29ec6ce
|
data/CHANGELOG.md
CHANGED
@@ -144,3 +144,7 @@ attributes.
|
|
144
144
|
### 1.9.12
|
145
145
|
- Included ability to transform content using special markdown link syntax
|
146
146
|
- Included ability to inline svg assets
|
147
|
+
|
148
|
+
### 1.11.7
|
149
|
+
- Added ability to define briefcase commands and dispatch these
|
150
|
+
commands from the CLI
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
brief (1.11.
|
4
|
+
brief (1.11.7)
|
5
5
|
activesupport (> 3.2)
|
6
6
|
commander (~> 4.3)
|
7
7
|
em-websocket (~> 0.5)
|
@@ -12,6 +12,7 @@ PATH
|
|
12
12
|
hike (>= 1.2)
|
13
13
|
inflecto (~> 0)
|
14
14
|
nokogiri (~> 1.6)
|
15
|
+
terminal-table
|
15
16
|
thin (= 1.6.3)
|
16
17
|
virtus (~> 1.0)
|
17
18
|
|
@@ -91,6 +92,7 @@ GEM
|
|
91
92
|
addressable (~> 2.3.5)
|
92
93
|
faraday (~> 0.8, < 0.10)
|
93
94
|
slop (3.6.0)
|
95
|
+
terminal-table (1.4.5)
|
94
96
|
thin (1.6.3)
|
95
97
|
daemons (~> 1.0, >= 1.0.9)
|
96
98
|
eventmachine (~> 1.0)
|
data/lib/brief/briefcase.rb
CHANGED
@@ -21,6 +21,27 @@ module Brief
|
|
21
21
|
Brief.cases[root.basename.to_s] ||= self
|
22
22
|
end
|
23
23
|
|
24
|
+
# Runs a command
|
25
|
+
#
|
26
|
+
# Commands are defined in the briefcase configuration.
|
27
|
+
#
|
28
|
+
# You define a command by passing a block. This block will
|
29
|
+
# get called with the briefcase, and whatever other arguments
|
30
|
+
def run_command(name, *args)
|
31
|
+
if handler = Brief.commands.fetch(name.to_sym)
|
32
|
+
block = handler[:handler]
|
33
|
+
args.unshift(self)
|
34
|
+
block.call(*args)
|
35
|
+
else
|
36
|
+
raise 'Command not found'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Returns a Hash object which presents some
|
41
|
+
# view of the briefcase. Accepts a params hash
|
42
|
+
# of options that will be passed to the presenter.
|
43
|
+
#
|
44
|
+
# The default presenter is Brief::Briefcase#as_default
|
24
45
|
def present(style="default", params={})
|
25
46
|
style = "default" if style.nil?
|
26
47
|
|
data/lib/brief/cli/run.rb
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
command "run command" do |c|
|
2
|
+
c.syntax = 'brief run FILE'
|
3
|
+
c.description = 'run a script in the context of the briefcase'
|
4
|
+
|
5
|
+
c.action do |args, options|
|
6
|
+
command = args.first.to_s.to_sym
|
7
|
+
|
8
|
+
bc = Brief.case
|
9
|
+
bc = bc.call if bc.respond_to?(:call)
|
10
|
+
|
11
|
+
if !Brief.commands[command.to_sym]
|
12
|
+
puts "Invalid command. #{ Brief.commands.keys }"
|
13
|
+
else
|
14
|
+
bc.run_command(command.to_sym, *args)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
1
19
|
command "run" do |c|
|
2
20
|
c.syntax = 'brief run FILE'
|
3
21
|
c.description = 'run a script in the context of the briefcase'
|
data/lib/brief/cli/write.rb
CHANGED
@@ -2,6 +2,9 @@ command 'write' do |c|
|
|
2
2
|
c.syntax = 'brief write MODEL_TYPE [OPTIONS]'
|
3
3
|
c.description = 'Create a new document for a given model type'
|
4
4
|
|
5
|
+
# TODO
|
6
|
+
# We could potential query the available model classes we are aware of
|
7
|
+
# and determine which CLI arguments those model classes may ask for.
|
5
8
|
c.action do |args, options|
|
6
9
|
schema_map = Brief.case(true).schema_map(true)
|
7
10
|
type_alias = args.first
|
@@ -10,6 +13,17 @@ command 'write' do |c|
|
|
10
13
|
raise "Unknown model type: #{ type_alias }. Available types are: #{ schema_map.keys.join(',') }"
|
11
14
|
end
|
12
15
|
|
16
|
+
# TODO
|
17
|
+
#
|
18
|
+
# We need to determine the initial content that gets put into the editor.
|
19
|
+
#
|
20
|
+
# Our options are:
|
21
|
+
#
|
22
|
+
# - use an example from the model, if one exists
|
23
|
+
# - deduce the content to use based on some combination of one or more of the items below:
|
24
|
+
# - specifics of the model
|
25
|
+
# - the state of the documents that exist for that model already
|
26
|
+
# - the arguments from the CLI
|
13
27
|
default_example = "---\ntype:#{type_alias}\n---\n\n# Enter some content"
|
14
28
|
|
15
29
|
content = ask_editor(model_class.to_mash.example || default_example)
|
data/lib/brief/dsl.rb
CHANGED
@@ -6,10 +6,27 @@ module Brief
|
|
6
6
|
Brief::Configuration.instance.instance_eval(&block) if block_given?
|
7
7
|
end
|
8
8
|
|
9
|
+
# Define a view of the briefcase. Pass a block
|
10
|
+
# which returns a hash that displays the desired
|
11
|
+
# content
|
9
12
|
def view(name, &block)
|
10
13
|
Brief.views[name.to_sym] = block
|
11
14
|
end
|
12
15
|
|
16
|
+
# Register a new command for this briefcase.
|
17
|
+
#
|
18
|
+
# Pass the name of the command, options, and a block.
|
19
|
+
#
|
20
|
+
# The block will get called with the briefcase, and any arguments
|
21
|
+
#
|
22
|
+
# currently doesn't accept any options
|
23
|
+
def command(name, options={}, &block)
|
24
|
+
Brief.commands[name.to_sym] = {
|
25
|
+
options: options,
|
26
|
+
handler: block
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
13
30
|
# Extends an existing class
|
14
31
|
def extend(*args, &block)
|
15
32
|
options = args.dup.extract_options!
|
data/lib/brief/version.rb
CHANGED
data/lib/brief.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brief
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.
|
4
|
+
version: 1.11.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Soeder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|