locomotivecms_steam 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +19 -30
- data/bin/publish +8 -8
- data/example/server.rb +27 -0
- data/lib/locomotive/steam/exceptions.rb +2 -2
- data/lib/locomotive/steam/initializers.rb +6 -4
- data/lib/locomotive/steam/initializers/dragonfly.rb +19 -0
- data/lib/locomotive/steam/initializers/sprockets.rb +1 -0
- data/lib/locomotive/steam/liquid.rb +1 -1
- data/lib/locomotive/steam/liquid/filters/resize.rb +2 -1
- data/lib/locomotive/steam/liquid/scopeable.rb +2 -2
- data/lib/locomotive/steam/liquid/tags/consume.rb +6 -1
- data/lib/locomotive/steam/liquid/tags/editable/short_text.rb +1 -1
- data/lib/locomotive/steam/liquid/tags/snippet.rb +1 -1
- data/lib/locomotive/steam/middlewares.rb +15 -0
- data/lib/locomotive/steam/{server/middleware.rb → middlewares/base.rb} +13 -11
- data/lib/locomotive/steam/middlewares/dynamic_assets.rb +40 -0
- data/lib/locomotive/steam/{server → middlewares}/entry_submission.rb +4 -4
- data/lib/locomotive/steam/{server → middlewares}/favicon.rb +2 -3
- data/lib/locomotive/steam/{server → middlewares}/locale.rb +4 -4
- data/lib/locomotive/steam/{server → middlewares}/logging.rb +2 -2
- data/lib/locomotive/steam/{server → middlewares}/page.rb +4 -6
- data/lib/locomotive/steam/{server → middlewares}/path.rb +4 -4
- data/lib/locomotive/steam/{server → middlewares}/renderer.rb +6 -5
- data/lib/locomotive/steam/middlewares/stack.rb +66 -0
- data/lib/locomotive/steam/middlewares/static_assets.rb +25 -0
- data/lib/locomotive/steam/{server → middlewares}/templatized_page.rb +4 -4
- data/lib/locomotive/steam/{server → middlewares}/timezone.rb +4 -4
- data/lib/locomotive/steam/misc.rb +10 -0
- data/lib/locomotive/steam/monkey_patches.rb +3 -4
- data/lib/locomotive/steam/monkey_patches/haml.rb +3 -1
- data/lib/locomotive/steam/monkey_patches/mounter.rb +22 -0
- data/lib/locomotive/steam/server.rb +33 -58
- data/lib/locomotive/steam/services.rb +1 -0
- data/lib/locomotive/steam/services/dragonfly.rb +49 -0
- data/lib/locomotive/steam/{monkey_patches/httparty.rb → services/external_api.rb} +6 -6
- data/lib/locomotive/steam/services/markdown.rb +29 -0
- data/lib/locomotive/steam/standalone_server.rb +9 -12
- data/lib/locomotive/steam/version.rb +1 -1
- data/lib/steam.rb +0 -1
- data/locomotivecms_steam.gemspec +8 -9
- data/spec/integration/integration_helper.rb +2 -13
- data/spec/integration/server/basic_spec.rb +0 -6
- data/spec/integration/server/contact_form_spec.rb +0 -4
- data/spec/integration/server/liquid_spec.rb +0 -4
- data/spec/integration/server/with_scope_spec.rb +0 -4
- data/spec/spec_helper.rb +1 -0
- data/spec/support/helpers.rb +13 -4
- metadata +47 -57
- data/lib/locomotive/steam/initializers/markdown.rb +0 -27
- data/lib/locomotive/steam/initializers/will_paginate.rb +0 -16
- data/lib/locomotive/steam/listen.rb +0 -64
- data/lib/locomotive/steam/logger.rb +0 -54
- data/lib/locomotive/steam/monkey_patches/better_errors.rb +0 -70
- data/lib/locomotive/steam/monkey_patches/dragonfly.rb +0 -79
- data/lib/locomotive/steam/server/dynamic_assets.rb +0 -33
@@ -0,0 +1 @@
|
|
1
|
+
Dir[File.join(File.dirname(__FILE__), 'services', '*.rb')].each { |lib| require lib }
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Locomotive
|
2
|
+
module Steam
|
3
|
+
module Services
|
4
|
+
class Dragonfly
|
5
|
+
|
6
|
+
attr_reader :path
|
7
|
+
|
8
|
+
def initialize(path = nil)
|
9
|
+
@path = path
|
10
|
+
end
|
11
|
+
|
12
|
+
def enabled?
|
13
|
+
!!self.enabled
|
14
|
+
end
|
15
|
+
|
16
|
+
def resize_url(source, resize_string)
|
17
|
+
image = (case url_or_path = get_url_or_path(source)
|
18
|
+
when '', nil
|
19
|
+
Locomotive::Common::Logger.error "Unable to resize on the fly: #{source.inspect}"
|
20
|
+
nil
|
21
|
+
when /^http:\/\//
|
22
|
+
app.fetch_url(url_or_path)
|
23
|
+
else
|
24
|
+
app.fetch_file(File.join([self.path, 'public', url_or_path].compact))
|
25
|
+
end)
|
26
|
+
|
27
|
+
# apply the conversion if possible
|
28
|
+
image ? image.thumb(resize_string).url : source
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.app
|
32
|
+
::Dragonfly.app
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def get_url_or_path(source)
|
38
|
+
case source
|
39
|
+
when String then source.strip
|
40
|
+
when Hash then source['url'] || source[:url]
|
41
|
+
else
|
42
|
+
source.try(:url)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -2,12 +2,12 @@ require 'uri'
|
|
2
2
|
|
3
3
|
module Locomotive
|
4
4
|
module Steam
|
5
|
-
module
|
6
|
-
class
|
5
|
+
module Services
|
6
|
+
class ExternalAPI
|
7
7
|
|
8
8
|
include ::HTTParty
|
9
9
|
|
10
|
-
def
|
10
|
+
def consume(url, options = {})
|
11
11
|
url = ::HTTParty.normalize_base_uri(url)
|
12
12
|
|
13
13
|
uri = URI.parse(url)
|
@@ -22,9 +22,9 @@ module Locomotive
|
|
22
22
|
|
23
23
|
path ||= '/'
|
24
24
|
|
25
|
-
# Locomotive::
|
25
|
+
# Locomotive::Common::Logger.debug "[WebService] consuming #{path}, #{options.inspect}"
|
26
26
|
|
27
|
-
response = self.get(path, options)
|
27
|
+
response = self.class.get(path, options)
|
28
28
|
|
29
29
|
if response.code == 200
|
30
30
|
_response = response.parsed_response
|
@@ -34,7 +34,7 @@ module Locomotive
|
|
34
34
|
_response.collect(&:underscore_keys)
|
35
35
|
end
|
36
36
|
else
|
37
|
-
Locomotive::
|
37
|
+
Locomotive::Common::Logger.error "[WebService] consumed #{path}, #{options.inspect}, response = #{response.inspect}"
|
38
38
|
nil
|
39
39
|
end
|
40
40
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'redcarpet'
|
2
|
+
|
3
|
+
module Locomotive
|
4
|
+
module Steam
|
5
|
+
module Services
|
6
|
+
class Markdown
|
7
|
+
|
8
|
+
def render(text)
|
9
|
+
self.class.parser.render(text)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.parser
|
13
|
+
@@markdown ||= Redcarpet::Markdown.new Redcarpet::Steam::HTML, {
|
14
|
+
autolink: true,
|
15
|
+
fenced_code: true,
|
16
|
+
generate_toc: true,
|
17
|
+
gh_blockcode: true,
|
18
|
+
hard_wrap: true,
|
19
|
+
no_intraemphasis: true,
|
20
|
+
strikethrough: true,
|
21
|
+
tables: true,
|
22
|
+
xhtml: true
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
2
3
|
|
3
|
-
require_relative 'logger'
|
4
4
|
require_relative 'version'
|
5
5
|
require_relative 'exceptions'
|
6
6
|
require_relative 'server'
|
@@ -11,22 +11,19 @@ module Locomotive
|
|
11
11
|
module Steam
|
12
12
|
class StandaloneServer < Server
|
13
13
|
|
14
|
-
def initialize(path
|
15
|
-
|
16
|
-
Locomotive::Steam::Logger.setup(path, false)
|
17
|
-
end
|
14
|
+
def initialize(path)
|
15
|
+
Locomotive::Common::Logger.setup(path, false)
|
18
16
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
reader.call path
|
17
|
+
# get the reader
|
18
|
+
reader = Locomotive::Mounter::Reader::FileSystem.instance
|
19
|
+
reader.run!(path: path)
|
20
|
+
reader
|
24
21
|
|
25
22
|
Bundler.require 'monkey_patches'
|
26
23
|
Bundler.require 'initializers'
|
27
24
|
|
28
25
|
# run the rack app
|
29
|
-
super(reader,
|
26
|
+
super(reader, serve_assets: true)
|
30
27
|
end
|
31
28
|
end
|
32
29
|
end
|
data/lib/steam.rb
CHANGED
data/locomotivecms_steam.gemspec
CHANGED
@@ -25,18 +25,17 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_development_dependency 'rack-test'
|
26
26
|
spec.add_development_dependency 'i18n-spec'
|
27
27
|
|
28
|
-
spec.add_dependency 'rack-cache',
|
29
|
-
spec.add_dependency '
|
30
|
-
spec.add_dependency 'sprockets
|
31
|
-
spec.add_dependency '
|
32
|
-
spec.add_dependency 'dragonfly',
|
33
|
-
spec.add_dependency '
|
34
|
-
spec.add_dependency '
|
35
|
-
spec.add_dependency 'will_paginate', '~> 3.0'
|
36
|
-
spec.add_dependency 'redcarpet', '~> 3.1'
|
28
|
+
spec.add_dependency 'rack-cache', '~> 1.1'
|
29
|
+
spec.add_dependency 'moneta', '~> 0.7.20'
|
30
|
+
spec.add_dependency 'sprockets', '~> 2.0'
|
31
|
+
spec.add_dependency 'sprockets-sass', '~> 1.0'
|
32
|
+
spec.add_dependency 'dragonfly', '~> 1.0.3'
|
33
|
+
spec.add_dependency 'will_paginate', '~> 3.0' # TODO: move to kaminari
|
34
|
+
spec.add_dependency 'redcarpet', '~> 3.1'
|
37
35
|
|
38
36
|
spec.add_dependency 'locomotivecms_mounter'
|
39
37
|
spec.add_dependency 'locomotivecms-solid'
|
38
|
+
spec.add_dependency 'locomotivecms_common', '~> 0.0.1'
|
40
39
|
|
41
40
|
spec.required_ruby_version = '~> 2.0'
|
42
41
|
end
|
@@ -1,15 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative '../../lib/locomotive/steam/server'
|
2
2
|
|
3
3
|
require File.dirname(__FILE__) + '/../spec_helper'
|
4
|
-
|
5
|
-
# require 'webmock/rspec'
|
6
|
-
require 'active_support/core_ext'
|
7
|
-
|
8
|
-
# VCR.configure do |c|
|
9
|
-
# c.ignore_localhost = false
|
10
|
-
# c.cassette_library_dir = File.dirname(__FILE__) + '/cassettes'
|
11
|
-
# c.hook_into :webmock
|
12
|
-
# c.default_cassette_options = { record: :new_episodes }
|
13
|
-
# c.configure_rspec_metadata!
|
14
|
-
# c.allow_http_connections_when_no_cassette = false
|
15
|
-
# end
|
4
|
+
require 'rack/test'
|
@@ -1,8 +1,4 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require File.dirname(__FILE__) + '/../integration_helper'
|
4
|
-
require 'locomotive/steam/server'
|
5
|
-
require 'rack/test'
|
6
2
|
|
7
3
|
describe Locomotive::Steam::Server do
|
8
4
|
|
@@ -13,9 +9,7 @@ describe Locomotive::Steam::Server do
|
|
13
9
|
end
|
14
10
|
|
15
11
|
it 'shows the index page' do
|
16
|
-
|
17
12
|
get '/index'
|
18
|
-
|
19
13
|
last_response.body.should =~ /Upcoming events/
|
20
14
|
end
|
21
15
|
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/helpers.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'common'
|
2
|
+
require_relative '../../lib/locomotive/steam/initializers'
|
3
|
+
|
1
4
|
module Spec
|
2
5
|
module Helpers
|
3
6
|
|
@@ -10,12 +13,18 @@ module Spec
|
|
10
13
|
end
|
11
14
|
|
12
15
|
def run_server
|
13
|
-
|
14
|
-
Locomotive::
|
16
|
+
Locomotive::Common.reset
|
17
|
+
Locomotive::Common.configure do |config|
|
18
|
+
path = File.join(File.expand_path('../../spec/fixtures/default/log/locomotivecms.log'))
|
19
|
+
config.notifier = Locomotive::Common::Logger.setup(path)
|
20
|
+
end
|
21
|
+
|
22
|
+
Locomotive::Common::Logger.info 'Server started...'
|
23
|
+
|
15
24
|
reader = Locomotive::Mounter::Reader::FileSystem.instance
|
16
|
-
reader.run!(path:
|
25
|
+
reader.run!(path: 'spec/fixtures/default')
|
17
26
|
|
18
|
-
Locomotive::Steam::Server.new(reader
|
27
|
+
Locomotive::Steam::Server.new(reader)
|
19
28
|
end
|
20
29
|
|
21
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: locomotivecms_steam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Didier Lafforgue
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-04-
|
14
|
+
date: 2014-04-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -140,35 +140,35 @@ dependencies:
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '1.1'
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
143
|
+
name: moneta
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
requirements:
|
146
146
|
- - "~>"
|
147
147
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
148
|
+
version: 0.7.20
|
149
149
|
type: :runtime
|
150
150
|
prerelease: false
|
151
151
|
version_requirements: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
153
|
- - "~>"
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
155
|
+
version: 0.7.20
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
|
-
name: sprockets
|
157
|
+
name: sprockets
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
160
|
- - "~>"
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
162
|
+
version: '2.0'
|
163
163
|
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
167
|
- - "~>"
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: '
|
169
|
+
version: '2.0'
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
|
-
name:
|
171
|
+
name: sprockets-sass
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
174
|
- - "~>"
|
@@ -187,42 +187,14 @@ dependencies:
|
|
187
187
|
requirements:
|
188
188
|
- - "~>"
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
191
|
-
type: :runtime
|
192
|
-
prerelease: false
|
193
|
-
version_requirements: !ruby/object:Gem::Requirement
|
194
|
-
requirements:
|
195
|
-
- - "~>"
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '0.9'
|
198
|
-
- !ruby/object:Gem::Dependency
|
199
|
-
name: activesupport
|
200
|
-
requirement: !ruby/object:Gem::Requirement
|
201
|
-
requirements:
|
202
|
-
- - "~>"
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
version: '3.2'
|
190
|
+
version: 1.0.3
|
205
191
|
type: :runtime
|
206
192
|
prerelease: false
|
207
193
|
version_requirements: !ruby/object:Gem::Requirement
|
208
194
|
requirements:
|
209
195
|
- - "~>"
|
210
196
|
- !ruby/object:Gem::Version
|
211
|
-
version:
|
212
|
-
- !ruby/object:Gem::Dependency
|
213
|
-
name: listen
|
214
|
-
requirement: !ruby/object:Gem::Requirement
|
215
|
-
requirements:
|
216
|
-
- - "~>"
|
217
|
-
- !ruby/object:Gem::Version
|
218
|
-
version: '2.7'
|
219
|
-
type: :runtime
|
220
|
-
prerelease: false
|
221
|
-
version_requirements: !ruby/object:Gem::Requirement
|
222
|
-
requirements:
|
223
|
-
- - "~>"
|
224
|
-
- !ruby/object:Gem::Version
|
225
|
-
version: '2.7'
|
197
|
+
version: 1.0.3
|
226
198
|
- !ruby/object:Gem::Dependency
|
227
199
|
name: will_paginate
|
228
200
|
requirement: !ruby/object:Gem::Requirement
|
@@ -279,6 +251,20 @@ dependencies:
|
|
279
251
|
- - ">="
|
280
252
|
- !ruby/object:Gem::Version
|
281
253
|
version: '0'
|
254
|
+
- !ruby/object:Gem::Dependency
|
255
|
+
name: locomotivecms_common
|
256
|
+
requirement: !ruby/object:Gem::Requirement
|
257
|
+
requirements:
|
258
|
+
- - "~>"
|
259
|
+
- !ruby/object:Gem::Version
|
260
|
+
version: 0.0.1
|
261
|
+
type: :runtime
|
262
|
+
prerelease: false
|
263
|
+
version_requirements: !ruby/object:Gem::Requirement
|
264
|
+
requirements:
|
265
|
+
- - "~>"
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: 0.0.1
|
282
268
|
description: The LocomotiveCMS steam is a front end server LocomotiveCMS libraries
|
283
269
|
email:
|
284
270
|
- did@locomotivecms.com
|
@@ -310,6 +296,7 @@ files:
|
|
310
296
|
- config/locales/pl.yml
|
311
297
|
- config/locales/pt-BR.yml
|
312
298
|
- config/locales/ru.yml
|
299
|
+
- example/server.rb
|
313
300
|
- lib/locomotive/steam/core_ext.rb
|
314
301
|
- lib/locomotive/steam/core_ext/array.rb
|
315
302
|
- lib/locomotive/steam/core_ext/boolean/false.rb
|
@@ -318,9 +305,9 @@ files:
|
|
318
305
|
- lib/locomotive/steam/core_ext/string.rb
|
319
306
|
- lib/locomotive/steam/exceptions.rb
|
320
307
|
- lib/locomotive/steam/initializers.rb
|
308
|
+
- lib/locomotive/steam/initializers/dragonfly.rb
|
321
309
|
- lib/locomotive/steam/initializers/i18n.rb
|
322
|
-
- lib/locomotive/steam/initializers/
|
323
|
-
- lib/locomotive/steam/initializers/will_paginate.rb
|
310
|
+
- lib/locomotive/steam/initializers/sprockets.rb
|
324
311
|
- lib/locomotive/steam/liquid.rb
|
325
312
|
- lib/locomotive/steam/liquid/drops/base.rb
|
326
313
|
- lib/locomotive/steam/liquid/drops/content_entry.rb
|
@@ -360,26 +347,29 @@ files:
|
|
360
347
|
- lib/locomotive/steam/liquid/tags/session_assign.rb
|
361
348
|
- lib/locomotive/steam/liquid/tags/snippet.rb
|
362
349
|
- lib/locomotive/steam/liquid/tags/with_scope.rb
|
363
|
-
- lib/locomotive/steam/
|
364
|
-
- lib/locomotive/steam/
|
350
|
+
- lib/locomotive/steam/middlewares.rb
|
351
|
+
- lib/locomotive/steam/middlewares/base.rb
|
352
|
+
- lib/locomotive/steam/middlewares/dynamic_assets.rb
|
353
|
+
- lib/locomotive/steam/middlewares/entry_submission.rb
|
354
|
+
- lib/locomotive/steam/middlewares/favicon.rb
|
355
|
+
- lib/locomotive/steam/middlewares/locale.rb
|
356
|
+
- lib/locomotive/steam/middlewares/logging.rb
|
357
|
+
- lib/locomotive/steam/middlewares/page.rb
|
358
|
+
- lib/locomotive/steam/middlewares/path.rb
|
359
|
+
- lib/locomotive/steam/middlewares/renderer.rb
|
360
|
+
- lib/locomotive/steam/middlewares/stack.rb
|
361
|
+
- lib/locomotive/steam/middlewares/static_assets.rb
|
362
|
+
- lib/locomotive/steam/middlewares/templatized_page.rb
|
363
|
+
- lib/locomotive/steam/middlewares/timezone.rb
|
364
|
+
- lib/locomotive/steam/misc.rb
|
365
365
|
- lib/locomotive/steam/monkey_patches.rb
|
366
|
-
- lib/locomotive/steam/monkey_patches/better_errors.rb
|
367
|
-
- lib/locomotive/steam/monkey_patches/dragonfly.rb
|
368
366
|
- lib/locomotive/steam/monkey_patches/haml.rb
|
369
|
-
- lib/locomotive/steam/monkey_patches/httparty.rb
|
370
367
|
- lib/locomotive/steam/monkey_patches/mounter.rb
|
371
368
|
- lib/locomotive/steam/server.rb
|
372
|
-
- lib/locomotive/steam/
|
373
|
-
- lib/locomotive/steam/
|
374
|
-
- lib/locomotive/steam/
|
375
|
-
- lib/locomotive/steam/
|
376
|
-
- lib/locomotive/steam/server/logging.rb
|
377
|
-
- lib/locomotive/steam/server/middleware.rb
|
378
|
-
- lib/locomotive/steam/server/page.rb
|
379
|
-
- lib/locomotive/steam/server/path.rb
|
380
|
-
- lib/locomotive/steam/server/renderer.rb
|
381
|
-
- lib/locomotive/steam/server/templatized_page.rb
|
382
|
-
- lib/locomotive/steam/server/timezone.rb
|
369
|
+
- lib/locomotive/steam/services.rb
|
370
|
+
- lib/locomotive/steam/services/dragonfly.rb
|
371
|
+
- lib/locomotive/steam/services/external_api.rb
|
372
|
+
- lib/locomotive/steam/services/markdown.rb
|
383
373
|
- lib/locomotive/steam/standalone_server.rb
|
384
374
|
- lib/locomotive/steam/version.rb
|
385
375
|
- lib/steam.rb
|