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 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