atomic_cms 0.2.5 → 0.3.0

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: 728586a5dfb314682f1e61766fa29c5922022335
4
- data.tar.gz: 3ca845f9f74da4c203ba77c7cc4883d12a1c6b35
3
+ metadata.gz: 0d5ba8b247e0e2df3c7f9c4d6341a4de336c5891
4
+ data.tar.gz: e4a7d558023ea759f664a75448f130b125eba4e1
5
5
  SHA512:
6
- metadata.gz: 8aec4890792f8fc849e0443f086dbbf99e2ef735abd0aa4c9b018ab6c8b5cef5297a43db377ef319dfe87b93134c4db09dc297ce5451c2b9c6b14d1d00203ec6
7
- data.tar.gz: 043a15c92a21e2277c3095163716560d7c650dd05a3c75c54a18aff87d19d0062fdd2bf7035cc1222c613de3575bf9ffd73738b800a497b960147c178a4d270c
6
+ metadata.gz: 2e75064a5b2922819dfe93825c1665ffa71dcc24320e5797c8b2f8d392bc3ace447926b3393c981ad33da0ad6aca4e09bb21e29b703944b87bbae031153d85d1
7
+ data.tar.gz: 50d6551c23cf38999f55017abda4bbf28c429039102b1738e03a0d9ea5a75f9a91adf13ced235de9f93adb4cf9ed6bf18dbbbd460d324041afc4b4eba218a27d
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  .bundle/
2
+ Gemfile.lock
2
3
  log/*.log
3
4
  pkg/
4
5
  *.gem
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby:
2
+ config_file: .rubocop.yml
data/.rubocop.yml CHANGED
@@ -1,5 +1,33 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
3
+
1
4
  Style/Documentation:
2
5
  Enabled: false
3
6
 
7
+ Style/DotPosition:
8
+ EnforcedStyle: leading
9
+ SupportedStyles:
10
+ - leading
11
+ - trailing
12
+
13
+ Style/FrozenStringLiteralComment:
14
+ EnforcedStyle: when_needed
15
+ SupportedStyles:
16
+ - when_needed
17
+ - always
18
+ - never
19
+
4
20
  Style/StringLiterals:
5
- Enabled: false
21
+ EnforcedStyle: single_quotes
22
+ SupportedStyles:
23
+ - single_quotes
24
+ - double_quotes
25
+ ConsistentQuotesInMultiline: false
26
+
27
+ Style/StringLiteralsInInterpolation:
28
+ EnforcedStyle: single_quotes
29
+ SupportedStyles:
30
+ - single_quotes
31
+ - double_quotes
32
+
33
+
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
  gemspec
@@ -39,6 +39,13 @@
39
39
 
40
40
  page = angular.module('page', ['markdown', 'ngSanitize']);
41
41
 
42
+ page.config(function($sceDelegateProvider) {
43
+ $sceDelegateProvider.resourceUrlWhitelist([
44
+ 'self',
45
+ 'http://s3.amazonaws.com/**'
46
+ ]);
47
+ });
48
+
42
49
  page.filter('vimeo_url', [
43
50
  '$sce', function($sce) {
44
51
  return function(id) {
@@ -141,6 +148,7 @@
141
148
  $editor.find(':file').each(function() {
142
149
  var $input = $(this);
143
150
  var $next = $($input.siblings('input'));
151
+ var $errors = $($input.siblings('div.errors'));
144
152
  $input.attr('name', null).val('');
145
153
 
146
154
  $input.on('change', function(event) {
@@ -159,6 +167,11 @@
159
167
  var parsed = JSON.parse(data);
160
168
  $next.val(parsed.url);
161
169
  $next.change();
170
+ $errors.empty();
171
+ },
172
+ error: function (response) {
173
+ var data = JSON.parse(response.responseText);
174
+ $errors.text(data.errors.file[0]);
162
175
  }
163
176
  });
164
177
  });
@@ -5,7 +5,8 @@ module AtomicCms
5
5
  if asset.save
6
6
  render json: { url: asset.url }.to_json, status: :created
7
7
  else
8
- render json: {}.to_json, status: :unprocessable_entity
8
+ render json: { errors: asset.errors }.to_json,
9
+ status: :unprocessable_entity
9
10
  end
10
11
  end
11
12
 
@@ -1,5 +1,5 @@
1
1
  class MediaScrubber
2
- attr_accessor :original, :filtered
2
+ attr_accessor :original, :filtered, :errors
3
3
 
4
4
  def initialize(args)
5
5
  @original = args.fetch(:file, nil)
@@ -8,12 +8,16 @@ class MediaScrubber
8
8
 
9
9
  def infer_media_type
10
10
  return nil unless original.respond_to?(:content_type)
11
- AtomicCms::Image.new(file: original) if original.content_type.match(/image/)
11
+ params = { file: original }
12
+ return AtomicCms::Image.new(params) if original.content_type =~ /image/
13
+ AtomicCms::Video.new(params) if original.content_type =~ /video/
12
14
  end
13
15
 
14
16
  def valid?
15
17
  return false unless filtered
16
- filtered.valid?
18
+ return true if filtered.valid?
19
+ @errors = filtered.errors
20
+ false
17
21
  end
18
22
 
19
23
  def save
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+ module AtomicCms
3
+ class Video < Media
4
+ validates_attachment :file, presence: true,
5
+ content_type: { content_type: /\Avideo/ }
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ span.li.string.input
2
+ label.label #{name.to_s.humanize}
3
+ input.cms-field.datepicker type="text" name="#{name}" value="#{value}" data-ng-model="preview.#{name}"
@@ -2,4 +2,5 @@ span.li.string.input
2
2
  label.label #{name.to_s.humanize}
3
3
  input.cms-field type="file"
4
4
  label.label.filler #{name.to_s.humanize}
5
+ .errors
5
6
  input.cms-field type="text" name="#{name}" data-ng-model="preview.#{name}" value="#{value}"
data/atomic_cms.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'atomic_cms'
3
- s.version = '0.2.5'
3
+ s.version = '0.3.0'
4
4
  s.summary = 'Atomic CMS'
5
5
  s.description = 'Live CMS powered by atomic assets.'
6
6
  s.authors = ['Don Humphreys', 'Spartan']
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.files = `git ls-files`.split(/\n/)
9
9
  s.test_files = Dir['spec/**/*']
