genesis_rails 0.0.5 → 0.0.6
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/Rakefile +16 -18
- data/app/assets/javascripts/magic_view/init.coffee +25 -0
- data/app/assets/javascripts/magic_view.coffee +4 -0
- data/lib/generators/genesis_rails/copy_templates/USAGE +8 -0
- data/lib/generators/genesis_rails/copy_templates/copy_templates_generator.rb +17 -0
- data/lib/generators/genesis_rails/{USAGE → service/USAGE} +0 -0
- data/lib/generators/genesis_rails/{service_generator.rb → service/service_generator.rb} +0 -0
- data/lib/generators/genesis_rails/{templates → service/templates}/service.rb +0 -0
- data/lib/genesis_rails/auto_include_magic_view.rb +52 -0
- data/lib/genesis_rails/railtie.rb +5 -0
- data/lib/genesis_rails/templates/coffee/assets/javascript.coffee +11 -0
- data/lib/genesis_rails/version.rb +1 -1
- data/lib/genesis_rails.rb +2 -1
- metadata +39 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 034c0463d469a64320bdb45d92004dc2f0c1fec2
|
4
|
+
data.tar.gz: a2ef51724dce5430fb212a30e69edb5c8801072e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 077fc52cef396a82c648a45ecd3b1180d9650d33e1ba8c612956fa0eb22a10ae50c23cd3a901626e8a9c93d8b6bdda69d8d2569b29df918a515bd82685ca1171
|
7
|
+
data.tar.gz: 03f8e962c83839de2706a588d46eec36fc412507461911d8279ccc1c77022123282bfcbf97b198009db255fa60960d0c7361789c54cd20bf8a3efa9ff0d2c041
|
data/Rakefile
CHANGED
@@ -35,24 +35,22 @@ end
|
|
35
35
|
|
36
36
|
task default: :test
|
37
37
|
|
38
|
-
namespace :
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
FileUtils.cp_r src_name, dst_name
|
55
|
-
end
|
38
|
+
namespace :templates do
|
39
|
+
# desc "Copy all the templates from rspec to the application directory for customization. Already existing local copies will be overwritten"
|
40
|
+
task :rspec do
|
41
|
+
generators_lib = File.join(Gem.loaded_specs["rspec-rails"].full_gem_path, "lib/generators")
|
42
|
+
project_templates = "#{Rails.root}/lib/templates"
|
43
|
+
|
44
|
+
default_templates = { "rspec" => %w{controller helper integration mailer model observer scaffold view} }
|
45
|
+
|
46
|
+
default_templates.each do |type, names|
|
47
|
+
local_template_type_dir = File.join(project_templates, type)
|
48
|
+
FileUtils.mkdir_p local_template_type_dir
|
49
|
+
|
50
|
+
names.each do |name|
|
51
|
+
dst_name = File.join(local_template_type_dir, name)
|
52
|
+
src_name = File.join(generators_lib, type, name, "templates")
|
53
|
+
FileUtils.cp_r src_name, dst_name
|
56
54
|
end
|
57
55
|
end
|
58
56
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
pageLoad = ->
|
2
|
+
actionClassName = $('body').data('action-view')
|
3
|
+
window.currentView = try
|
4
|
+
eval("new #{actionClassName}()")
|
5
|
+
catch error
|
6
|
+
controllerClassName = $('body').data('controller-view')
|
7
|
+
window.currentView = try
|
8
|
+
eval("new #{controllerClassName}()")
|
9
|
+
catch error
|
10
|
+
new MagicView()
|
11
|
+
window.currentView.render()
|
12
|
+
|
13
|
+
$ ->
|
14
|
+
pageLoad()
|
15
|
+
|
16
|
+
# turbolinks
|
17
|
+
$(document).on 'page:load', pageLoad
|
18
|
+
$(document).on 'page:before-change', ->
|
19
|
+
window.currentView.cleanup()
|
20
|
+
true
|
21
|
+
$(document).on 'page:restore', ->
|
22
|
+
window.currentView.cleanup()
|
23
|
+
pageLoad()
|
24
|
+
true
|
25
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module GenesisRails
|
3
|
+
class CopyTemplatesGenerator < Rails::Generators::Base
|
4
|
+
def self.source_root
|
5
|
+
@source_root ||= GenesisRails::Engine.root.join "lib/genesis_rails/templates"
|
6
|
+
end
|
7
|
+
|
8
|
+
def copy_template_files
|
9
|
+
root = self.class.source_root
|
10
|
+
Dir[root.join "**/*.*"].each do |file|
|
11
|
+
copy_file file, "lib/templates/#{file.gsub(root.to_s, "")}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module GenesisRails
|
2
|
+
module AutoInclude
|
3
|
+
module Methods
|
4
|
+
def auto_include_magic_view_data_attr
|
5
|
+
GenesisRails::AutoInclude::MagicView.add_data_attr(self)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class MagicView
|
10
|
+
OPENING_BODY_TAG = "<body"
|
11
|
+
|
12
|
+
attr_reader :controller
|
13
|
+
|
14
|
+
def self.add_data_attr(controller)
|
15
|
+
data_attr_include = new(controller)
|
16
|
+
data_attr_include.include_magic_view_classes!
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(kontroller)
|
20
|
+
@controller = kontroller
|
21
|
+
end
|
22
|
+
|
23
|
+
def include_magic_view_classes!
|
24
|
+
response.body = response.body.gsub(
|
25
|
+
OPENING_BODY_TAG,
|
26
|
+
'\\0' + " data-action-view=\"#{action_class_name}View\"
|
27
|
+
data-controller-view=\"#{controller_class_name}View\"")
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def response
|
33
|
+
controller.response
|
34
|
+
end
|
35
|
+
|
36
|
+
def action_class_name
|
37
|
+
action = case controller.action_name
|
38
|
+
when "create" then "new"
|
39
|
+
when "update" then "edit"
|
40
|
+
else
|
41
|
+
controller.action_name
|
42
|
+
end
|
43
|
+
action = action.camelize
|
44
|
+
"#{controller_class_name}#{action}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def controller_class_name
|
48
|
+
controller.class.name.gsub('::', '').gsub(/Controller$/, '')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -3,5 +3,10 @@ module GenesisRails
|
|
3
3
|
config.app_generators do |g|
|
4
4
|
g.templates.unshift File::expand_path('../templates', __FILE__)
|
5
5
|
end
|
6
|
+
|
7
|
+
initializer "magic-view" do |app|
|
8
|
+
ActionController::Base.send :include, GenesisRails::AutoInclude::Methods
|
9
|
+
ActionController::Base.after_action :auto_include_magic_view_data_attr
|
10
|
+
end
|
6
11
|
end
|
7
12
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class <%= class_name %>View extends MagicView
|
2
|
+
render: ->
|
3
|
+
# override this method and initialize/bind your things for the index page
|
4
|
+
# but don't forget to always call super
|
5
|
+
super
|
6
|
+
|
7
|
+
cleanup: ->
|
8
|
+
# everything you initialize/bind on render, rather destroy/unbind in this
|
9
|
+
# method, and don't forget the super
|
10
|
+
super
|
11
|
+
|
data/lib/genesis_rails.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: genesis_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kelvinst
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: coffee-rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rspec-rails
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '2.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
69
97
|
description: |-
|
70
98
|
This gem is a set of generators, templates and helpers to
|
71
99
|
start a brand new rails project without too many code to
|
@@ -79,17 +107,23 @@ files:
|
|
79
107
|
- LICENSE
|
80
108
|
- README.md
|
81
109
|
- Rakefile
|
110
|
+
- app/assets/javascripts/magic_view.coffee
|
111
|
+
- app/assets/javascripts/magic_view/init.coffee
|
82
112
|
- app/assets/stylesheets/scaffold.css
|
83
113
|
- config/routes.rb
|
84
|
-
- lib/generators/genesis_rails/USAGE
|
85
|
-
- lib/generators/genesis_rails/
|
86
|
-
- lib/generators/genesis_rails/
|
114
|
+
- lib/generators/genesis_rails/copy_templates/USAGE
|
115
|
+
- lib/generators/genesis_rails/copy_templates/copy_templates_generator.rb
|
116
|
+
- lib/generators/genesis_rails/service/USAGE
|
117
|
+
- lib/generators/genesis_rails/service/service_generator.rb
|
118
|
+
- lib/generators/genesis_rails/service/templates/service.rb
|
87
119
|
- lib/genesis_rails.rb
|
120
|
+
- lib/genesis_rails/auto_include_magic_view.rb
|
88
121
|
- lib/genesis_rails/engine.rb
|
89
122
|
- lib/genesis_rails/railtie.rb
|
90
123
|
- lib/genesis_rails/services/base.rb
|
91
124
|
- lib/genesis_rails/services/crud.rb
|
92
125
|
- lib/genesis_rails/templates/active_record/model/model.rb
|
126
|
+
- lib/genesis_rails/templates/coffee/assets/javascript.coffee
|
93
127
|
- lib/genesis_rails/templates/erb/scaffold/_form.html.erb
|
94
128
|
- lib/genesis_rails/templates/erb/scaffold/edit.html.erb
|
95
129
|
- lib/genesis_rails/templates/erb/scaffold/index.html.erb
|