brief 1.8.6 → 1.8.8
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 +5 -3
- data/.travis.yml +8 -0
- data/Gemfile.lock +9 -8
- data/Rakefile +19 -15
- data/apps/blueprint/models/page.rb +1 -1
- data/apps/blueprint/models/roadmap.rb +14 -0
- data/apps/blueprint/templates/epic.md.erb +0 -0
- data/apps/blueprint/templates/milestone.md.erb +0 -0
- data/apps/blueprint/templates/page.md.erb +0 -0
- data/apps/blueprint/templates/persona.md.erb +0 -0
- data/apps/blueprint/templates/user_story.md.erb +0 -0
- data/bin/brief +3 -3
- data/brief.gemspec +9 -3
- data/examples/blog/brief.rb +13 -18
- data/examples/blog/docs/posts/this-is-my-first-post.md +12 -0
- data/lib/brief.rb +10 -4
- data/lib/brief/apps.rb +1 -1
- data/lib/brief/briefcase.rb +13 -8
- data/lib/brief/briefcase/initializer.rb +64 -0
- data/lib/brief/cli/all.rb +69 -0
- data/lib/brief/cli/export.rb +21 -10
- data/lib/brief/cli/parse.rb +1 -1
- data/lib/brief/cli/render.rb +1 -1
- data/lib/brief/data.rb +1 -1
- data/lib/brief/document.rb +18 -15
- data/lib/brief/document/rendering.rb +18 -33
- data/lib/brief/document_mapper.rb +1 -1
- data/lib/brief/model/serializers.rb +2 -2
- data/lib/brief/version.rb +1 -1
- data/packaging/wrapper.sh +32 -0
- data/spec/fixtures/example/docs/epics/epic.html.md +25 -0
- data/spec/fixtures/example/docs/index.md +15 -0
- data/spec/fixtures/example/docs/page.html.md +14 -0
- data/spec/fixtures/example/docs/persona.html.md +5 -0
- data/spec/fixtures/example/docs/release.html.md +9 -0
- data/spec/fixtures/example/docs/resource.html.md +5 -0
- data/spec/fixtures/example/docs/user_story.html.md +24 -0
- data/spec/fixtures/example/docs/wireframe.html.md +5 -0
- data/spec/fixtures/example/models/page.rb +2 -1
- data/spec/lib/brief/serializers_spec.rb +1 -1
- data/tasks/distribution/configuration.rb +15 -0
- data/tasks/distribution/executable.rb +28 -0
- data/tasks/distribution/package.rb +85 -0
- data/tasks/distribution/package_helpers.rb +12 -0
- data/tasks/distribution/release.rb +49 -0
- data/tasks/distribution/release_notes.erb +14 -0
- data/tasks/distribution/release_notes.rb +62 -0
- data/tasks/distribution/tarball.rb +47 -0
- data/tasks/distribution/travelling_ruby.rb +87 -0
- data/tasks/package.rake +41 -0
- data/tasks/styles.rake +47 -0
- data/tasks/upload.rake +40 -0
- metadata +51 -18
- data/clients/package.json +0 -11
- data/examples/blog/docs/an-intro-to-brief.html.md +0 -9
- data/lib/.DS_Store +0 -0
- data/lib/brief/cli/change.rb +0 -14
- data/lib/brief/cli/init.rb +0 -65
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 903817ba42bbf2c8231ebe66c95bf636feea9094
|
|
4
|
+
data.tar.gz: fdc126615c19f6d93f6221501e65b92c0153e860
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 246599c7a7fe9c2fd1ce77fca49f53767d9927c9f7a935cc1a94acc649f805147a8b889e4f1753a0ecd06862fdcbbb8dd92b23c00a688a2879076709aefff1da
|
|
7
|
+
data.tar.gz: 4dabf6f9d9d274b8af89ff2122f302b63bce3a594a17d7a70466a034b87362b4d3ffbe445cc9cb1ae86dcfb63a3af8df5e303b86ad2cfd3ac6d350f155ed7609
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
brief (1.8.
|
|
4
|
+
brief (1.8.7)
|
|
5
5
|
activemodel
|
|
6
6
|
activesupport (>= 4.0)
|
|
7
7
|
commander (>= 4.2.1)
|
|
8
8
|
github-fs
|
|
9
|
+
github-markdown (~> 0.6.8)
|
|
9
10
|
hashie
|
|
10
11
|
inflecto
|
|
11
|
-
nokogiri
|
|
12
|
-
redcarpet (>= 3.2.2)
|
|
12
|
+
nokogiri (= 1.6.5)
|
|
13
13
|
virtus (>= 1.0.3)
|
|
14
14
|
|
|
15
15
|
GEM
|
|
16
16
|
remote: https://rubygems.org/
|
|
17
17
|
specs:
|
|
18
|
-
activemodel (4.2.
|
|
19
|
-
activesupport (= 4.2.
|
|
18
|
+
activemodel (4.2.1)
|
|
19
|
+
activesupport (= 4.2.1)
|
|
20
20
|
builder (~> 3.1)
|
|
21
|
-
activesupport (4.2.
|
|
21
|
+
activesupport (4.2.1)
|
|
22
22
|
i18n (~> 0.7)
|
|
23
23
|
json (~> 1.7, >= 1.7.7)
|
|
24
24
|
minitest (~> 5.1)
|
|
@@ -45,6 +45,7 @@ GEM
|
|
|
45
45
|
activesupport (> 3.2.0)
|
|
46
46
|
octokit
|
|
47
47
|
rack
|
|
48
|
+
github-markdown (0.6.8)
|
|
48
49
|
hashie (3.4.0)
|
|
49
50
|
highline (1.6.21)
|
|
50
51
|
i18n (0.7.0)
|
|
@@ -55,7 +56,7 @@ GEM
|
|
|
55
56
|
mini_portile (0.6.2)
|
|
56
57
|
minitest (5.5.1)
|
|
57
58
|
multipart-post (2.0.0)
|
|
58
|
-
nokogiri (1.6.
|
|
59
|
+
nokogiri (1.6.5)
|
|
59
60
|
mini_portile (~> 0.6.0)
|
|
60
61
|
octokit (3.8.0)
|
|
61
62
|
sawyer (~> 0.6.0, >= 0.5.3)
|
|
@@ -69,7 +70,6 @@ GEM
|
|
|
69
70
|
rack-test (0.6.3)
|
|
70
71
|
rack (>= 1.0)
|
|
71
72
|
rake (10.4.2)
|
|
72
|
-
redcarpet (3.2.2)
|
|
73
73
|
rspec (3.1.0)
|
|
74
74
|
rspec-core (~> 3.1.0)
|
|
75
75
|
rspec-expectations (~> 3.1.0)
|
|
@@ -101,6 +101,7 @@ PLATFORMS
|
|
|
101
101
|
DEPENDENCIES
|
|
102
102
|
brief!
|
|
103
103
|
bundler (~> 1.3)
|
|
104
|
+
octokit
|
|
104
105
|
pry
|
|
105
106
|
pry-nav
|
|
106
107
|
rack-test
|
data/Rakefile
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
require
|
|
2
|
-
|
|
3
|
-
#!/usr/bin/env rake
|
|
4
|
-
begin
|
|
5
|
-
require 'bundler/setup'
|
|
6
|
-
rescue LoadError
|
|
7
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
Bundler::GemHelper.install_tasks
|
|
11
|
-
|
|
12
|
-
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
|
1
|
+
Dir[File.join(Dir.pwd, 'tasks', '**', '*.rb')].each { |f| require f }
|
|
2
|
+
Dir[File.join(Dir.pwd, 'tasks', '*.rake')].each { |f| load f }
|
|
13
3
|
|
|
14
|
-
require
|
|
4
|
+
require "bundler/gem_tasks"
|
|
15
5
|
require 'rspec/core/rake_task'
|
|
16
6
|
|
|
17
|
-
desc "Run all specs in spec directory (excluding plugin specs)"
|
|
18
|
-
|
|
19
7
|
RSpec::Core::RakeTask.new(:spec)
|
|
20
8
|
|
|
9
|
+
Distribution.configure do |config|
|
|
10
|
+
config.package_name = 'brief'
|
|
11
|
+
config.version = Brief::VERSION
|
|
12
|
+
config.rb_version = '20150210-2.1.5'
|
|
13
|
+
config.packaging_dir = File.expand_path 'packaging'
|
|
14
|
+
config.native_extensions = [
|
|
15
|
+
'github-markdown-0.6.8',
|
|
16
|
+
'escape_utils-1.0.1',
|
|
17
|
+
#'charlock_holmes-0.7.3',
|
|
18
|
+
#'posix-spawn-0.3.9',
|
|
19
|
+
#'nokogumbo-1.3.0',
|
|
20
|
+
#'rugged-0.21.4',
|
|
21
|
+
'nokogiri-1.6.5',
|
|
22
|
+
]
|
|
23
|
+
end
|
|
24
|
+
|
|
21
25
|
task :default => :spec
|
|
@@ -11,6 +11,6 @@ class Brief::Apps::Blueprint::Page
|
|
|
11
11
|
paragraph "p:first-of-type"
|
|
12
12
|
title "h1:first-of-type", :hide => true
|
|
13
13
|
tagline "h2:first-of-type", :hide => true
|
|
14
|
-
|
|
14
|
+
yaml "pre[lang='yaml'] code:first-of-type", :serialize => :yaml, :hide => true
|
|
15
15
|
end
|
|
16
16
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class Brief::Apps::Blueprint::Roadmap
|
|
2
|
+
include Brief::Model
|
|
3
|
+
|
|
4
|
+
meta do
|
|
5
|
+
title
|
|
6
|
+
subheading
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
content do
|
|
10
|
+
define_section "Milestones" do
|
|
11
|
+
each("h2").has(:title => "h2", :due_date => "li:first-of-type", :paragraph => "p:first-of-type")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/bin/brief
CHANGED
|
@@ -6,17 +6,17 @@ require 'rubygems'
|
|
|
6
6
|
require 'brief'
|
|
7
7
|
require 'brief/dsl'
|
|
8
8
|
|
|
9
|
-
$briefcase = Brief::Briefcase.new(root: Dir.pwd())
|
|
10
9
|
|
|
11
10
|
if ARGV[0] == "console"
|
|
12
11
|
require 'pry'
|
|
12
|
+
$briefcase = Brief::Briefcase.new(root: Brief.pwd)
|
|
13
13
|
Pry.start($briefcase)
|
|
14
14
|
else
|
|
15
15
|
require 'commander/import'
|
|
16
16
|
|
|
17
17
|
program :name, "Brief"
|
|
18
|
-
program :description, "Brief
|
|
19
|
-
program :version,
|
|
18
|
+
program :description, "Brief lets you treat your markdown files like active record objects"
|
|
19
|
+
program :version, Brief::VERSION
|
|
20
20
|
|
|
21
21
|
Brief.load_commands()
|
|
22
22
|
end
|
data/brief.gemspec
CHANGED
|
@@ -25,8 +25,14 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
spec.add_dependency 'inflecto'
|
|
26
26
|
spec.add_dependency 'activemodel'
|
|
27
27
|
spec.add_dependency 'activesupport', '>= 4.0'
|
|
28
|
-
spec.add_dependency '
|
|
29
|
-
|
|
28
|
+
spec.add_dependency 'nokogiri', '1.6.5'
|
|
29
|
+
|
|
30
|
+
#spec.add_dependency 'github-markup', '~> 1.3.1'
|
|
31
|
+
#spec.add_dependency 'github-linguist', '~> 4.2.5'
|
|
32
|
+
#spec.add_dependency 'html-pipeline', '~> 1.11.0'
|
|
33
|
+
#spec.add_dependency 'sanitize', '~> 3.1.0'
|
|
34
|
+
spec.add_dependency 'github-markdown', '~> 0.6.8'
|
|
35
|
+
|
|
30
36
|
|
|
31
37
|
spec.add_development_dependency "bundler", "~> 1.3"
|
|
32
38
|
spec.add_development_dependency "rake"
|
|
@@ -34,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
|
34
40
|
spec.add_development_dependency "pry-nav"
|
|
35
41
|
spec.add_development_dependency "rspec"
|
|
36
42
|
spec.add_development_dependency "rack-test"
|
|
37
|
-
|
|
43
|
+
spec.add_development_dependency 'octokit'
|
|
38
44
|
end
|
|
39
45
|
|
|
40
46
|
|
data/examples/blog/brief.rb
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
root = Pathname(Dir.pwd)
|
|
2
|
+
|
|
2
3
|
config do
|
|
3
|
-
|
|
4
|
+
# You can put any special brief configuration here
|
|
5
|
+
# set(models_path: root.join('models')) if root.join('models').exist?
|
|
6
|
+
# set(templates_path: root.join('templates')) if root.join('templates').exist?
|
|
7
|
+
# set(docs_path: root.join('documents')) if root.join('documents').exist?
|
|
4
8
|
end
|
|
5
9
|
|
|
6
|
-
# define a Post model
|
|
7
|
-
define("Post") do
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
# with values for 'status' and 'date'
|
|
11
|
+
define "Post" do
|
|
11
12
|
meta do
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
title
|
|
14
|
+
status :in => %w(draft published)
|
|
15
|
+
tags Array
|
|
14
16
|
end
|
|
17
|
+
|
|
15
18
|
|
|
16
|
-
# the post model will have a 'title' method which returns the text
|
|
17
|
-
# from the first h1 heading
|
|
18
19
|
content do
|
|
19
|
-
title "h1"
|
|
20
|
-
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
actions do
|
|
24
|
-
def publish(options={})
|
|
25
|
-
puts "The publish action"
|
|
26
|
-
end
|
|
20
|
+
title "h1:first-of-type"
|
|
21
|
+
subheading "h2:first-of-type"
|
|
27
22
|
end
|
|
28
23
|
end
|
data/lib/brief.rb
CHANGED
|
@@ -5,12 +5,18 @@ require 'virtus'
|
|
|
5
5
|
require 'inflecto'
|
|
6
6
|
require 'active_support'
|
|
7
7
|
require 'active_support/core_ext'
|
|
8
|
-
require '
|
|
8
|
+
require 'github/markdown'
|
|
9
9
|
require 'nokogiri'
|
|
10
10
|
require 'yaml'
|
|
11
11
|
require 'erb'
|
|
12
12
|
|
|
13
13
|
module Brief
|
|
14
|
+
# When packaging this up through the traveling ruby system
|
|
15
|
+
# Dir.pwd is not accurate because of the wrapper. We shim it
|
|
16
|
+
# by setting a special ENV variable in that file
|
|
17
|
+
def self.pwd
|
|
18
|
+
ENV.fetch('BRIEF_PWD') { Dir.pwd }
|
|
19
|
+
end
|
|
14
20
|
|
|
15
21
|
def self.cases
|
|
16
22
|
@cases ||= {}
|
|
@@ -32,16 +38,16 @@ module Brief
|
|
|
32
38
|
Brief::Configuration.instance
|
|
33
39
|
end
|
|
34
40
|
|
|
35
|
-
def self.
|
|
41
|
+
def self.lib_root
|
|
36
42
|
Pathname(File.dirname(__FILE__))
|
|
37
43
|
end
|
|
38
44
|
|
|
39
45
|
def self.apps_path
|
|
40
|
-
|
|
46
|
+
lib_root.join("..","apps")
|
|
41
47
|
end
|
|
42
48
|
|
|
43
49
|
def self.load_commands
|
|
44
|
-
Dir[
|
|
50
|
+
Dir[lib_root.join('brief', 'cli', '**/*.rb')].each { |f| require(f) }
|
|
45
51
|
|
|
46
52
|
# the instance methods which get defined with the helper
|
|
47
53
|
Brief::Model.classes.each do |klass|
|
data/lib/brief/apps.rb
CHANGED
data/lib/brief/briefcase.rb
CHANGED
|
@@ -94,9 +94,7 @@ module Brief
|
|
|
94
94
|
def use(module_type=:app, module_id)
|
|
95
95
|
options[:app] = module_id.to_s
|
|
96
96
|
|
|
97
|
-
if app_path
|
|
98
|
-
instance_eval(app_config_path.read)
|
|
99
|
-
end
|
|
97
|
+
run(app_config_path) if app_path.try(&:exist?)
|
|
100
98
|
end
|
|
101
99
|
|
|
102
100
|
def data
|
|
@@ -132,9 +130,12 @@ module Brief
|
|
|
132
130
|
config_path = root.join(config_path)
|
|
133
131
|
end
|
|
134
132
|
|
|
135
|
-
if config_path.exist?
|
|
136
|
-
|
|
137
|
-
|
|
133
|
+
run(config_path) if config_path.exist?
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def run(code_or_file)
|
|
137
|
+
code = code_or_file.is_a?(Pathname) ? code_or_file.read : code
|
|
138
|
+
instance_eval(code)
|
|
138
139
|
end
|
|
139
140
|
|
|
140
141
|
def uses_app?
|
|
@@ -191,7 +192,7 @@ module Brief
|
|
|
191
192
|
end
|
|
192
193
|
|
|
193
194
|
def root
|
|
194
|
-
Pathname(options.fetch(:root) {
|
|
195
|
+
Pathname(options.fetch(:root) { Brief.pwd })
|
|
195
196
|
end
|
|
196
197
|
|
|
197
198
|
def docs_path
|
|
@@ -206,7 +207,7 @@ module Brief
|
|
|
206
207
|
value = options.fetch(:models_path) { config.models_path }
|
|
207
208
|
|
|
208
209
|
if value.to_s.match(/\./)
|
|
209
|
-
Pathname(
|
|
210
|
+
Pathname(Brief.pwd).join(value)
|
|
210
211
|
elsif value.to_s.match(/\//)
|
|
211
212
|
Pathname(value)
|
|
212
213
|
else
|
|
@@ -228,5 +229,9 @@ module Brief
|
|
|
228
229
|
super
|
|
229
230
|
end
|
|
230
231
|
end
|
|
232
|
+
|
|
233
|
+
def self.create_new_briefcase(options={})
|
|
234
|
+
Brief::Briefcase::Initializer.new(options).run
|
|
235
|
+
end
|
|
231
236
|
end
|
|
232
237
|
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
class Brief::Briefcase
|
|
2
|
+
class Initializer
|
|
3
|
+
def initialize(options={})
|
|
4
|
+
@options = options.to_mash
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def run
|
|
8
|
+
options = @options
|
|
9
|
+
root = options.root
|
|
10
|
+
|
|
11
|
+
FileUtils.mkdir_p(root.join("docs","posts"))
|
|
12
|
+
|
|
13
|
+
config = "use(#{options.app})\n" if options.app
|
|
14
|
+
|
|
15
|
+
config = <<-EOF
|
|
16
|
+
root = Pathname(Dir.pwd)
|
|
17
|
+
|
|
18
|
+
config do
|
|
19
|
+
# You can put any special brief configuration here
|
|
20
|
+
# set(models_path: root.join('models')) if root.join('models').exist?
|
|
21
|
+
# set(templates_path: root.join('templates')) if root.join('templates').exist?
|
|
22
|
+
# set(docs_path: root.join('documents')) if root.join('documents').exist?
|
|
23
|
+
end
|
|
24
|
+
\n
|
|
25
|
+
define "Post" do
|
|
26
|
+
meta do
|
|
27
|
+
title
|
|
28
|
+
status :in => %w(draft published)
|
|
29
|
+
tags Array
|
|
30
|
+
end
|
|
31
|
+
\n
|
|
32
|
+
content do
|
|
33
|
+
title "h1:first-of-type"
|
|
34
|
+
subheading "h2:first-of-type"
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
EOF
|
|
38
|
+
|
|
39
|
+
example = <<-EOF
|
|
40
|
+
---
|
|
41
|
+
type: post
|
|
42
|
+
title: This is my first post
|
|
43
|
+
status: published
|
|
44
|
+
tags:
|
|
45
|
+
- default
|
|
46
|
+
- intro
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# This is my first post
|
|
50
|
+
|
|
51
|
+
I should write something clever.
|
|
52
|
+
EOF
|
|
53
|
+
|
|
54
|
+
config.gsub!(/^\ {1,6}/m, '')
|
|
55
|
+
example.gsub!(/^\ {1,6}/m, '')
|
|
56
|
+
|
|
57
|
+
root.join("docs","posts","this-is-my-first-post.md").open("w+") {|fh| fh.write(example) }
|
|
58
|
+
|
|
59
|
+
root.join("brief.rb").open("w+") do |fh|
|
|
60
|
+
fh.write(config)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
command 'change' do |c|
|
|
2
|
+
c.syntax = 'brief change ATTRIBUTE [OPTIONS]'
|
|
3
|
+
c.description = 'change attributes of brief documents'
|
|
4
|
+
|
|
5
|
+
c.option '--from VALUE', String, 'Only apply when the attributes current value matches.'
|
|
6
|
+
c.option '--to VALUE', String, 'Only apply when the attributes current value matches.'
|
|
7
|
+
c.option '--root PATH', String, 'The root directory for the briefcase'
|
|
8
|
+
c.option '--operator VALUE', String, 'What operator to use in matching the from value. (eq,neq,gt,gte,lt,lte). defaults: eq'
|
|
9
|
+
c.option '--dry-run', nil, "Don't actually save"
|
|
10
|
+
|
|
11
|
+
c.action do |args, options|
|
|
12
|
+
options.default(root: Pathname(Brief.pwd), operator: "eq")
|
|
13
|
+
attribute = args.shift
|
|
14
|
+
paths = args.map {|a| Dir[options.root.join(a)] }.flatten
|
|
15
|
+
|
|
16
|
+
briefcase = Brief::Briefcase.new(root: options.root)
|
|
17
|
+
documents = briefcase.documents_at(*paths)
|
|
18
|
+
|
|
19
|
+
if options.from
|
|
20
|
+
#attribute = attribute.to_sym.send(options.operator)
|
|
21
|
+
attribute = attribute.to_sym
|
|
22
|
+
documents = Brief::DocumentMapper::Query.new(documents).where({attribute => options.from}).all
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
if documents.length == 0
|
|
26
|
+
puts "No documents match this selection"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
if options.dry_run
|
|
30
|
+
puts documents
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
command 'init' do |c|
|
|
36
|
+
c.syntax = 'brief init NAME [OPTIONS]'
|
|
37
|
+
c.description = 'Create a new brief project, aka a briefcase'
|
|
38
|
+
|
|
39
|
+
c.option '--root', String, 'The root folder for the new project.'
|
|
40
|
+
c.option '--app', String, 'Which existing app would you like to use?'
|
|
41
|
+
|
|
42
|
+
c.action do |args, options|
|
|
43
|
+
options.default :root => (args.first || Brief.pwd)
|
|
44
|
+
|
|
45
|
+
root = Pathname(options.root)
|
|
46
|
+
|
|
47
|
+
if root.join('brief.rb').exist?
|
|
48
|
+
puts "A Brief project already exists in this folder"
|
|
49
|
+
else
|
|
50
|
+
require 'brief/briefcase/initializer'
|
|
51
|
+
Brief::Briefcase.create_new_briefcase(root: root, app: options.app)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
command 'info' do |c|
|
|
57
|
+
c.syntax = 'brief info'
|
|
58
|
+
c.description = 'View info about the brief environment'
|
|
59
|
+
|
|
60
|
+
c.action do |args, options|
|
|
61
|
+
# traveling ruby is reporting this incorrectly
|
|
62
|
+
puts "\n-- Paths:"
|
|
63
|
+
puts "Dir.pwd = #{ Dir.pwd }"
|
|
64
|
+
puts "Brief.pwd = #{ Brief.pwd }"
|
|
65
|
+
|
|
66
|
+
puts "\n-- Available apps:"
|
|
67
|
+
puts Brief::Apps.available_apps.join("\n")
|
|
68
|
+
end
|
|
69
|
+
end
|