10
10
  s.homepage = 'https://github.com/spartansystems/atomic_cms'
11
- s.license = 'MIT'
11
+ s.license = 'MIT'
12
12
 
13
13
  s.add_dependency 'rails', '~> 4.2'
14
14
  s.add_dependency 'activeadmin', '1.0.0.pre2'
@@ -1,4 +1,5 @@
1
- require "rails_helper"
1
+ # frozen_string_literal: true
2
+ require 'rails_helper'
2
3
 
3
4
  RSpec.describe AtomicCms::MediaController, type: :controller do
4
5
  # Previously the engines guide contained an incorrect example that
@@ -8,23 +9,24 @@ RSpec.describe AtomicCms::MediaController, type: :controller do
8
9
  # in the test case with `Foo::Engine.routes`.
9
10
  before { @routes = AtomicCms::Engine.routes }
10
11
 
11
- it "accepts a post request and fails with bad data" do
12
- scrubber = double("scrubber")
12
+ it 'accepts a post request and fails with bad data' do
13
+ scrubber = double('scrubber')
13
14
  allow(MediaScrubber).to receive(:new).and_return(scrubber)
14
15
  allow(scrubber).to receive(:save).and_return(false)
16
+ allow(scrubber).to receive(:errors)
15
17
 
16
- post :create, file: double("file")
18
+ post :create, file: double('file')
17
19
 
18
20
  expect(response).to have_http_status(:unprocessable_entity)
19
21
  end
20
22
 
21
- it "accepts a post with an image" do
22
- scrubber = double("scrubber", save: true, url: "http://www.google.com")
23
+ it 'accepts a post with a file' do
24
+ scrubber = double('scrubber', save: true, url: 'http://www.google.com')
23
25
  expect(MediaScrubber).to receive(:new).and_return(scrubber)
24
26
 
25
- post :create, file: double("file")
27
+ post :create, file: double('file')
26
28
 
