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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile +7 -0
  5. data/Gemfile.lock +19 -30
  6. data/bin/publish +8 -8
  7. data/example/server.rb +27 -0
  8. data/lib/locomotive/steam/exceptions.rb +2 -2
  9. data/lib/locomotive/steam/initializers.rb +6 -4
  10. data/lib/locomotive/steam/initializers/dragonfly.rb +19 -0
  11. data/lib/locomotive/steam/initializers/sprockets.rb +1 -0
  12. data/lib/locomotive/steam/liquid.rb +1 -1
  13. data/lib/locomotive/steam/liquid/filters/resize.rb +2 -1
  14. data/lib/locomotive/steam/liquid/scopeable.rb +2 -2
  15. data/lib/locomotive/steam/liquid/tags/consume.rb +6 -1
  16. data/lib/locomotive/steam/liquid/tags/editable/short_text.rb +1 -1
  17. data/lib/locomotive/steam/liquid/tags/snippet.rb +1 -1
  18. data/lib/locomotive/steam/middlewares.rb +15 -0
  19. data/lib/locomotive/steam/{server/middleware.rb → middlewares/base.rb} +13 -11
  20. data/lib/locomotive/steam/middlewares/dynamic_assets.rb +40 -0
  21. data/lib/locomotive/steam/{server → middlewares}/entry_submission.rb +4 -4
  22. data/lib/locomotive/steam/{server → middlewares}/favicon.rb +2 -3
  23. data/lib/locomotive/steam/{server → middlewares}/locale.rb +4 -4
  24. data/lib/locomotive/steam/{server → middlewares}/logging.rb +2 -2
  25. data/lib/locomotive/steam/{server → middlewares}/page.rb +4 -6
  26. data/lib/locomotive/steam/{server → middlewares}/path.rb +4 -4
  27. data/lib/locomotive/steam/{server → middlewares}/renderer.rb +6 -5
  28. data/lib/locomotive/steam/middlewares/stack.rb +66 -0
  29. data/lib/locomotive/steam/middlewares/static_assets.rb +25 -0
  30. data/lib/locomotive/steam/{server → middlewares}/templatized_page.rb +4 -4
  31. data/lib/locomotive/steam/{server → middlewares}/timezone.rb +4 -4
  32. data/lib/locomotive/steam/misc.rb +10 -0
  33. data/lib/locomotive/steam/monkey_patches.rb +3 -4
  34. data/lib/locomotive/steam/monkey_patches/haml.rb +3 -1
  35. data/lib/locomotive/steam/monkey_patches/mounter.rb +22 -0
  36. data/lib/locomotive/steam/server.rb +33 -58
  37. data/lib/locomotive/steam/services.rb +1 -0
  38. data/lib/locomotive/steam/services/dragonfly.rb +49 -0
  39. data/lib/locomotive/steam/{monkey_patches/httparty.rb → services/external_api.rb} +6 -6
  40. data/lib/locomotive/steam/services/markdown.rb +29 -0
  41. data/lib/locomotive/steam/standalone_server.rb +9 -12
  42. data/lib/locomotive/steam/version.rb +1 -1
  43. data/lib/steam.rb +0 -1
  44. data/locomotivecms_steam.gemspec +8 -9
  45. data/spec/integration/integration_helper.rb +2 -13
  46. data/spec/integration/server/basic_spec.rb +0 -6
  47. data/spec/integration/server/contact_form_spec.rb +0 -4
  48. data/spec/integration/server/liquid_spec.rb +0 -4
  49. data/spec/integration/server/with_scope_spec.rb +0 -4
  50. data/spec/spec_helper.rb +1 -0
  51. data/spec/support/helpers.rb +13 -4
  52. metadata +47 -57
  53. data/lib/locomotive/steam/initializers/markdown.rb +0 -27
  54. data/lib/locomotive/steam/initializers/will_paginate.rb +0 -16
  55. data/lib/locomotive/steam/listen.rb +0 -64
  56. data/lib/locomotive/steam/logger.rb +0 -54
  57. data/lib/locomotive/steam/monkey_patches/better_errors.rb +0 -70
  58. data/lib/locomotive/steam/monkey_patches/dragonfly.rb +0 -79
  59. 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 Httparty
