revelry_content 0.0.1.1 → 0.0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -53
- data/lib/generators/revelry_content/css_generator.rb +47 -0
- data/lib/generators/revelry_content/initializer_generator.rb +11 -0
- data/lib/generators/revelry_content/install_generator.rb +27 -14
- data/lib/generators/revelry_content/js_generator.rb +43 -0
- data/lib/generators/revelry_content/migrations_generator.rb +25 -0
- data/lib/generators/revelry_content/templates/initializer.rb +13 -0
- data/lib/revelry_content/version.rb +1 -1
- data/test/dummy/app/assets/stylesheets/application.scss +1 -2
- metadata +7 -4
- data/test/dummy/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d57f008f016c584fc60768a5c49a53ebdb5ba404
|
4
|
+
data.tar.gz: ff49d78be60b93f65f80bddad50fd5d3831349fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e61ebb2af92ac13c2054557738082162d8e1066b43f81e32d63a6566955de141b3ed86cf79f7b8e07559d202f26bc2d9d33af901c50d25b534a949490eeb8014
|
7
|
+
data.tar.gz: 21387b6aaf8c2c34d83585636742bc8fab9991f8447d715357c5d02b64b6800638c0a8b67a25180feed669d2d2360f9d98ae1643309205a866dad6d24a782647
|
data/README.md
CHANGED
@@ -5,71 +5,29 @@ RevelryContent is a gem for managing admin-editable content within Rails applica
|
|
5
5
|
|
6
6
|
# Installation
|
7
7
|
|
8
|
-
|
8
|
+
Either install from a rails template:
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
```bash
|
13
|
-
bundle install
|
14
|
-
rails g revelry_content:install
|
15
|
-
rake db:migrate
|
10
|
+
```shell
|
11
|
+
rails new APPNAME -m https://raw.githubusercontent.com/revelrylabs/revelry_content/master/template.rb
|
16
12
|
```
|
17
13
|
|
18
|
-
|
14
|
+
Or add it to your gemfile:
|
19
15
|
|
20
16
|
```ruby
|
21
|
-
|
17
|
+
gem 'revelry_content'
|
22
18
|
```
|
23
19
|
|
24
|
-
|
25
|
-
content. You probably want to include it in ApplicationController like so:
|
26
|
-
|
27
|
-
```ruby
|
28
|
-
class ApplicationController
|
29
|
-
include RevelryContent::WithRevelryContent
|
30
|
-
def index; end
|
31
|
-
end
|
32
|
-
```
|
20
|
+
and install it:
|
33
21
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
```
|
38
|
-
|
39
|
-
Add include the editor stylesheet:
|
40
|
-
```css
|
41
|
-
/*
|
42
|
-
*= require revelry_content/application
|
43
|
-
*/
|
22
|
+
```shell
|
23
|
+
bundle
|
24
|
+
rails g revelry_content:install
|
44
25
|
```
|
45
26
|
|
46
|
-
|
47
27
|
# Configuration
|
48
28
|
|
49
|
-
|
50
|
-
|
51
|
-
```ruby
|
52
|
-
RevelryContent.configure do |config|
|
53
|
-
config.user_for_content do |controller|
|
54
|
-
# Your authentication logic here
|
55
|
-
controller.current_user
|
56
|
-
end
|
57
|
-
end
|
58
|
-
```
|
59
|
-
|
60
|
-
## Configuring authorization
|
61
|
-
|
62
|
-
You can set a block which takes two params `user` and `content` to handle authorization.
|
63
|
-
True is authorized, false is unauthorized.
|
64
|
-
|
65
|
-
```ruby
|
66
|
-
RevelryContent.configure do |config|
|
67
|
-
config.authorization_policy do |user|
|
68
|
-
# Your authorization logic here
|
69
|
-
user.admin?
|
70
|
-
end
|
71
|
-
end
|
72
|
-
```
|
29
|
+
The installer makes an initializer in `config/initializer.rb`. You can edit it
|
30
|
+
to customize authenticiation, authorization or javascript export settings.
|
73
31
|
|
74
32
|
## Configuring file uploads
|
75
33
|
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module RevelryContent
|
2
|
+
module Generators
|
3
|
+
class CssGenerator < ::Rails::Generators::Base
|
4
|
+
CSS_FILE_EXTENSIONS = %w(
|
5
|
+
.css
|
6
|
+
.css.sass
|
7
|
+
.css.scss
|
8
|
+
.sass
|
9
|
+
.scss
|
10
|
+
)
|
11
|
+
|
12
|
+
def add_css_assets
|
13
|
+
if using_sass?
|
14
|
+
append_to_file css_app_bundle do
|
15
|
+
'@import "revelry_content";'
|
16
|
+
end
|
17
|
+
else
|
18
|
+
insert_into_file css_app_bundle, before: %r{(//|\*)= require_self} do
|
19
|
+
"*= require revelry_content\n "
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def using_sass?
|
27
|
+
/s(c|a)ss/.match(css_file_extname)
|
28
|
+
end
|
29
|
+
|
30
|
+
def css_app_bundle
|
31
|
+
File.join(css_base_dir, "application#{ css_file_extname }")
|
32
|
+
end
|
33
|
+
|
34
|
+
def css_base_dir
|
35
|
+
File.join('app', 'assets', 'stylesheets')
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_css_format(fmt)
|
39
|
+
File.exist?(File.join(css_base_dir, "application#{ fmt }"))
|
40
|
+
end
|
41
|
+
|
42
|
+
def css_file_extname
|
43
|
+
CSS_FILE_EXTENSIONS.find { |fmt| test_css_format(fmt) }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module RevelryContent
|
2
|
+
module Generators
|
3
|
+
class InitializerGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
def add_initializer
|
7
|
+
template 'initializer.rb', 'config/initializers/revelry_content.rb'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1,24 +1,37 @@
|
|
1
|
-
require 'rails/generators/migration'
|
2
|
-
|
3
1
|
module RevelryContent
|
4
2
|
module Generators
|
5
3
|
class InstallGenerator < ::Rails::Generators::Base
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def add_migrations
|
5
|
+
generate 'revelry_content:migrations'
|
6
|
+
rake 'db:migrate'
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_js_assets
|
10
|
+
generate 'revelry_content:js'
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_css_assets
|
14
|
+
generate 'revelry_content:css'
|
15
|
+
end
|
9
16
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
def add_initializer
|
18
|
+
generate 'revelry_content:initializer'
|
19
|
+
end
|
20
|
+
|
21
|
+
def add_route
|
22
|
+
route 'mount RevelryContent::Engine => "/revelry_content"'
|
23
|
+
end
|
24
|
+
|
25
|
+
def add_controller_concern
|
26
|
+
insert_into_file app_controller, after: 'ApplicationController' do
|
27
|
+
'include RevelryContent::WithRevelryContent'
|
15
28
|
end
|
16
|
-
@prev_migration_nr.to_s
|
17
29
|
end
|
18
30
|
|
19
|
-
|
20
|
-
|
21
|
-
|
31
|
+
private
|
32
|
+
|
33
|
+
def app_controller
|
34
|
+
File.join('app', 'controllers', 'application_controller.rb')
|
22
35
|
end
|
23
36
|
end
|
24
37
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module RevelryContent
|
2
|
+
module Generators
|
3
|
+
class JsGenerator < ::Rails::Generators::Base
|
4
|
+
JS_FILE_EXTENSIONS = %w(
|
5
|
+
.coffee
|
6
|
+
.coffee.erb
|
7
|
+
.js.coffee
|
8
|
+
.js.coffee.rb
|
9
|
+
.js
|
10
|
+
.js.rb
|
11
|
+
)
|
12
|
+
|
13
|
+
def add_js_assets
|
14
|
+
insert_into_file js_app_bundle, before: %r{(//|#)= require_tree \.} do
|
15
|
+
"#{ js_require_marker }= require revelry_content\n"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def js_app_bundle
|
22
|
+
File.join(js_base_dir, "application#{ js_file_extname }")
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_js_format(fmt)
|
26
|
+
File.exist?(File.join(js_base_dir, "application#{ fmt }"))
|
27
|
+
end
|
28
|
+
|
29
|
+
def js_base_dir
|
30
|
+
File.join('app', 'assets', 'javascripts')
|
31
|
+
end
|
32
|
+
|
33
|
+
def js_file_extname
|
34
|
+
JS_FILE_EXTENSIONS.find { |fmt| test_js_format(fmt) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def js_require_marker
|
38
|
+
'#' if js_file_extname.include?('coffee')
|
39
|
+
'//'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
|
3
|
+
module RevelryContent
|
4
|
+
module Generators
|
5
|
+
class MigrationsGenerator < ::Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
desc "add the migrations"
|
9
|
+
|
10
|
+
def self.next_migration_number(path)
|
11
|
+
unless @prev_migration_nr
|
12
|
+
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
13
|
+
else
|
14
|
+
@prev_migration_nr += 1
|
15
|
+
end
|
16
|
+
@prev_migration_nr.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_migrations
|
20
|
+
migration_template "create_revelry_content_contents.rb", "db/migrate/create_revelry_content_contents.rb"
|
21
|
+
migration_template "create_versions.rb", "db/migrate/create_versions.rb"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
RevelryContent.configure do |config|
|
2
|
+
config.user_for_content do |controller|
|
3
|
+
# Your authentication logic here
|
4
|
+
controller.current_user
|
5
|
+
end
|
6
|
+
|
7
|
+
config.authorization_policy do |user|
|
8
|
+
# Your authorization logic here
|
9
|
+
user.admin?
|
10
|
+
end
|
11
|
+
|
12
|
+
config.js_export = true
|
13
|
+
end
|
@@ -8,7 +8,6 @@
|
|
8
8
|
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
9
|
* compiled file, but it's generally better to create a new file per style scope.
|
10
10
|
*
|
11
|
+
*= require revelry_content
|
11
12
|
*= require_self
|
12
13
|
*/
|
13
|
-
|
14
|
-
@import "revelry_content/application";
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revelry_content
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.
|
4
|
+
version: 0.0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Revelry Labs, LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -332,9 +332,14 @@ files:
|
|
332
332
|
- app/views/revelry_content/contents/_menus.html.erb
|
333
333
|
- app/views/revelry_content/contents/index.html.erb
|
334
334
|
- config/routes.rb
|
335
|
+
- lib/generators/revelry_content/css_generator.rb
|
336
|
+
- lib/generators/revelry_content/initializer_generator.rb
|
335
337
|
- lib/generators/revelry_content/install_generator.rb
|
338
|
+
- lib/generators/revelry_content/js_generator.rb
|
339
|
+
- lib/generators/revelry_content/migrations_generator.rb
|
336
340
|
- lib/generators/revelry_content/templates/create_revelry_content_contents.rb
|
337
341
|
- lib/generators/revelry_content/templates/create_versions.rb
|
342
|
+
- lib/generators/revelry_content/templates/initializer.rb
|
338
343
|
- lib/revelry_content.rb
|
339
344
|
- lib/revelry_content/configuration.rb
|
340
345
|
- lib/revelry_content/controller_concern.rb
|
@@ -582,7 +587,6 @@ files:
|
|
582
587
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/y_4IIBYH_ItxQoEeXjWm9Igwn6hAkl669CNtYfo0fyI.cache
|
583
588
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/zF_lfa7oUNjRgtepm9Ufi0DCzN_IXCJTDHRrH-JHu7Q.cache
|
584
589
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/zeqXKQA7lKQnvEaJsDO404ZaYCV0dk57z-SXUkfmz24.cache
|
585
|
-
- test/dummy/tmp/pids/server.pid
|
586
590
|
- test/dummy/vendor/assets/javascripts/revelry_content/content.js
|
587
591
|
- test/fixtures/rev_content/contents.yml
|
588
592
|
- test/helpers/rev_content/contents_helper_test.rb
|
@@ -853,7 +857,6 @@ test_files:
|
|
853
857
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZBbRPnK9QPeL_bLmZNttUrL0MMH6DtrYDpD4f1DbYtc.cache
|
854
858
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/zeqXKQA7lKQnvEaJsDO404ZaYCV0dk57z-SXUkfmz24.cache
|
855
859
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/zF_lfa7oUNjRgtepm9Ufi0DCzN_IXCJTDHRrH-JHu7Q.cache
|
856
|
-
- test/dummy/tmp/pids/server.pid
|
857
860
|
- test/dummy/vendor/assets/javascripts/revelry_content/content.js
|
858
861
|
- test/fixtures/rev_content/contents.yml
|
859
862
|
- test/helpers/rev_content/contents_helper_test.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
68157
|