27
29
  expect(response).to have_http_status(:created)
28
- expect(response.body).to include("http://www.google.com")
30
+ expect(response.body).to include('http://www.google.com')
29
31
  end
30
32
  end
@@ -3,6 +3,7 @@ require 'rails_helper'
3
3
  RSpec.describe MediaScrubber do
4
4
  let(:path) { File.expand_path('../../uploads', __FILE__) }
5
5
  let(:image) { File.open("#{path}/cat.jpg") }
6
+ let(:video) { File.open("#{path}/small.mp4") }
6
7
 
7
8
  it 'takes a file as an argument' do
8
9
  something = double('some_document')
@@ -16,6 +17,12 @@ RSpec.describe MediaScrubber do
16
17
  expect(m.infer_media_type.class).to be(AtomicCms::Image)
17
18
  end
18
19
 
20
+ it 'returns a Video if the file type is a video' do
21
+ allow(video).to receive(:content_type).and_return('video/mp4')
22
+ m = MediaScrubber.new(file: video)
23
+ expect(m.infer_media_type.class).to be(AtomicCms::Video)
24
+ end
25
+
19
26
  it 'returns nil if not supported' do
20
27
  something_else = double('some_document', content_type: 'rando')
21
28
  m = MediaScrubber.new(file: something_else)
@@ -35,15 +42,23 @@ RSpec.describe MediaScrubber do
35
42
  expect(m.valid?).to be(false)
36
43
  end
37
44
 
38
- it 'passes the valid call onto the underlying Object if filtered' do
45
+ it 'returns true if underlying Object is filtered' do
39
46
  m = MediaScrubber.new(file: image)
40
47
  m.filtered = spy('underlying_asset')
41
- allow(m.filtered).to receive(:valid?).and_return(:true)
48
+ allow(m.filtered).to receive(:valid?).and_return(true)
42
49
 
43
- m.valid?
50
+ expect(m.valid?).to be(true)
44
51
 
45
52
  expect(m.filtered).to have_received(:valid?)
46
53
  end
54
+
55
+ it 'returns false if underlying Object is not filtered' do
56
+ m = MediaScrubber.new(file: image)
57
+ m.filtered = spy('underlying_asset')
58
+ allow(m.filtered).to receive(:valid?).and_return(false)
59
+
60
+ expect(m.valid?).to be(false)
61
+ end
47
62
  end
48
63
 
49
64
  context '#save' do
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ require 'rails_helper'
3
+
4
+ describe AtomicCms::Video do
5
+ it_behaves_like 'media upload'
6
+
7
+ context 'file validations' do
8
+ it { should validate_attachment_presence(:file) }
9
+ it 'validates the content types' do
10
+ should validate_attachment_content_type(:file)
11
+ .allowing('video/mp4', 'video/x-msvideo', 'video/x-ms-wmv')
12
+ end
13
+ end
14
+ end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Humphreys
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-29 00:00:00.000000000 Z
12
+ date: 2016-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -235,12 +235,12 @@ extra_rdoc_files: []
235
235
  files:
236
236
  - ".eslintrc"
237
237
  - ".gitignore"
238
+ - ".hound.yml"
238
239
  - ".rspec"
239
240
  - ".rubocop.yml"
240
241
  - ".ruby-version"
241
242
  - CHANGELOG.md
242
243
  - Gemfile
243
- - Gemfile.lock
244
244
  - README.md
245
245
  - Rakefile
246
246
  - app/assets/images/icon_add_component.png
@@ -254,7 +254,9 @@ files:
254
254
  - app/helpers/component_helper.rb
255
255
  - app/models/atomic_cms/image.rb
256
256
  - app/models/atomic_cms/media.rb
257
+ - app/models/atomic_cms/video.rb
257
258
  - app/views/components/_children_field.html.slim
259
+ - app/views/components/_datepicker_field.html.slim
258
260
  - app/views/components/_edit.html.slim
259
261
  - app/views/components/_file_field.slim
260
262
  - app/views/components/_markdown_field.slim
@@ -309,10 +311,8 @@ files:
309
311
  - spec/dummy/config/locales/en.yml
310
312
  - spec/dummy/config/routes.rb
