brief 1.17.2 → 1.17.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/apps/blueprint/lib/release_publisher.rb +29 -0
- data/apps/blueprint/models/epic.rb +25 -1
- data/apps/blueprint/models/feature.rb +3 -2
- data/apps/blueprint/models/milestone.rb +3 -2
- data/apps/blueprint/models/project.rb +3 -2
- data/apps/blueprint/models/release.rb +15 -4
- data/bin/console +7 -0
- data/lib/brief.rb +1 -0
- data/lib/brief/document/source_map.rb +6 -2
- data/lib/brief/remote_syncing.rb +17 -0
- data/lib/brief/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 869f116db5c6d3962d442661a8294a6a0cc72a34
|
4
|
+
data.tar.gz: 5739fedaf7311d1f6556cc237f7b6913ec239a78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c16af6687a3757d490f03e827f339fc851d7c348a1a51e91ad4d94b1e4a085bda6ae013010edfaa28fdf14ce665d95e1a482a0ab41c2f1a25c8268291370bbc5
|
7
|
+
data.tar.gz: 8641c113916f0cc31aadf6bc550328cc50ee97d55e8854a866799254694651a8911f5070626ad3de7b36872db26605f5fad48c91c7446c21da30de58deaca244
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
class BlueprintReleasePublisher
|
2
|
+
def self.publish(epic, options={})
|
3
|
+
via = (options.fetch(:via, :github) || :github)
|
4
|
+
|
5
|
+
if respond_to?("publish_via_#{via}")
|
6
|
+
send("publish_via_#{via}", epic,options)
|
7
|
+
else
|
8
|
+
raise "Invalid publishing source. Need to implement publish_via_#{via} method"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.sync(epic, options={})
|
13
|
+
via = (options.fetch(:via, :github) || :github)
|
14
|
+
|
15
|
+
if respond_to?("sync_via_#{via}")
|
16
|
+
send("sync_via_#{via}", epic,options)
|
17
|
+
else
|
18
|
+
raise "Invalid syncing source. Need to implement sync_via_#{via} method"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.publish_via_pivotal(epic, options={})
|
23
|
+
raise "Not Implemented. Implement #{ name }.publish_via_pivotal"
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.publish_via_github(epic, options={})
|
27
|
+
raise "Not Implemented. Implement #{ name }.publish_via_github"
|
28
|
+
end
|
29
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Brief::Apps::Blueprint::Epic
|
2
2
|
include Brief::Model
|
3
|
+
include Brief::RemoteSyncing
|
3
4
|
|
4
5
|
defined_in Pathname(__FILE__)
|
5
6
|
|
@@ -61,6 +62,18 @@ class Brief::Apps::Blueprint::Epic
|
|
61
62
|
briefcase.features(project: project, epic: title)
|
62
63
|
end
|
63
64
|
|
65
|
+
def active?
|
66
|
+
status.to_s.downcase == "active"
|
67
|
+
end
|
68
|
+
|
69
|
+
def published?
|
70
|
+
status.to_s.downcase == "published"
|
71
|
+
end
|
72
|
+
|
73
|
+
def draft?
|
74
|
+
status.to_s.downcase == "draft" || status.to_s == ""
|
75
|
+
end
|
76
|
+
|
64
77
|
def parent_project
|
65
78
|
briefcase.projects(project: project).first
|
66
79
|
end
|
@@ -80,13 +93,24 @@ class Brief::Apps::Blueprint::Epic
|
|
80
93
|
end
|
81
94
|
end
|
82
95
|
|
96
|
+
def generate_feature(feature_heading)
|
97
|
+
path = feature_file_for(feature_heading)
|
98
|
+
FileUtils.mkdir_p(path.dirname)
|
99
|
+
|
100
|
+
c = generate_feature_content(c)
|
101
|
+
|
102
|
+
path.open("w+") do |fh|
|
103
|
+
fh.write(c)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
83
107
|
def generate_feature_content(feature_heading)
|
84
108
|
if feature_file_for(feature_heading).exist?
|
85
109
|
return feature_file_for(feature_heading).read
|
86
110
|
end
|
87
111
|
|
88
112
|
data = {
|
89
|
-
status:
|
113
|
+
status: status,
|
90
114
|
project: project,
|
91
115
|
epic: title,
|
92
116
|
title: feature_heading
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Brief::Apps::Blueprint::Feature
|
2
2
|
include Brief::Model
|
3
|
+
include Brief::RemoteSyncing
|
3
4
|
|
4
5
|
defined_in Pathname(__FILE__)
|
5
6
|
|
@@ -27,11 +28,11 @@ class Brief::Apps::Blueprint::Feature
|
|
27
28
|
|
28
29
|
actions do
|
29
30
|
def publish
|
30
|
-
|
31
|
+
publish_service.publish(self, via: briefcase.settings.try(:tracking_system))
|
31
32
|
end
|
32
33
|
|
33
34
|
def sync
|
34
|
-
|
35
|
+
sync_service.sync(self, via: briefcase.settings.try(:tracking_system))
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Brief::Apps::Blueprint::Milestone
|
2
2
|
include Brief::Model
|
3
|
+
include Brief::RemoteSyncing
|
3
4
|
|
4
5
|
defined_in Pathname(__FILE__)
|
5
6
|
|
@@ -21,11 +22,11 @@ class Brief::Apps::Blueprint::Milestone
|
|
21
22
|
|
22
23
|
actions do
|
23
24
|
def publish
|
24
|
-
|
25
|
+
publish_service.publish(self, via: briefcase.settings.try(:tracking_system))
|
25
26
|
end
|
26
27
|
|
27
28
|
def sync
|
28
|
-
|
29
|
+
sync_service.sync(self, via: briefcase.settings.try(:tracking_system))
|
29
30
|
end
|
30
31
|
end
|
31
32
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Brief::Apps::Blueprint::Project
|
2
2
|
include Brief::Model
|
3
|
+
include Brief::RemoteSyncing
|
3
4
|
|
4
5
|
defined_in Pathname(__FILE__)
|
5
6
|
|
@@ -18,11 +19,11 @@ class Brief::Apps::Blueprint::Project
|
|
18
19
|
|
19
20
|
actions do
|
20
21
|
def publish
|
21
|
-
|
22
|
+
publish_service.publish(self, via: briefcase.settings.try(:tracking_system))
|
22
23
|
end
|
23
24
|
|
24
25
|
def sync
|
25
|
-
|
26
|
+
sync_service.sync(self, via: briefcase.settings.try(:tracking_system))
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
class Brief::Apps::Blueprint::Release
|
2
2
|
include Brief::Model
|
3
|
+
include Brief::RemoteSyncing
|
3
4
|
|
4
5
|
defined_in Pathname(__FILE__)
|
5
6
|
|
6
7
|
meta do
|
7
8
|
title
|
8
9
|
status
|
9
|
-
personas
|
10
10
|
project
|
11
|
+
remote_id
|
11
12
|
tags Array
|
12
|
-
projects Array
|
13
13
|
end
|
14
14
|
|
15
15
|
content do
|
@@ -17,8 +17,8 @@ class Brief::Apps::Blueprint::Release
|
|
17
17
|
paragraphs "p"
|
18
18
|
|
19
19
|
title "h1:first-of-type", :hide => true
|
20
|
-
|
21
|
-
|
20
|
+
|
21
|
+
settings "pre[lang='yaml'] code:first-of-type", :serialize => :yaml, :hide => true
|
22
22
|
|
23
23
|
define_section "Features" do
|
24
24
|
each("h2").has(:title => "h2",
|
@@ -27,4 +27,15 @@ class Brief::Apps::Blueprint::Release
|
|
27
27
|
)
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
actions do
|
32
|
+
def publish
|
33
|
+
publish_service.publish(self, via: briefcase.settings.try(:tracking_system))
|
34
|
+
end
|
35
|
+
|
36
|
+
def sync
|
37
|
+
sync_service.sync(self, via: briefcase.settings.try(:tracking_system))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
30
41
|
end
|
data/bin/console
ADDED
data/lib/brief.rb
CHANGED
@@ -31,7 +31,7 @@ module Brief::Document::SourceMap
|
|
31
31
|
superior && superior.element
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
34
|
+
def line_numbers_for_heading(heading_element, include_heading=true)
|
35
35
|
if heading_element.is_a?(String) && heading_element.length > 1
|
36
36
|
heading_element = heading_element_tags.find do |el|
|
37
37
|
el.attr('data-heading').include?(heading_element.strip.downcase) || el.text.to_s.strip.downcase.include?(heading_element.strip.downcase)
|
@@ -53,8 +53,12 @@ module Brief::Document::SourceMap
|
|
53
53
|
end_index = end_index - start_index
|
54
54
|
start_index = 0 if start_index < 0
|
55
55
|
|
56
|
-
|
56
|
+
[start_index, end_index]
|
57
|
+
end
|
57
58
|
|
59
|
+
def content_under_heading(heading_element, include_heading=true)
|
60
|
+
start_index, end_index = line_numbers_for_heading(heading_element, include_heading)
|
61
|
+
lines = raw_content.lines.dup.slice(start_index - 1, end_index)
|
58
62
|
Array(include_heading ? lines : lines.slice(1, lines.length)).join("")
|
59
63
|
end
|
60
64
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Brief::RemoteSyncing
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
def publish_service
|
5
|
+
case
|
6
|
+
when briefcase && briefcase.uses_app?
|
7
|
+
[briefcase.app, self.class.name.to_s.split('::').last, 'publisher'].join("_").camelize.constantize
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def sync_service
|
12
|
+
case
|
13
|
+
when briefcase && briefcase.uses_app?
|
14
|
+
[briefcase.app, self.class.name.to_s.split('::').last, 'publisher'].join("_").camelize.constantize
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/brief/version.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.17.
|
4
|
+
version: 1.17.3
|
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-07-
|
11
|
+
date: 2015-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -296,6 +296,7 @@ email:
|
|
296
296
|
- jonathan.soeder@gmail.com
|
297
297
|
executables:
|
298
298
|
- brief
|
299
|
+
- console
|
299
300
|
extensions: []
|
300
301
|
extra_rdoc_files: []
|
301
302
|
files:
|
@@ -347,6 +348,7 @@ files:
|
|
347
348
|
- apps/blueprint/lib/feature_publisher.rb
|
348
349
|
- apps/blueprint/lib/milestone_publisher.rb
|
349
350
|
- apps/blueprint/lib/project_publisher.rb
|
351
|
+
- apps/blueprint/lib/release_publisher.rb
|
350
352
|
- apps/blueprint/models/concept.rb
|
351
353
|
- apps/blueprint/models/diagram.rb
|
352
354
|
- apps/blueprint/models/epic.rb
|
@@ -368,6 +370,7 @@ files:
|
|
368
370
|
- apps/blueprint/templates/persona.md.erb
|
369
371
|
- apps/blueprint/templates/user_story.md.erb
|
370
372
|
- bin/brief
|
373
|
+
- bin/console
|
371
374
|
- brief.gemspec
|
372
375
|
- examples/blog/brief.rb
|
373
376
|
- examples/blog/docs/posts/this-is-my-first-post.md
|
@@ -412,6 +415,7 @@ files:
|
|
412
415
|
- lib/brief/model/persistence.rb
|
413
416
|
- lib/brief/model/reports.rb
|
414
417
|
- lib/brief/model/serializers.rb
|
418
|
+
- lib/brief/remote_syncing.rb
|
415
419
|
- lib/brief/repository.rb
|
416
420
|
- lib/brief/server.rb
|
417
421
|
- lib/brief/server/gateway.rb
|