toronto 0.0.3 → 0.0.4
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/README.md +6 -2
- data/lib/generators/toronto/install/install_generator.rb +32 -7
- data/lib/generators/toronto/install/templates/controllers/locales_controller.rb +16 -5
- data/lib/generators/toronto/install/templates/layouts/starter.html.haml +4 -0
- data/lib/generators/toronto/install/templates/lib/rails/generators/haml/scaffold/scaffold_generator.rb +10 -3
- data/lib/generators/toronto/install/templates/lib/templates/haml/scaffold/index.html.haml +1 -1
- data/lib/generators/toronto/install/templates/lib/templates/lang/cn.yml +23 -0
- data/lib/generators/toronto/install/templates/lib/templates/lang/de.yml +23 -0
- data/lib/generators/toronto/install/templates/lib/templates/{haml/scaffold → lang}/en.yml +0 -0
- data/lib/generators/toronto/install/templates/lib/templates/{haml/scaffold → lang}/fr.yml +0 -0
- data/lib/toronto/version.rb +1 -1
- data/toronto.gemspec +6 -3
- metadata +35 -15
- data/lib/generators/toronto/install/templates/config/initializers/locales.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 469462cba899157c14258af42ec9870165faa9c2
|
4
|
+
data.tar.gz: 43dea86b4a955b54335441dc917dab88185d136e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '028a6e9e281aeb522e7a8e149fd4d749d8d6132ff1c9d1f2c2567471bd5c0d363973846a9e51aaafe6eedab51b54a484bde0fdadc35968671ca76f1520e6619e'
|
7
|
+
data.tar.gz: 19ed3b651a491660f1ea1d0afe7c0b742ea7bada0d2b39be3dfb19e70bfa0b6387b46ded030c3c33739470f37dd719a2506ebfd1f4d51372ae5005de2312d0fb
|
data/README.md
CHANGED
@@ -27,7 +27,7 @@ Run bundle install:
|
|
27
27
|
|
28
28
|
## Generators
|
29
29
|
|
30
|
-
Get started:
|
30
|
+
Get started:
|
31
31
|
|
32
32
|
rails generate toronto:install
|
33
33
|
|
@@ -54,7 +54,11 @@ To print the options and usage run the command `rails toronto:install --help`
|
|
54
54
|
-se, [--stylesheet-engine=STYLESHEET_ENGINE] # Indicates when to generate stylesheet engine
|
55
55
|
# Default: scss
|
56
56
|
[--skip-turbolinks], [--no-skip-turbolinks] # Indicates when to generate skip turbolinks
|
57
|
-
|
57
|
+
[--languages=LANGUAGES_LIST] # Indicates wich languages to use
|
58
|
+
# Use --languages=en,fr,de,cn for english, french, german and chineese (the only languages that are implemented)
|
59
|
+
# The first language in the list will be the default language in rails.
|
60
|
+
# If option not given, then only the language english is generated
|
61
|
+
|
58
62
|
Runtime options:
|
59
63
|
-f, [--force] # Overwrite files that already exist
|
60
64
|
-p, [--pretend], [--no-pretend] # Run but do not make any changes
|
@@ -9,6 +9,7 @@ module Toronto
|
|
9
9
|
class_option :template_engine
|
10
10
|
class_option :stylesheet_engine
|
11
11
|
class_option :skip_turbolinks, type: :boolean, default: false, desc: "Skip Turbolinks on assets"
|
12
|
+
class_option :languages
|
12
13
|
|
13
14
|
def copy_scaffold_generator
|
14
15
|
directory 'lib/rails'
|
@@ -18,6 +19,10 @@ module Toronto
|
|
18
19
|
directory "lib/templates/#{options[:template_engine]}"
|
19
20
|
end
|
20
21
|
|
22
|
+
def copy_langs
|
23
|
+
directory 'lib/templates/lang', 'lib/rails/generators/lang'
|
24
|
+
end
|
25
|
+
|
21
26
|
def copy_form_builder
|
22
27
|
copy_file "form_builders/form_builder/_form.html.#{options[:template_engine]}", "lib/templates/#{options[:template_engine]}/scaffold/_form.html.#{options[:template_engine]}"
|
23
28
|
end
|
@@ -41,8 +46,7 @@ module Toronto
|
|
41
46
|
end
|
42
47
|
end
|
43
48
|
|
44
|
-
def
|
45
|
-
copy_file 'config/initializers/locales.rb', 'config/initializers/locales.rb'
|
49
|
+
def copy_locales_controller
|
46
50
|
copy_file 'controllers/locales_controller.rb', 'app/controllers/locales_controller.rb'
|
47
51
|
end
|
48
52
|
|
@@ -50,20 +54,41 @@ module Toronto
|
|
50
54
|
# TODO : use a template file
|
51
55
|
data = %{
|
52
56
|
def set_locale
|
53
|
-
I18n.locale =
|
57
|
+
I18n.locale = params[:locale] || I18n.default_locale
|
54
58
|
end
|
55
59
|
}
|
56
|
-
|
60
|
+
inject_into_file 'app/controllers/application_controller.rb', data, :before => /^end/
|
57
61
|
|
58
62
|
data = "\n before_action :set_locale"
|
59
|
-
|
63
|
+
inject_into_file 'app/controllers/application_controller.rb', data, :after => /^class ApplicationController < ActionController::Base/
|
60
64
|
end
|
61
65
|
|
62
66
|
def inject_locales_route
|
63
|
-
|
64
|
-
|
67
|
+
p options
|
68
|
+
langs = !options['languages'] || options['languages'].empty? ? 'en' : options['languages']
|
69
|
+
langs_array = langs.split(',' )
|
70
|
+
langs.gsub!( ',', '|' )
|
71
|
+
|
72
|
+
# Create the routes for language management
|
73
|
+
# This way lead to a lot of problem. We use ?locale=
|
74
|
+
# route 'end'
|
75
|
+
# route ' # Put all your routes inside the scope'
|
76
|
+
# route "scope '(:locale)', locale: /#{langs}/ do"
|
77
|
+
|
78
|
+
# Create the local file
|
79
|
+
data = "I18n.config.load_path += Dir['#{Rails.root.to_s}/config/locales/**/*.{rb,yml}']\n\n"
|
80
|
+
data << "I18n.config.available_locales = [ #{langs_array.map{ |e| ':'+e }.join( ', ' )} ]\n"
|
81
|
+
data << "I18n.default_locale = :#{langs_array.first}"
|
82
|
+
|
83
|
+
create_file 'config/initializers/locales.rb', data
|
84
|
+
|
85
|
+
route "put 'set_locale/:locale', constraints: { locale: /#{langs}/ }, to: 'locales#set'"
|
65
86
|
end
|
66
87
|
|
88
|
+
# def disable_regular_routes_generation
|
89
|
+
# create_file 'config/initializers/generators.rb', 'Rails.application.config.generators.skip_routes = true'
|
90
|
+
# end
|
91
|
+
|
67
92
|
def inject_menu_helper
|
68
93
|
# TODO : use a template file
|
69
94
|
data = %{
|
@@ -1,14 +1,25 @@
|
|
1
1
|
class LocalesController < ApplicationController
|
2
2
|
|
3
3
|
def set
|
4
|
-
#
|
4
|
+
# implement it this way : https://lingohub.com/frameworks-file-formats/rails5-i18n-ruby-on-rails/
|
5
|
+
# Lead to a lot of problems
|
5
6
|
|
6
|
-
|
7
|
+
if params[:locale]
|
8
|
+
I18n.locale = params[:locale]
|
9
|
+
return_to = request.referer
|
7
10
|
|
8
|
-
|
9
|
-
|
11
|
+
parsed_uri = URI.parse(return_to)
|
12
|
+
params = parsed_uri.query ? CGI::parse( parsed_uri.query ) : {}
|
13
|
+
params['locale'] = I18n.locale
|
10
14
|
|
11
|
-
|
15
|
+
redirect_host = parsed_uri.scheme + '://' + parsed_uri.host
|
16
|
+
redirect_host += ( ':' + parsed_uri.port.to_s ) if parsed_uri.port && parsed_uri.port != 80 && parsed_uri.port != 443
|
17
|
+
redirect_host += parsed_uri.path
|
18
|
+
|
19
|
+
redirect_host += ( '?' + URI.encode_www_form(params) )
|
20
|
+
|
21
|
+
redirect_to redirect_host
|
22
|
+
end
|
12
23
|
end
|
13
24
|
|
14
25
|
end
|
@@ -40,6 +40,10 @@
|
|
40
40
|
%span{ class: 'flag flag-gb' }
|
41
41
|
= link_to '/set_locale/fr', method: :put do
|
42
42
|
%span{ class: 'flag flag-fr' }
|
43
|
+
= link_to '/set_locale/de', method: :put do
|
44
|
+
%span{ class: 'flag flag-de' }
|
45
|
+
= link_to '/set_locale/cn', method: :put do
|
46
|
+
%span{ class: 'flag flag-cn' }
|
43
47
|
.container
|
44
48
|
- flash.each do |name, msg|
|
45
49
|
= content_tag :div, class: "alert alert-#{name == :error ? 'danger' : 'success' } alert-dismissable", role: 'alert' do
|
@@ -4,17 +4,20 @@ require 'yaml'
|
|
4
4
|
module Haml
|
5
5
|
module Generators
|
6
6
|
class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
|
7
|
-
source_root File.expand_path(
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
8
|
|
9
9
|
def copy_view_files
|
10
10
|
available_views.each do |view|
|
11
11
|
filename = filename_with_extensions(view)
|
12
|
-
template "#{view}.html.haml", File.join(
|
12
|
+
template "#{view}.html.haml", File.join('app/views', controller_file_path, filename)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
def copy_and_update_languages_files
|
17
|
-
|
17
|
+
|
18
|
+
languages = I18n.config.available_locales.map(&:to_s)
|
19
|
+
# source_paths << File.expand_path('../rails/lang', __FILE__)
|
20
|
+
source_paths << ::Rails.root + 'lib/rails/generators/lang'
|
18
21
|
|
19
22
|
languages.each do |lang|
|
20
23
|
yaml_path = File.join( 'config/locales', lang, "#{plural_table_name}.yml" )
|
@@ -54,6 +57,10 @@ module Haml
|
|
54
57
|
insert_into_file 'app/views/layouts/application.html.haml', data, :after => '%ul.nav.navbar-nav'
|
55
58
|
end
|
56
59
|
|
60
|
+
# def add_ressource_route
|
61
|
+
# inject_into_file 'config/routes.rb', "\n resources :#{plural_table_name}", after: /scope.*do/, verbose: false, force: false
|
62
|
+
# end
|
63
|
+
|
57
64
|
protected
|
58
65
|
|
59
66
|
def available_views
|
@@ -0,0 +1,23 @@
|
|
1
|
+
cn:
|
2
|
+
<%= plural_table_name %>:
|
3
|
+
index:
|
4
|
+
title: 目录
|
5
|
+
edit: 编辑
|
6
|
+
new: 新
|
7
|
+
show: 显示
|
8
|
+
delete: 删除
|
9
|
+
confirm: 你确定
|
10
|
+
edit:
|
11
|
+
title: 编辑
|
12
|
+
back: 以前
|
13
|
+
show: 显示
|
14
|
+
show:
|
15
|
+
title: 显示
|
16
|
+
back: 以前
|
17
|
+
edit: 编辑
|
18
|
+
new:
|
19
|
+
title: 新
|
20
|
+
back: 以前
|
21
|
+
form:
|
22
|
+
submit: 提交
|
23
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
de:
|
2
|
+
<%= plural_table_name %>:
|
3
|
+
index:
|
4
|
+
title: Liste
|
5
|
+
edit: Bearbeiten
|
6
|
+
new: Neu
|
7
|
+
show: Zeigen
|
8
|
+
delete: Entfernen
|
9
|
+
confirm: Sind sie sicher ?
|
10
|
+
edit:
|
11
|
+
title: Bearbeiten
|
12
|
+
back: Zurück
|
13
|
+
show: Zeigen
|
14
|
+
show:
|
15
|
+
title: Zeigen
|
16
|
+
back: Zurück
|
17
|
+
edit: Bearbeiten
|
18
|
+
new:
|
19
|
+
title: Neu
|
20
|
+
back: Zurück
|
21
|
+
form:
|
22
|
+
submit: Ubernehmen
|
23
|
+
|
File without changes
|
File without changes
|
data/lib/toronto/version.rb
CHANGED
data/toronto.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ['Cédric Zuger']
|
10
10
|
spec.email = ['zuger.cedric@gmail.com']
|
11
11
|
spec.summary = 'inTernatiOnalization Ready bOotstrap geNeraTOr'
|
12
|
-
spec.description = '
|
12
|
+
spec.description = 'Internationalized bootstrap ready scaffold generator'
|
13
13
|
spec.homepage = 'https://github.com/czuger/toronto'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
@@ -21,10 +21,13 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
24
|
-
spec.add_development_dependency 'rake'
|
24
|
+
spec.add_development_dependency 'rake', '~> 12'
|
25
25
|
# spec.add_development_dependency 'haml-rails', '>= 0.9.0'
|
26
26
|
|
27
|
-
spec.add_runtime_dependency 'railties', '~>
|
27
|
+
spec.add_runtime_dependency 'railties', '~> 5'
|
28
|
+
spec.add_runtime_dependency 'bootstrap-sass', '~> 3.2', '>= 3.2.0'
|
28
29
|
# spec.add_runtime_dependency 'haml-rails', '>= 0.9.0'
|
29
30
|
|
31
|
+
spec.required_ruby_version = '>= 2.3'
|
32
|
+
|
30
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toronto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cédric Zuger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,32 +28,51 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '12'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '12'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: railties
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bootstrap-sass
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.2'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 3.2.0
|
48
65
|
type: :runtime
|
49
66
|
prerelease: false
|
50
67
|
version_requirements: !ruby/object:Gem::Requirement
|
51
68
|
requirements:
|
52
69
|
- - "~>"
|
53
70
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3.
|
55
|
-
|
56
|
-
|
71
|
+
version: '3.2'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 3.2.0
|
75
|
+
description: Internationalized bootstrap ready scaffold generator
|
57
76
|
email:
|
58
77
|
- zuger.cedric@gmail.com
|
59
78
|
executables: []
|
@@ -75,7 +94,6 @@ files:
|
|
75
94
|
- lib/generators/toronto/install/templates/assets/stylesheets/starter.css
|
76
95
|
- lib/generators/toronto/install/templates/assets/stylesheets/starter.less
|
77
96
|
- lib/generators/toronto/install/templates/assets/stylesheets/starter.scss
|
78
|
-
- lib/generators/toronto/install/templates/config/initializers/locales.rb
|
79
97
|
- lib/generators/toronto/install/templates/controllers/locales_controller.rb
|
80
98
|
- lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.erb
|
81
99
|
- lib/generators/toronto/install/templates/form_builders/form_builder/_form.html.haml
|
@@ -92,11 +110,13 @@ files:
|
|
92
110
|
- lib/generators/toronto/install/templates/lib/templates/erb/scaffold/show.html.erb
|
93
111
|
- lib/generators/toronto/install/templates/lib/templates/haml/controller/view.html.haml
|
94
112
|
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/edit.html.haml
|
95
|
-
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/en.yml
|
96
|
-
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/fr.yml
|
97
113
|
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/index.html.haml
|
98
114
|
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/new.html.haml
|
99
115
|
- lib/generators/toronto/install/templates/lib/templates/haml/scaffold/show.html.haml
|
116
|
+
- lib/generators/toronto/install/templates/lib/templates/lang/cn.yml
|
117
|
+
- lib/generators/toronto/install/templates/lib/templates/lang/de.yml
|
118
|
+
- lib/generators/toronto/install/templates/lib/templates/lang/en.yml
|
119
|
+
- lib/generators/toronto/install/templates/lib/templates/lang/fr.yml
|
100
120
|
- lib/generators/toronto/install/templates/lib/templates/slim/controller/view.html.slim
|
101
121
|
- lib/generators/toronto/install/templates/lib/templates/slim/scaffold/edit.html.slim
|
102
122
|
- lib/generators/toronto/install/templates/lib/templates/slim/scaffold/index.html.slim
|
@@ -291,7 +311,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
291
311
|
requirements:
|
292
312
|
- - ">="
|
293
313
|
- !ruby/object:Gem::Version
|
294
|
-
version: '
|
314
|
+
version: '2.3'
|
295
315
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
296
316
|
requirements:
|
297
317
|
- - ">="
|
@@ -299,7 +319,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
299
319
|
version: '0'
|
300
320
|
requirements: []
|
301
321
|
rubyforge_project:
|
302
|
-
rubygems_version: 2.6.
|
322
|
+
rubygems_version: 2.6.13
|
303
323
|
signing_key:
|
304
324
|
specification_version: 4
|
305
325
|
summary: inTernatiOnalization Ready bOotstrap geNeraTOr
|