311
313
  - spec/dummy/config/secrets.yml
312
- - spec/dummy/db/development.sqlite3
313
314
  - spec/dummy/db/schema.rb
314
315
  - spec/dummy/db/test.sqlite3
315
- - spec/dummy/log/development.log
316
316
  - spec/dummy/log/test.log
317
317
  - spec/dummy/public/404.html
318
318
  - spec/dummy/public/422.html
@@ -320,11 +320,13 @@ files:
320
320
  - spec/dummy/public/favicon.ico
321
321
  - spec/models/image_spec.rb
322
322
  - spec/models/media_spec.rb
323
+ - spec/models/video_spec.rb
323
324
  - spec/rails_helper.rb
324
325
  - spec/spec_helper.rb
325
326
  - spec/support/media_upload_shared_examples.rb
326
327
  - spec/uploads/cat.jpg
327
328
  - spec/uploads/pdf.pdf
329
+ - spec/uploads/small.mp4
328
330
  - vendor/assets/javascripts/angular-markdown.js
329
331
  - vendor/assets/javascripts/showdown.min.js
330
332
  homepage: https://github.com/spartansystems/atomic_cms
@@ -347,7 +349,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
349
  version: '0'
348
350
  requirements: []
349
351
  rubyforge_project:
350
- rubygems_version: 2.5.1
352
+ rubygems_version: 2.6.4
351
353
  signing_key:
352
354
  specification_version: 4
353
355
  summary: Atomic CMS
@@ -382,10 +384,8 @@ test_files:
382
384
  - spec/dummy/config/routes.rb
383
385
  - spec/dummy/config/secrets.yml
384
386
  - spec/dummy/config.ru
385
- - spec/dummy/db/development.sqlite3
386
387
  - spec/dummy/db/schema.rb
387
388
  - spec/dummy/db/test.sqlite3
388
- - spec/dummy/log/development.log
389
389
  - spec/dummy/log/test.log
390
390
  - spec/dummy/public/404.html
391
391
  - spec/dummy/public/422.html
@@ -395,8 +395,10 @@ test_files:
395
395
  - spec/dummy/README.rdoc
396
396
  - spec/models/image_spec.rb
397
397
  - spec/models/media_spec.rb
398
+ - spec/models/video_spec.rb
398
399
  - spec/rails_helper.rb
399
400
  - spec/spec_helper.rb
400
401
  - spec/support/media_upload_shared_examples.rb
401
402
  - spec/uploads/cat.jpg
402
403
  - spec/uploads/pdf.pdf
