brief 1.12.9 → 1.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -1
- data/apps/blueprint/extensions/middleman.rb +52 -0
- data/brief.gemspec +1 -0
- data/lib/brief/cli/write.rb +5 -5
- data/lib/brief/model.rb +19 -5
- data/lib/brief/model/definition.rb +2 -5
- data/lib/brief/version.rb +1 -1
- data/spec/fixtures/example/models/concept.rb +6 -2
- data/spec/lib/brief/models/new_doc_content_spec.rb +26 -0
- metadata +19 -4
- data/spec/lib/brief/models/writing_prompt_spec.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3968688e5ae49cef9636811719c29cc5c1daf89
|
4
|
+
data.tar.gz: 5da2122fc2a71f3878370db8ee26feba3fde0330
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7cab87cbc755465bf708e72ba6da50bbb171dd15293e6eb0c1939f137668e058d6db04d227f1cc51a39f53a30e70e8041e46dce863aa1045a1fdc85ef52e11b
|
7
|
+
data.tar.gz: 27650f973ec79d0e9ea9299d2b54379c1ab90f3a5dfdb12e8383c9fe80215ff22d95e36c444186f9a75443cdaeec90b086f7bbd580b9011fec834f113dd7c355
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
brief (1.
|
4
|
+
brief (1.13.1)
|
5
5
|
activesupport (> 3.2)
|
6
6
|
commander (~> 4.3)
|
7
7
|
em-websocket (~> 0.5)
|
@@ -30,9 +30,12 @@ GEM
|
|
30
30
|
descendants_tracker (~> 0.0.4)
|
31
31
|
ice_nine (~> 0.11.0)
|
32
32
|
thread_safe (~> 0.3, >= 0.3.1)
|
33
|
+
byebug (5.0.0)
|
34
|
+
columnize (= 0.9.0)
|
33
35
|
coderay (1.1.0)
|
34
36
|
coercible (1.0.0)
|
35
37
|
descendants_tracker (~> 0.0.1)
|
38
|
+
columnize (0.9.0)
|
36
39
|
commander (4.3.4)
|
37
40
|
highline (~> 1.7.2)
|
38
41
|
daemons (1.2.2)
|
@@ -112,6 +115,7 @@ PLATFORMS
|
|
112
115
|
DEPENDENCIES
|
113
116
|
brief!
|
114
117
|
bundler (~> 1.3)
|
118
|
+
byebug (~> 5.0.0)
|
115
119
|
octokit (~> 3.0)
|
116
120
|
pry (~> 0.10)
|
117
121
|
rack-test (~> 0.6)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
class Brief::Apps
|
2
|
+
class Blueprint::MiddlemanExtension < ::Middleman::Extension
|
3
|
+
|
4
|
+
option :blueprint_root, nil, 'Which path to use for the blueprint?'
|
5
|
+
|
6
|
+
def initialize(app, options_hash = {}, &block)
|
7
|
+
super
|
8
|
+
|
9
|
+
app.set(:blueprint_root, options_hash.fetch(:blueprint_root) { ENV['BLUEPRINT_ROOT'] || "./blueprint" })
|
10
|
+
|
11
|
+
# import the blueprint assets into the sprockets path
|
12
|
+
app.ready do
|
13
|
+
logger.info "== Adding blueprint assets to sprockets paths"
|
14
|
+
patterns = [
|
15
|
+
'.png', '.gif', '.jpg', '.jpeg', '.svg', # Images
|
16
|
+
'.eot', '.otf', '.svc', '.woff', '.ttf', # Fonts
|
17
|
+
'.js', # Javascript
|
18
|
+
].map { |e| File.join(blueprint.assets_path, "**", "*#{e}" ) }
|
19
|
+
|
20
|
+
sprockets.prepend_path(blueprint.assets_path)
|
21
|
+
|
22
|
+
patterns.map! {|p| Dir[p] }
|
23
|
+
patterns.flatten!
|
24
|
+
|
25
|
+
patterns.each do |f|
|
26
|
+
sprockets.import_asset(Pathname.new(f).relative_path_from(Pathname.new(blueprint.assets_path)))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
helpers do
|
32
|
+
def blueprint_model_groups
|
33
|
+
blueprint.model_classes.map {|m| m.name.to_s.pluralize }
|
34
|
+
end
|
35
|
+
|
36
|
+
def blueprint
|
37
|
+
return @blueprint if @blueprint && !development?
|
38
|
+
|
39
|
+
@blueprint = get_briefcase.tap do |b|
|
40
|
+
b.href_builder = ->(uri) {uri = uri.to_s; uri.gsub('brief://','').gsub(/\.\w+$/,'.html').gsub(b.docs_path.to_s,'') }
|
41
|
+
b.asset_finder = ->(asset) { needle = asset.relative_path_from(b.assets_path).to_s; image_path(needle) }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_briefcase
|
46
|
+
Brief::Briefcase.new(root: blueprint_root, caching: !development?)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end if defined?(::Middleman)
|
51
|
+
|
52
|
+
::Middleman::Extensions.register(:blueprint, Brief::Apps::Blueprint::MiddlemanExtension) if defined?(::Middleman)
|
data/brief.gemspec
CHANGED
@@ -41,6 +41,7 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_development_dependency "bundler", "~> 1.3"
|
42
42
|
spec.add_development_dependency "rake", "~> 0"
|
43
43
|
spec.add_development_dependency "pry", "~> 0.10"
|
44
|
+
spec.add_development_dependency "byebug", "~> 5.0.0"
|
44
45
|
spec.add_development_dependency "rspec", "~> 3.0"
|
45
46
|
spec.add_development_dependency "rack-test", "~> 0.6"
|
46
47
|
spec.add_development_dependency 'octokit', "~> 3.0"
|
data/lib/brief/cli/write.rb
CHANGED
@@ -12,17 +12,17 @@ command 'write' do |c|
|
|
12
12
|
|
13
13
|
model_class = briefcase.model_classes.find {|c| c.type_alias == type_alias }
|
14
14
|
|
15
|
-
if
|
16
|
-
content = ask_editor model_class.writing_prompt()
|
17
|
-
else
|
15
|
+
content = if model_class.nil?
|
18
16
|
model_class = briefcase.schema_map.fetch(type_alias, nil)
|
19
|
-
|
17
|
+
ask_editor(model_class.example)
|
18
|
+
else
|
19
|
+
ask_editor(model_class.new_doc_template)
|
20
20
|
end
|
21
21
|
|
22
22
|
raise "Inavlid model class. Run the schema command to see what is available." if model_class.nil?
|
23
23
|
|
24
24
|
|
25
|
-
file = ask("Enter a filename")
|
25
|
+
file = ask("Enter a filename: ") { |q| q.default = model_class.new_doc_name }
|
26
26
|
|
27
27
|
if file.to_s.length == 0
|
28
28
|
rand_token = rand(36**36).to_s(36).slice(0,3)
|
data/lib/brief/model.rb
CHANGED
@@ -319,10 +319,24 @@ module Brief
|
|
319
319
|
definition.send(:example_body, *args).to_s.strip
|
320
320
|
end
|
321
321
|
|
322
|
-
def
|
323
|
-
|
324
|
-
|
325
|
-
|
322
|
+
def new_doc_template(&block)
|
323
|
+
if block
|
324
|
+
definition.new_doc_template_block = block
|
325
|
+
elsif definition.new_doc_template_block
|
326
|
+
definition.new_doc_template_block.call
|
327
|
+
else
|
328
|
+
example_content
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
332
|
+
def new_doc_name(&block)
|
333
|
+
if block
|
334
|
+
definition.new_doc_name_block = block
|
335
|
+
elsif definition.new_doc_name_block
|
336
|
+
definition.new_doc_name_block.call
|
337
|
+
else
|
338
|
+
"#{ self.type_alias }-#{ DateTime.now.strftime("%Y-%m-%d") }.md"
|
339
|
+
end
|
326
340
|
end
|
327
341
|
|
328
342
|
def documentation(*args)
|
@@ -352,7 +366,7 @@ module Brief
|
|
352
366
|
# these methods have a special effect on the behavior of the
|
353
367
|
# model definition. we need to make sure we call finalize after
|
354
368
|
# them
|
355
|
-
if %w(meta content template example actions helpers
|
369
|
+
if %w(meta content template example actions helpers).include?(meth.to_s)
|
356
370
|
definition.send(meth, *args, &block)
|
357
371
|
finalize
|
358
372
|
elsif %w(defined_helper_methods defined_actions).include?(meth.to_s)
|
@@ -10,7 +10,8 @@ module Brief
|
|
10
10
|
:section_mappings,
|
11
11
|
:template_body,
|
12
12
|
:example_body,
|
13
|
-
:
|
13
|
+
:new_doc_name_block,
|
14
|
+
:new_doc_template_block,
|
14
15
|
:documentation_path,
|
15
16
|
:example_path,
|
16
17
|
:template_path
|
@@ -118,10 +119,6 @@ module Brief
|
|
118
119
|
end
|
119
120
|
end
|
120
121
|
|
121
|
-
def prompt(&block)
|
122
|
-
self._prompt = block
|
123
|
-
end
|
124
|
-
|
125
122
|
def has_actions?
|
126
123
|
self.defined_actions.empty?
|
127
124
|
end
|
data/lib/brief/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "The Page Document Type" do
|
4
|
+
let(:page) { Brief.page_document.model_class }
|
5
|
+
let(:concept) { Brief::Concept }
|
6
|
+
|
7
|
+
it "should have some example content" do
|
8
|
+
expect(page.example_content).not_to be_empty
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return the example because there's no new_doc_template defined" do
|
12
|
+
expect(page.new_doc_template).to eq page.example_content
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return whatever is defined in the new_doc_template dsl" do
|
16
|
+
expect(concept.new_doc_template).to eq "The concept new doc template"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the default document name because there's no new_doc_name defined" do
|
20
|
+
expect(page.new_doc_name).to eq "page-2015-06-17.md"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return the new document name if new_doc_name is defined" do
|
24
|
+
expect(concept.new_doc_name).to eq "somecustomname.md"
|
25
|
+
end
|
26
|
+
end
|
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.
|
4
|
+
version: 1.13.1
|
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-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -234,6 +234,20 @@ dependencies:
|
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0.10'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: byebug
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: 5.0.0
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: 5.0.0
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
252
|
name: rspec
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -328,6 +342,7 @@ files:
|
|
328
342
|
- apps/blueprint/examples/roadmap.md
|
329
343
|
- apps/blueprint/examples/sitemap.md
|
330
344
|
- apps/blueprint/examples/wireframe.md
|
345
|
+
- apps/blueprint/extensions/middleman.rb
|
331
346
|
- apps/blueprint/models/concept.rb
|
332
347
|
- apps/blueprint/models/diagram.rb
|
333
348
|
- apps/blueprint/models/epic.rb
|
@@ -443,9 +458,9 @@ files:
|
|
443
458
|
- spec/lib/brief/hashing_spec.rb
|
444
459
|
- spec/lib/brief/model_spec.rb
|
445
460
|
- spec/lib/brief/models/diagram_spec.rb
|
461
|
+
- spec/lib/brief/models/new_doc_content_spec.rb
|
446
462
|
- spec/lib/brief/models/page_spec.rb
|
447
463
|
- spec/lib/brief/models/release_spec.rb
|
448
|
-
- spec/lib/brief/models/writing_prompt_spec.rb
|
449
464
|
- spec/lib/brief/persistence_spec.rb
|
450
465
|
- spec/lib/brief/rendering_spec.rb
|
451
466
|
- spec/lib/brief/repository_spec.rb
|
@@ -541,9 +556,9 @@ test_files:
|
|
541
556
|
- spec/lib/brief/hashing_spec.rb
|
542
557
|
- spec/lib/brief/model_spec.rb
|
543
558
|
- spec/lib/brief/models/diagram_spec.rb
|
559
|
+
- spec/lib/brief/models/new_doc_content_spec.rb
|
544
560
|
- spec/lib/brief/models/page_spec.rb
|
545
561
|
- spec/lib/brief/models/release_spec.rb
|
546
|
-
- spec/lib/brief/models/writing_prompt_spec.rb
|
547
562
|
- spec/lib/brief/persistence_spec.rb
|
548
563
|
- spec/lib/brief/rendering_spec.rb
|
549
564
|
- spec/lib/brief/repository_spec.rb
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "The Page Document Type" do
|
4
|
-
let(:page) { Brief.page_document.model_class }
|
5
|
-
let(:concept) { Brief::Concept }
|
6
|
-
|
7
|
-
it "should have some example content" do
|
8
|
-
expect(page.example_content).not_to be_empty
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should return the example because there's no prompt defined" do
|
12
|
-
expect(page.writing_prompt).to eq page.example_content
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should return whatever is defined in the prompt dsl" do
|
16
|
-
expect(concept.writing_prompt).to eq "asdf"
|
17
|
-
end
|
18
|
-
end
|