6
- class Webservice
5
+ module Services
6
+ class ExternalAPI
7
7
 
8
8
  include ::HTTParty
9
9
 
10
- def self.consume(url, options = {})
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::Steam::Logger.debug "[WebService] consuming #{path}, #{options.inspect}"
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::Steam::Logger.error "[WebService] consumed #{path}, #{options.inspect}, response = #{response.inspect}"
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
- $:.unshift(File.expand_path(File.dirname(__FILE__) + '/../..'))
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, options={})
15
- options.fetch(:logger) do
16
- Locomotive::Steam::Logger.setup(path, false)
17
- end
14
+ def initialize(path)
15
+ Locomotive::Common::Logger.setup(path, false)
18
16
 
19
- reader = options.fetch(:reader) do
20
- _reader = Locomotive::Mounter::Reader::FileSystem.instance
21
- Proc.new { |_path| _reader.run!(path: _path) }
22
- end
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, disable_listen: true)
26
+ super(reader, serve_assets: true)
30
27
  end
31
28
  end
32
29
  end
@@ -1,5 +1,5 @@
1
1
  module Locomotive
2
2
  module Steam
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
data/lib/steam.rb CHANGED
@@ -1,4 +1,3 @@
1
1
  require_relative 'locomotive/steam/version'
2
- require_relative 'locomotive/steam/logger'
3
2
  require_relative 'locomotive/steam/exceptions'
4
3
 
@@ -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', '~> 1.1'
29
- spec.add_dependency 'sprockets', '~> 2.0'
30
- spec.add_dependency 'sprockets-sass', '~> 1.0'
31
- spec.add_dependency 'better_errors', '~> 1.0'
32
- spec.add_dependency 'dragonfly', '~> 0.9'
33
- spec.add_dependency 'activesupport', '~> 3.2'
34
- spec.add_dependency 'listen', '~> 2.7'
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
- # encoding: utf-8
1
+ require_relative '../../lib/locomotive/steam/server'
2
2
 
3
3
  require File.dirname(__FILE__) + '/../spec_helper'
4
- # require 'vcr'
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
 
@@ -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 'ContactForm' do
8
4
 
@@ -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
 
@@ -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 'Complex with_scope conditions' do
8
4
 
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
+ require 'common'
4
5
  require 'i18n-spec'
5
6
  require 'coveralls'
6
7
 
@@ -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
- path = 'spec/fixtures/default'
14
- Locomotive::Steam::Logger.setup(path, false)
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: path)
25
+ reader.run!(path: 'spec/fixtures/default')
17
26
 
18
- Locomotive::Steam::Server.new(reader, disable_listen: true)
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.0
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-01 00:00:00.000000000 Z
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: sprockets
143
+ name: moneta
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - "~>"
147
147
  - !ruby/object:Gem::Version
148
- version: '2.0'
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: '2.0'
155
+ version: 0.7.20
156
156
  - !ruby/object:Gem::Dependency
157
- name: sprockets-sass
157
+ name: sprockets
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - "~>"
161
161
  - !ruby/object:Gem::Version
162
- version: '1.0'
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: '1.0'
169
+ version: '2.0'
170
170
  - !ruby/object:Gem::Dependency
171
- name: better_errors
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: '0.9'
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: '3.2'
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/markdown.rb
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/listen.rb
364
- - lib/locomotive/steam/logger.rb
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/server/dynamic_assets.rb
373
- - lib/locomotive/steam/server/entry_submission.rb
374
- - lib/locomotive/steam/server/favicon.rb
375
- - lib/locomotive/steam/server/locale.rb
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