404
+ - spec/uploads/small.mp4
data/Gemfile.lock DELETED
@@ -1,241 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- atomic_cms (0.2.2)
5
- activeadmin (= 1.0.0.pre2)
6
- atomic_assets (~> 0.1.0)
7
- jquery-rails (~> 4.0, >= 4.0.3)
8
- paperclip (~> 4.3)
9
- rails (~> 4.2)
10
- redcarpet (~> 3.3)
11
- slim-rails (~> 3.0)
12
-
13
- GEM
14
- remote: http://rubygems.org/
15
- specs:
16
- actionmailer (4.2.4)
17
- actionpack (= 4.2.4)
18
- actionview (= 4.2.4)
19
- activejob (= 4.2.4)
20
- mail (~> 2.5, >= 2.5.4)
21
- rails-dom-testing (~> 1.0, >= 1.0.5)
22
- actionpack (4.2.4)
23
- actionview (= 4.2.4)
24
- activesupport (= 4.2.4)
25
- rack (~> 1.6)
26
- rack-test (~> 0.6.2)
27
- rails-dom-testing (~> 1.0, >= 1.0.5)
28
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (4.2.4)
30
- activesupport (= 4.2.4)
31
- builder (~> 3.1)
32
- erubis (~> 2.7.0)
33
- rails-dom-testing (~> 1.0, >= 1.0.5)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
- activeadmin (1.0.0.pre2)
36
- arbre (~> 1.0, >= 1.0.2)
37
- bourbon
38
- coffee-rails
39
- formtastic (~> 3.1)
40
- formtastic_i18n
41
- inherited_resources (~> 1.6)
42
- jquery-rails
43
- jquery-ui-rails
44
- kaminari (~> 0.15)
45
- rails (>= 3.2, < 5.0)
46
- ransack (~> 1.3)
47
- sass-rails
48
- activejob (4.2.4)
49
- activesupport (= 4.2.4)
50
- globalid (>= 0.3.0)
51
- activemodel (4.2.4)
52
- activesupport (= 4.2.4)
53
- builder (~> 3.1)
54
- activerecord (4.2.4)
55
- activemodel (= 4.2.4)
56
- activesupport (= 4.2.4)
57
- arel (~> 6.0)
58
- activesupport (4.2.4)
59
- i18n (~> 0.7)
60
- json (~> 1.7, >= 1.7.7)
61
- minitest (~> 5.1)
62
- thread_safe (~> 0.3, >= 0.3.4)
63
- tzinfo (~> 1.1)
64
- arbre (1.0.3)
65
- activesupport (>= 3.0.0)
66
- arel (6.0.3)
67
- atomic_assets (0.1.0)
68
- draper (~> 2.1)
69
- bourbon (4.2.6)
70
- sass (~> 3.4)
71
- thor (~> 0.19)
72
- builder (3.2.2)
73
- climate_control (0.0.3)
74
- activesupport (>= 3.0)
75
- cocaine (0.5.7)
76
- climate_control (>= 0.0.3, < 1.0)
77
- coffee-rails (4.1.0)
78
- coffee-script (>= 2.2.0)
79
- railties (>= 4.0.0, < 5.0)
80
- coffee-script (2.4.1)
81
- coffee-script-source
82
- execjs
83
- coffee-script-source (1.9.1.1)
84
- diff-lcs (1.2.5)
85
- draper (2.1.0)
86
- actionpack (>= 3.0)
87
- activemodel (>= 3.0)
88
- activesupport (>= 3.0)
89
- request_store (~> 1.0)
90
- erubis (2.7.0)
91
- execjs (2.6.0)
92
- factory_girl (4.5.0)
93
- activesupport (>= 3.0.0)
94
- factory_girl_rails (4.5.0)
95
- factory_girl (~> 4.5.0)
96
- railties (>= 3.0.0)
97
- formtastic (3.1.3)
98
- actionpack (>= 3.2.13)
99
- formtastic_i18n (0.4.1)
100
- globalid (0.3.6)
101
- activesupport (>= 4.1.0)
102
- has_scope (0.6.0)
103
- actionpack (>= 3.2, < 5)
104
- activesupport (>= 3.2, < 5)
105
- i18n (0.7.0)
106
- inherited_resources (1.6.0)
107
- actionpack (>= 3.2, < 5)
108
- has_scope (~> 0.6.0.rc)
109
- railties (>= 3.2, < 5)
110
- responders
111
- jquery-rails (4.0.5)
112
- rails-dom-testing (~> 1.0)
113
- railties (>= 4.2.0)
114
- thor (>= 0.14, < 2.0)
115
- jquery-ui-rails (5.0.5)
116
- railties (>= 3.2.16)
117
- json (1.8.3)
118
- kaminari (0.16.3)
119
- actionpack (>= 3.0.0)
120
- activesupport (>= 3.0.0)
121
- loofah (2.0.3)
122
- nokogiri (>= 1.5.9)
123
- mail (2.6.3)
124
- mime-types (>= 1.16, < 3)
125
- mime-types (2.6.2)
126
- mimemagic (0.3.0)
127
- mini_portile (0.6.2)
128
- minitest (5.8.1)
129
- nokogiri (1.6.6.2)
130
- mini_portile (~> 0.6.0)
131
- paperclip (4.3.1)
132
- activemodel (>= 3.2.0)
133
- activesupport (>= 3.2.0)
134
- cocaine (~> 0.5.5)
135
- mime-types
136
- mimemagic (= 0.3.0)
137
- polyamorous (1.2.0)
138
- activerecord (>= 3.0)
139
- rack (1.6.4)
140
- rack-test (0.6.3)
141
- rack (>= 1.0)
142
- rails (4.2.4)
143
- actionmailer (= 4.2.4)
144
- actionpack (= 4.2.4)
145
- actionview (= 4.2.4)
146
- activejob (= 4.2.4)
147
- activemodel (= 4.2.4)
148
- activerecord (= 4.2.4)
149
- activesupport (= 4.2.4)
150
- bundler (>= 1.3.0, < 2.0)
151
- railties (= 4.2.4)
152
- sprockets-rails
153
- rails-deprecated_sanitizer (1.0.3)
154
- activesupport (>= 4.2.0.alpha)
155
- rails-dom-testing (1.0.7)
156
- activesupport (>= 4.2.0.beta, < 5.0)
157
- nokogiri (~> 1.6.0)
158
- rails-deprecated_sanitizer (>= 1.0.1)
159
- rails-html-sanitizer (1.0.2)
160
- loofah (~> 2.0)
161
- railties (4.2.4)
162
- actionpack (= 4.2.4)
163
- activesupport (= 4.2.4)
164
- rake (>= 0.8.7)
165
- thor (>= 0.18.1, < 2.0)
166
- rake (10.4.2)
167
- ransack (1.7.0)
168
- actionpack (>= 3.0)
169
- activerecord (>= 3.0)
170
- activesupport (>= 3.0)
171
- i18n
172
- polyamorous (~> 1.2)
173
- redcarpet (3.3.3)
174
- request_store (1.2.0)
175
- responders (2.1.0)
176
- railties (>= 4.2.0, < 5)
177
- rspec-core (3.3.2)
178
- rspec-support (~> 3.3.0)
179
- rspec-expectations (3.3.1)
180
- diff-lcs (>= 1.2.0, < 2.0)
181
- rspec-support (~> 3.3.0)
182
- rspec-mocks (3.3.2)
183
- diff-lcs (>= 1.2.0, < 2.0)
184
- rspec-support (~> 3.3.0)
185
- rspec-rails (3.3.3)
186
- actionpack (>= 3.0, < 4.3)
187
- activesupport (>= 3.0, < 4.3)
188
- railties (>= 3.0, < 4.3)
189
- rspec-core (~> 3.3.0)
190
- rspec-expectations (~> 3.3.0)
191
- rspec-mocks (~> 3.3.0)
192
- rspec-support (~> 3.3.0)
193
- rspec-support (3.3.0)
194
- sass (3.4.19)
195
- sass-rails (5.0.4)
196
- railties (>= 4.0.0, < 5.0)
197
- sass (~> 3.1)
198
- sprockets (>= 2.8, < 4.0)
199
- sprockets-rails (>= 2.0, < 4.0)
200
- tilt (>= 1.1, < 3)
201
- shoulda-matchers (3.0.0)
202
- activesupport (>= 4.0.0)
203
- slim (3.0.6)
204
- temple (~> 0.7.3)
205
- tilt (>= 1.3.3, < 2.1)
206
- slim-rails (3.0.1)
207
- actionmailer (>= 3.1, < 5.0)
208
- actionpack (>= 3.1, < 5.0)
209
- activesupport (>= 3.1, < 5.0)
210
- railties (>= 3.1, < 5.0)
211
- slim (~> 3.0)
212
- sprockets (3.4.0)
213
- rack (> 1, < 3)
214
- sprockets-rails (2.3.3)
215
- actionpack (>= 3.0)
216
- activesupport (>= 3.0)
217
- sprockets (>= 2.8, < 4.0)
218
- sqlite3 (1.3.11)
219
- temple (0.7.6)
220
- thor (0.19.1)
221
- thread_safe (0.3.5)
222
- tilt (2.0.1)
223
- tzinfo (1.2.2)
224
- thread_safe (~> 0.1)
225
-
226
- PLATFORMS
227
- ruby
228
-
229
- DEPENDENCIES
230
- atomic_cms!
231
- factory_girl_rails
232
- rspec-core (~> 3.3)
233
- rspec-expectations (~> 3.3)
234
- rspec-mocks (~> 3.3)
235
- rspec-rails
236
- rspec-support (~> 3.3)
237
- shoulda-matchers
238
- sqlite3
239
-
240
- BUNDLED WITH
241
- 1.10.6