brief 1.8.9 → 1.8.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a484edd990ccdaccca0c8201753df122e82eab84
4
- data.tar.gz: 60bc3d3723f7d4dc49522c5e352e88b2c2be79b6
3
+ metadata.gz: 354726bac606b40861cd06b0779dcbb67e3b2dd6
4
+ data.tar.gz: 4205421b4c7895d29b2f1b3a61f57f81f027a53f
5
5
  SHA512:
6
- metadata.gz: 46cb550a2976804dab2c33ee447e2586d1f7a1db44d23e5a5842a6cefc05157ad0bb2a8302b65c37a3f1f00242f66e67ecf3d34d16b92af59cee21f03ce2fcfe
7
- data.tar.gz: 3c2a1b3540f5a22294ba836495188c0c7ad748c211155bdd05668148afa3a631e85aec3d840d127be65721b3f89ddf8c16d1869e9143a6739e35bef4fd899ce8
6
+ metadata.gz: 8cdd687ca3f932b1a92010af31ed105a3043daa41a7314e12aa72b8269aa239726f7f941c96a6524eca1a8835ab7b100beead97e38b2954ad0e0be800372de54
7
+ data.tar.gz: 6d8c68666bcaf5fd61bc7b11d6a7ed1e481cb5b7071bb71e63c2546ebfa4af2769e4822435233e6efea01cca340d3b085d10105ff1ce7c5934055e9bf526b5c7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brief (1.8.8)
4
+ brief (1.8.9)
5
5
  activemodel
6
6
  activesupport (>= 4.0)
7
7
  commander (>= 4.2.1)
@@ -68,10 +68,7 @@ module Brief
68
68
 
69
69
  all = all_models.compact
70
70
 
71
- schema = all.map(&:class).uniq.compact
72
- .map(&:to_schema)
73
- .reduce({}) {|m, k| m[k[:type_alias]] = k; m }
74
-
71
+ schema = schema_map
75
72
  models = all.map {|m| m.as_json(model_settings) }
76
73
 
77
74
  {
@@ -97,6 +94,12 @@ module Brief
97
94
  run(app_config_path) if app_path.try(&:exist?)
98
95
  end
99
96
 
97
+ def schema_map(include_all=false)
98
+ list = include_all ? Brief::Model.classes : model_classes
99
+ list.map(&:to_schema)
100
+ .reduce({}) {|m, k| m[k[:type_alias]] = k; m }
101
+ end
102
+
100
103
  def data
101
104
  @data ||= data!
102
105
  end
@@ -0,0 +1,16 @@
1
+ module Brief
2
+ def self.cli_action(c, &block)
3
+ c.action do |args, options|
4
+ options.default(root: Brief.pwd)
5
+
6
+ Brief.case = Brief::Briefcase.new(root: Pathname(options.root))
7
+
8
+ block.call(args, options)
9
+ end
10
+ end
11
+
12
+ def self.default_cli_options(c)
13
+ c.option '--root DIRECTORY', String, 'The root for the briefcase'
14
+ c.option '--config FILE', String, 'Path to the config file for this briefcase'
15
+ end
16
+ end
data/lib/brief/cli/all.rb CHANGED
@@ -57,13 +57,25 @@ command 'info' do |c|
57
57
  c.syntax = 'brief info'
58
58
  c.description = 'View info about the brief environment'
59
59
 
60
+ c.option '--print', 'Print output to the terminal'
61
+
60
62
  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 }"
63
+ if options.print
64
+ # traveling ruby is reporting this incorrectly
65
+ puts "\n-- Paths:"
66
+ puts "Dir.pwd = #{ Dir.pwd }"
67
+ puts "Brief.pwd = #{ Brief.pwd }"
68
+
69
+ puts "\n-- Available apps:"
70
+ puts Brief::Apps.available_apps.join("\n")
71
+ else
72
+ json = {
73
+ version: Brief::VERSION,
74
+ available_apps: Brief::Apps.available_apps,
75
+ pwd: Brief.pwd
76
+ }.to_json
65
77
 
66
- puts "\n-- Available apps:"
67
- puts Brief::Apps.available_apps.join("\n")
78
+ puts json
79
+ end
68
80
  end
69
81
  end
@@ -7,6 +7,8 @@ command 'render' do |c|
7
7
  c.option '--app APP', String, 'Use the specified app to get our models etc'
8
8
  c.option '--config PATH', String, 'Use the specified config file'
9
9
  c.option '--include-raw', nil, 'Whether or not to include the raw content'
10
+ c.option '--type STRING', String, 'What type of document should this be?'
11
+ c.option '--all', 'Render all of the things'
10
12
 
11
13
  c.action do |args, options|
12
14
  options.default(root: Pathname(Brief.pwd))
@@ -22,10 +24,12 @@ command 'render' do |c|
22
24
 
23
25
  index = 0
24
26
 
25
- rendered = if args.empty?
27
+ rendered = if options.all
26
28
  briefcase.all_models.map do |model|
27
29
  model.document.to_html(script: true, content: !!(options.include_raw), skip_preamble: (index += 1) > 1)
28
30
  end
31
+ elsif args.empty? && stdin = STDIN.read
32
+ stdin
29
33
  else
30
34
  args.map do |a|
31
35
  Dir[briefcase.root.join(a)].map do |f|
@@ -0,0 +1,29 @@
1
+ command 'schema' do |c|
2
+ c.syntax = "brief schema"
3
+ c.description = "view information about the schema"
4
+
5
+ Brief.default_cli_options(c)
6
+
7
+ c.option '--output FILE', String, 'Output the contents to the specified file'
8
+ c.option '--all-models', 'Include all models, not just those that have documents'
9
+ c.option '--list-types', 'Only list the types'
10
+
11
+ Brief.cli_action(c) do |args, options|
12
+ schema_map = Brief.case.schema_map(options.all_models)
13
+
14
+ output = if args.empty?
15
+ schema_map.to_json
16
+ else
17
+ detail = schema_map.fetch(args.first.downcase, nil)
18
+ detail.to_json if detail
19
+ end
20
+
21
+ if options.output
22
+ Pathname(options.output).open "w+" do |fh|
23
+ fh.write(output.chomp)
24
+ end
25
+ else
26
+ puts output
27
+ end
28
+ end
29
+ end
@@ -114,6 +114,10 @@ module Brief
114
114
  Dir[docs_path.join('**/*.md').to_s].map { |p| Pathname(p) }
115
115
  end
116
116
 
117
+ def model_classes
118
+ all_models.compact.map(&:class).uniq
119
+ end
120
+
117
121
  def all_models
118
122
  @all_models ||= begin
119
123
  list = documents.select(&:refresh!).map(&:to_model)
data/lib/brief/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Brief
2
- VERSION = '1.8.9'
2
+ VERSION = '1.8.10'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brief
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.9
4
+ version: 1.8.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Soeder
@@ -278,10 +278,12 @@ files:
278
278
  - lib/brief/apps.rb
279
279
  - lib/brief/briefcase.rb
280
280
  - lib/brief/briefcase/initializer.rb
281
+ - lib/brief/cli/01_extensions.rb
281
282
  - lib/brief/cli/all.rb
282
283
  - lib/brief/cli/export.rb
283
284
  - lib/brief/cli/parse.rb
284
285
  - lib/brief/cli/render.rb
286
+ - lib/brief/cli/schema.rb
285
287
  - lib/brief/cli/write.rb
286
288
  - lib/brief/configuration.rb
287
289
  - lib/brief/core_ext.rb