brief 1.9.8 → 1.9.9
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/.ruby-version +1 -0
- data/Gemfile.lock +4 -4
- data/REFACTOR.md +4 -0
- data/Rakefile +0 -5
- data/bin/brief +2 -0
- data/lib/brief/briefcase.rb +11 -2
- data/lib/brief/cli/export.rb +0 -13
- data/lib/brief/cli/server.rb +9 -16
- data/lib/brief/document.rb +1 -1
- data/lib/brief/server/socket.rb +122 -0
- data/lib/brief/version.rb +1 -1
- data/lib/brief.rb +11 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e5778cd99dfcb00c4420b4fedfb0e4e69b61d0b
|
4
|
+
data.tar.gz: 1c551d49bf311134309dcff740d1492200deeea2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d23643282699bf917fb20805a229e82138abe51babef4454e137f90802ef3786d4d6b8ff61661a77b368a363fbf5b21d6871002e76d7b479458409111b7a4edd
|
7
|
+
data.tar.gz: 861e4cc4df911860dcc481bd3e25d208f815f3f3ce078d05ae515e0d07408c71559c309d6cfb69cb898b613b150a2fd2fe18f4c7b3574bb495be70ec575e9808
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.0
|
data/Gemfile.lock
CHANGED
@@ -32,8 +32,8 @@ GEM
|
|
32
32
|
coderay (1.1.0)
|
33
33
|
coercible (1.0.0)
|
34
34
|
descendants_tracker (~> 0.0.1)
|
35
|
-
commander (4.3.
|
36
|
-
highline (~> 1.7.
|
35
|
+
commander (4.3.3)
|
36
|
+
highline (~> 1.7.2)
|
37
37
|
daemons (1.2.2)
|
38
38
|
descendants_tracker (0.0.4)
|
39
39
|
thread_safe (~> 0.3, >= 0.3.1)
|
@@ -51,7 +51,7 @@ GEM
|
|
51
51
|
rack
|
52
52
|
github-markdown (0.6.8)
|
53
53
|
hashie (2.1.2)
|
54
|
-
highline (1.7.
|
54
|
+
highline (1.7.2)
|
55
55
|
hike (2.1.3)
|
56
56
|
http_parser.rb (0.6.0)
|
57
57
|
i18n (0.7.0)
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
json (1.8.2)
|
61
61
|
method_source (0.8.2)
|
62
62
|
mini_portile (0.6.2)
|
63
|
-
minitest (5.
|
63
|
+
minitest (5.6.1)
|
64
64
|
multipart-post (2.0.0)
|
65
65
|
nokogiri (1.6.5)
|
66
66
|
mini_portile (~> 0.6.0)
|
data/REFACTOR.md
ADDED
data/Rakefile
CHANGED
@@ -2,9 +2,6 @@ Dir[File.join(Dir.pwd, 'tasks', '**', '*.rb')].each { |f| require f }
|
|
2
2
|
Dir[File.join(Dir.pwd, 'tasks', '*.rake')].each { |f| load f }
|
3
3
|
|
4
4
|
require "bundler/gem_tasks"
|
5
|
-
require 'rspec/core/rake_task'
|
6
|
-
|
7
|
-
RSpec::Core::RakeTask.new(:spec)
|
8
5
|
|
9
6
|
Distribution.configure do |config|
|
10
7
|
config.package_name = 'brief'
|
@@ -24,5 +21,3 @@ Distribution.configure do |config|
|
|
24
21
|
'unf_ext-0.0.6'
|
25
22
|
]
|
26
23
|
end
|
27
|
-
|
28
|
-
task :default => :spec
|
data/bin/brief
CHANGED
data/lib/brief/briefcase.rb
CHANGED
@@ -58,7 +58,12 @@ module Brief
|
|
58
58
|
key: folder_name.to_s.parameterize,
|
59
59
|
name: folder_name.to_s.titlecase,
|
60
60
|
settings: settings,
|
61
|
-
cache_key: cache_key
|
61
|
+
cache_key: cache_key,
|
62
|
+
root: root.to_s,
|
63
|
+
docs_path: docs_path.to_s,
|
64
|
+
assets_path: assets_path.to_s,
|
65
|
+
models_path: models_path.to_s,
|
66
|
+
data_path: data_path.to_s
|
62
67
|
}
|
63
68
|
|
64
69
|
if params[:include_data] || params[:data]
|
@@ -87,7 +92,11 @@ module Brief
|
|
87
92
|
end
|
88
93
|
|
89
94
|
def as_full_export(options={})
|
90
|
-
options.reverse_merge!(content: true,
|
95
|
+
options.reverse_merge!(content: true,
|
96
|
+
rendered: true,
|
97
|
+
models: true,
|
98
|
+
schema: true,
|
99
|
+
attachments: true)
|
91
100
|
as_default(options)
|
92
101
|
end
|
93
102
|
|
data/lib/brief/cli/export.rb
CHANGED
@@ -34,19 +34,6 @@ command 'dispatch export' do |c|
|
|
34
34
|
data: options.include_data,
|
35
35
|
attachments: options.include_attachments,
|
36
36
|
models: options.include_models).as_json
|
37
|
-
|
38
|
-
case
|
39
|
-
when options.output && options.format.to_sym == :json
|
40
|
-
Pathname(options.output).open("w+") do |fh|
|
41
|
-
fh.write("#{options.prefix_output}#{result.to_json}")
|
42
|
-
end
|
43
|
-
when options.format.to_sym == :json
|
44
|
-
puts "#{options.prefix_output}#{result.to_json}"
|
45
|
-
when options.format.to_sym == :printed
|
46
|
-
puts result
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
37
|
end
|
51
38
|
end
|
52
39
|
|
data/lib/brief/cli/server.rb
CHANGED
@@ -12,27 +12,20 @@ command 'start gateway server' do |c|
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
command 'start
|
16
|
-
c.option '--host HOSTNAME', String, 'What hostname to listen on'
|
15
|
+
command 'start socket server' do |c|
|
17
16
|
c.option '--port PORT', String, 'What port to listen on'
|
18
|
-
c.option '--gateway', 'Create a gateway instead of a briefcase'
|
19
17
|
|
20
18
|
c.action do |args, options|
|
21
|
-
options.default(root: Brief.pwd)
|
19
|
+
options.default(root: Brief.pwd, port: 5054)
|
22
20
|
|
23
|
-
require '
|
21
|
+
require 'brief/server/socket'
|
22
|
+
require 'em-websocket'
|
24
23
|
|
25
|
-
root = Pathname(options.root)
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
puts "== starting distributed service"
|
34
|
-
DRb.start_service "druby://:#{ options.port || 9000 }", object
|
35
|
-
trap("INT") { DRb.stop_service }
|
36
|
-
DRb.thread.join()
|
25
|
+
EM.run {
|
26
|
+
EM::WebSocket.run(:host=>"0.0.0.0",:port => 8089) do |ws|
|
27
|
+
Brief::Server::Socket.new(root: options.root, websocket: ws)
|
28
|
+
end
|
29
|
+
}
|
37
30
|
end
|
38
31
|
end
|
data/lib/brief/document.rb
CHANGED
@@ -0,0 +1,122 @@
|
|
1
|
+
module Brief class Server
|
2
|
+
class Socket
|
3
|
+
attr_reader :briefcases, :root, :websocket
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@root = Pathname(options.fetch(:root))
|
7
|
+
@websocket = options.fetch(:websocket)
|
8
|
+
@briefcases = {}.to_mash
|
9
|
+
@briefcase_options = options.fetch(:briefcase_options, {})
|
10
|
+
load_briefcases
|
11
|
+
setup_interface
|
12
|
+
end
|
13
|
+
|
14
|
+
def process(message={})
|
15
|
+
message.symbolize_keys!
|
16
|
+
|
17
|
+
action = message.fetch(:action)
|
18
|
+
message_id = message.fetch(:message_id)
|
19
|
+
|
20
|
+
case
|
21
|
+
|
22
|
+
when action == "brief:info"
|
23
|
+
respond_to(message_id) do
|
24
|
+
{
|
25
|
+
environment: Brief.environment_info,
|
26
|
+
root: root.to_s,
|
27
|
+
briefcases: briefcases.keys
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
when action == "list:briefcases"
|
32
|
+
presenter = message.fetch(:presenter, 'default')
|
33
|
+
options = message.fetch(:options, {})
|
34
|
+
|
35
|
+
respond_to(message_id) do
|
36
|
+
briefcases.values.map do |bc|
|
37
|
+
bc.present(presenter, options)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
when action == "view:briefcase"
|
42
|
+
presenter = message.fetch(:presenter, 'default')
|
43
|
+
options = message.fetch(:options, {})
|
44
|
+
briefcase = briefcases.fetch(message[:briefcase])
|
45
|
+
|
46
|
+
respond_to(message_id) do
|
47
|
+
briefcase.present(presenter.to_sym, options)
|
48
|
+
end
|
49
|
+
|
50
|
+
when action == "view:document"
|
51
|
+
options = message.fetch(:options, {})
|
52
|
+
path = message.fetch(:path)
|
53
|
+
briefcase = briefcases.fetch(message[:briefcase])
|
54
|
+
|
55
|
+
respond_to(message_id) do
|
56
|
+
document = briefcase.document_at(path)
|
57
|
+
document.to_model.as_json(options)
|
58
|
+
end
|
59
|
+
|
60
|
+
when action == "query"
|
61
|
+
params = message.fetch(:params, {})
|
62
|
+
model_options = message.fetch(:model_options, {})
|
63
|
+
briefcase = briefcases.fetch(message[:briefcase])
|
64
|
+
|
65
|
+
respond_to(message_id) do
|
66
|
+
briefcase.where(params).all.map do |model|
|
67
|
+
model.as_json(model_options)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
else
|
72
|
+
respond_to(message_id) do
|
73
|
+
{error:"Invalid Action: #{ action }"}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
rescue
|
77
|
+
nil
|
78
|
+
end
|
79
|
+
|
80
|
+
def respond_to(message_id, &block)
|
81
|
+
body = block.call()
|
82
|
+
|
83
|
+
payload = {
|
84
|
+
action: "response",
|
85
|
+
message_id: message_id,
|
86
|
+
body: body
|
87
|
+
}
|
88
|
+
|
89
|
+
websocket.send(payload.to_json)
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def setup_interface
|
95
|
+
socket = self
|
96
|
+
|
97
|
+
websocket.onmessage do |raw|
|
98
|
+
message = (JSON.parse(raw) rescue nil)
|
99
|
+
|
100
|
+
puts "== Received Message: #{message}"
|
101
|
+
socket.process(message)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def briefcase_options
|
106
|
+
(@briefcase_options || {})
|
107
|
+
end
|
108
|
+
|
109
|
+
def load_briefcases
|
110
|
+
config_path = briefcase_options.fetch(:config_path, "brief.rb")
|
111
|
+
|
112
|
+
root.children.select(&:directory?).each do |dir|
|
113
|
+
if dir.join(config_path).exist?
|
114
|
+
slug = dir.basename.to_s.parameterize
|
115
|
+
@briefcases[slug] ||= Brief::Briefcase.new(briefcase_options.merge(root: dir))
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
data/lib/brief/version.rb
CHANGED
data/lib/brief.rb
CHANGED
@@ -43,6 +43,17 @@ module Brief
|
|
43
43
|
@views ||= {}
|
44
44
|
end
|
45
45
|
|
46
|
+
def self.environment_info
|
47
|
+
{
|
48
|
+
VERSION: Brief::VERSION,
|
49
|
+
lib_root: Brief.lib_root.to_s,
|
50
|
+
apps: {
|
51
|
+
search_paths: Brief::Apps.search_paths.map(&:to_s),
|
52
|
+
available: Brief::Apps.available_apps
|
53
|
+
}
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
46
57
|
def self.configuration
|
47
58
|
Brief::Configuration.instance
|
48
59
|
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.9.
|
4
|
+
version: 1.9.9
|
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-
|
11
|
+
date: 2015-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -278,12 +278,14 @@ extensions: []
|
|
278
278
|
extra_rdoc_files: []
|
279
279
|
files:
|
280
280
|
- ".gitignore"
|
281
|
+
- ".ruby-version"
|
281
282
|
- ".travis.yml"
|
282
283
|
- CHANGELOG.md
|
283
284
|
- Gemfile
|
284
285
|
- Gemfile.lock
|
285
286
|
- LICENSE.txt
|
286
287
|
- README.md
|
288
|
+
- REFACTOR.md
|
287
289
|
- Rakefile
|
288
290
|
- TUTORIAL.md
|
289
291
|
- apps/blueprint/config.rb
|
@@ -353,6 +355,7 @@ files:
|
|
353
355
|
- lib/brief/server/handlers/schema.rb
|
354
356
|
- lib/brief/server/handlers/show.rb
|
355
357
|
- lib/brief/server/route.rb
|
358
|
+
- lib/brief/server/socket.rb
|
356
359
|
- lib/brief/util.rb
|
357
360
|
- lib/brief/version.rb
|
358
361
|
- packaging/wrapper.sh
|
@@ -446,7 +449,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
449
|
version: '0'
|
447
450
|
requirements: []
|
448
451
|
rubyforge_project:
|
449
|
-
rubygems_version: 2.
|
452
|
+
rubygems_version: 2.4.5
|
450
453
|
signing_key:
|
451
454
|
specification_version: 4
|
452
455
|
summary: Brief makes writing more powerful
|