brief 1.12.9 → 1.13.1
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/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
|