genesis_rails 0.0.5 → 0.0.6

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: 36f07cca581a0890575ac3fbf3173f1d02310df6
4
- data.tar.gz: 2d5e841cf1478d9577ee68486b6fb7d94131393a
3
+ metadata.gz: 034c0463d469a64320bdb45d92004dc2f0c1fec2
4
+ data.tar.gz: a2ef51724dce5430fb212a30e69edb5c8801072e
5
5
  SHA512:
6
- metadata.gz: f55d892cc41c94f627f06b191dc7572d819c0206a082cdcec45ee4a92d60e2527309bcfb11c8625c0c6a84451bf1cc37fd234c058620903a463a2b60034da801
7
- data.tar.gz: 7d850697c7856e3ae576f28be1df33a1ffe5653d35da421d5c4d7f889d8e9661a27a03c74786ea720fa5e1accfa6f3f9bdfec68d9442e83e11fd7302e023e95a
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 :spec do
39
- namespace :templates do
40
- # desc "Copy all the templates from rspec to the application directory for customization. Already existing local copies will be overwritten"
41
- task :copy do
42
- generators_lib = File.join(Gem.loaded_specs["rspec-rails"].full_gem_path, "lib/generators")
43
- project_templates = "#{Rails.root}/lib/templates"
44
-
45
- default_templates = { "rspec" => %w{controller helper integration mailer model observer scaffold view} }
46
-
47
- default_templates.each do |type, names|
48
- local_template_type_dir = File.join(project_templates, type)
49
- FileUtils.mkdir_p local_template_type_dir
50
-
51
- names.each do |name|
52
- dst_name = File.join(local_template_type_dir, name)
53
- src_name = File.join(generators_lib, type, name, "templates")
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,4 @@
1
+ class window.MagicView
2
+ render: ->
3
+ cleanup: ->
4
+
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Copy all the overrided templates by genesis
3
+
4
+ Example:
5
+ rails generate services Thing
6
+
7
+ This will create: a lot of template files for a lot of generators
8
+
@@ -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
+
@@ -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
+
@@ -1,3 +1,3 @@
1
1
  module GenesisRails
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/genesis_rails.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  require "genesis_rails/engine"
2
- require "genesis_rails/railtie"
3
2
  require "genesis_rails/services/base"
4
3
  require "genesis_rails/services/crud"
4
+ require "genesis_rails/auto_include_magic_view"
5
+ require "genesis_rails/railtie"
5
6
 
6
7
  module GenesisRails
7
8
  end
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.5
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-06 00:00:00.000000000 Z
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/service_generator.rb
86
- - lib/generators/genesis_rails/templates/service.rb
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