shoestrap 1.1.1 → 1.2.0.pre1

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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +45 -0
  4. data/features/command_wrapper_helper.rb +2 -2
  5. data/features/features_helper.rb +1 -1
  6. data/features/shoestrap/generators/admin_generator_spec.rb +50 -0
  7. data/features/shoestrap/generators/cms_generator_spec.rb +5 -0
  8. data/lib/generators/shoestrap/admin_generator.rb +75 -0
  9. data/lib/generators/shoestrap/base_generator.rb +7 -2
  10. data/lib/generators/shoestrap/cms_generator.rb +13 -9
  11. data/lib/shoestrap/version.rb +1 -1
  12. data/shoestrap.gemspec +2 -0
  13. data/templates/admin_generator/devise.html.haml +16 -0
  14. data/templates/admin_generator/devise_views/mailer/reset_password_instructions.html.haml +6 -0
  15. data/templates/admin_generator/devise_views/mailer/unlock_instructions.html.haml +5 -0
  16. data/templates/admin_generator/devise_views/passwords/edit.html.haml +11 -0
  17. data/templates/admin_generator/devise_views/passwords/new.html.haml +8 -0
  18. data/templates/admin_generator/devise_views/sessions/new.html.haml +9 -0
  19. data/templates/admin_generator/devise_views/shared/_links.haml +19 -0
  20. data/templates/admin_generator/translations/admin.de.yml +20 -0
  21. data/templates/admin_generator/translations/devise_admin.de.yml +31 -0
  22. data/templates/cms_generator/_main_navigation.html.haml +0 -1
  23. data/templates/cms_generator/base_controller_with_kuhsaft.rb +1 -1
  24. data/templates/cms_generator/base_controller_without_kuhsaft.rb +1 -1
  25. data/templates/cms_generator/inherited_views/base/_form.html.haml +4 -1
  26. data/templates/cms_generator/translations/{resource.yml → resource.yml.erb} +6 -4
  27. data/templates/cms_generator/translations/shoestrap_base.yml +1 -1
  28. metadata +17 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5aa2875d7d33e58917057444301c1a01e9ff0674
4
- data.tar.gz: 7f24c9b25a5b49dd4c0c0aa4b40c5060cc11e84d
3
+ metadata.gz: f1ba2f15eb6a56881dad023f467e41abd045607d
4
+ data.tar.gz: 208c4381a6cf5d67ea8861b765f06f2fa3d7c58f
5
5
  SHA512:
6
- metadata.gz: 9d979439913bf8c99659d8b7aa0fc0a51bfe3b6aaf6ef1b10b9a68a9ad1ebb7fcc971b299eb487370cc002f9af105eab11c5206842356576a377b3e5a0e188e6
7
- data.tar.gz: f80ac4517f85329668f0391fa45d208ce6863826d6db3c0eda9ff334f4352b6e0b7f0bf213e883395dcec8792c924f0645141ab6693dd660f1e9a844e1cb040d
6
+ metadata.gz: 382a19a644f9e9217c39bb9ac276bea57fbde51fdd1cd09b76c0023b891ccc1251317ee5c1efc55b2d2e9a2da87dc028614930889029f6d479bc0f3212a472fd
7
+ data.tar.gz: f1fb21c9875c81059c2ef5f1308dd0b7fd44cfc545647d14247282e1725d35c765fd9ccbac77054686021bea55ac8d8112f011da295336f3d4c07de20296d639
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## master
4
+
5
+ - Various bugfixes/tweaks for cms generator
6
+
3
7
  ## 1.1.1 - 2013-10-07
4
8
 
5
9
  - Inject Kuhsaft Helper into ApplicationController so it is available in the host app
data/README.md CHANGED
@@ -15,6 +15,51 @@ work. Your mileage may vary!
15
15
 
16
16
  # Building a Rails App with shoestrap
17
17
 
18
+ ## Generating a new application
19
+
20
+ You can generate a new rails application with shoestrap by using the
21
+ shoestrap new command:
22
+
23
+ ```
24
+ shoestrap new foo
25
+ ```
26
+
27
+ Since `shoestrap new` is just a wrapper for rails new, the options you
28
+ can pass to rails new can also be given to shoestrap. Additionally you
29
+ can specify following shoestrap specific options on the command line:
30
+
31
+ ```
32
+ --kuhsaft=true # Will install and set up the Rails app with Kuhsaft
33
+ --css=bootstrap # Will set up the app to use the given CSS
34
+ # Framework. Available frameworks: foundation, bootstrap
35
+ ```
36
+
37
+ ## Generating a CMS Resource
38
+
39
+ Use the cms generator to generate a simple CRUD Backend for a given
40
+ resource:
41
+
42
+ ```
43
+ rails generate shoestrap:cms car wheels:integer model:string
44
+ rake db:migrate
45
+ ```
46
+
47
+ In the generated model you can specify which attributes are shown in the
48
+ index view, and which attributes are editable.
49
+
50
+ The CRUD Backend will be available under /cms/<resource-name>
51
+
52
+ ## CMS Resources and Associations
53
+
54
+ If you want to show the name of an associaton, build a wrapper method
55
+ for it in the model and add it to the index_attributes.
56
+
57
+ ## Adding Authentication to the CMS
58
+
59
+ The shoestrap admin generator will add an Admin model that uses devise
60
+ for authentication. It is not registerable, so you will have to create
61
+ the first user in the rails console.
62
+
18
63
  ## Meta Tags
19
64
 
20
65
  Shoestrap expects you to define a `content_for :head block` where you
@@ -33,7 +33,7 @@ def generate_test_app_with_shoestrap(options=nil)
33
33
  # destroy all scaffolds
34
34
  Dir['app/models/*.rb','app/models/cms/*.rb'].each do |path|
35
35
  model_name = File.basename(path).gsub(File.extname(path),'')
36
- drop_shoestrap_scaffold_for model_name, options
36
+ drop_shoestrap_scaffold_for(model_name, options) unless model_name == 'admin'
37
37
  end
38
38
 
39
39
  result = bundle_exec 'rake db:drop db:create db:migrate db:seed'
@@ -91,4 +91,4 @@ end
91
91
 
92
92
  def ts
93
93
  Time.now.strftime('%H:%M:%S')
94
- end
94
+ end
@@ -135,4 +135,4 @@ RSpec.configure do |config|
135
135
  config.before(:suite) do
136
136
  remove_test_apps if ENV['REMOVE_CACHE_AT_FIRST']
137
137
  end
138
- end
138
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../features_helper'
2
+
3
+ describe 'rails generate shoestrap:admin' do
4
+
5
+ before :all do
6
+ generate_test_app_with_shoestrap
7
+ rails 'generate shoestrap:admin'
8
+ end
9
+
10
+ let(:app_path){ application_path }
11
+
12
+ it 'generates an admin cms model' do
13
+ expect(application_file('app/models/admin.rb')).not_to be_nil
14
+ expect(Dir.glob("#{app_path}/db/migrate/*create*admins*").size).to be 1
15
+ expect(application_file('config/routes.rb')).to match(/resources :admins/)
16
+ end
17
+
18
+ it 'installs devise' do
19
+ expect(application_file('Gemfile')).to match('devise')
20
+ expect(application_file('config/initializers/devise.rb')).not_to be_nil
21
+ end
22
+
23
+ it 'disables the devise registerable module' do
24
+ expect(application_file('app/models/admin.rb')).not_to match(':registerable')
25
+ end
26
+
27
+ it 'configures devise to use the devise layout' do
28
+ expect(application_file('config/initializers/devise.rb')).to match("devise_layout = 'devise'")
29
+ end
30
+
31
+ it 'adds a before filter to kuhsaft controller' do
32
+ expect(application_file('config/initializers/kuhsaft.rb')).to match('before_filter :authenticate_admin!')
33
+ end
34
+
35
+ it 'adds a before filter to shoestrap base controller' do
36
+ expect(application_file('app/controllers/shoestrap/base_controller.rb')).to match('before_filter :authenticate_admin!')
37
+ end
38
+
39
+ it 'installs the devise layout' do
40
+ expect(application_file('app/views/layouts/devise.html.haml')).not_to be_nil
41
+ end
42
+
43
+ it 'installs the devise views' do
44
+ expect(application_file('app/views/admins/sessions/new.html.haml')).not_to be_nil
45
+ end
46
+
47
+ it 'installs the devise translations' do
48
+ expect(application_file('config/locales/de/admin.yml')).not_to be_nil
49
+ end
50
+ end
@@ -54,6 +54,11 @@ describe 'rails generate shoestrap:cms' do
54
54
  expect(application_file('app/models/car.rb', options)).not_to be_nil
55
55
  end
56
56
 
57
+ it 'uses the fields given in the command line to pre-fill editable and index attributes' do
58
+ expect(application_file('app/models/car.rb', options)).to match('editable_attributes :tires, :model')
59
+ expect(application_file('app/models/car.rb', options)).to match('index_attributes :tires, :model')
60
+ end
61
+
57
62
  it 'generates a migration' do
58
63
  expect(Dir.glob("#{app_path}/db/migrate/*create*cars*").size).to be 1
59
64
  end
@@ -0,0 +1,75 @@
1
+ require 'rails/generators'
2
+ require 'fileutils'
3
+ require_relative 'base_generator'
4
+ require_relative '../../shoestrap/shell'
5
+
6
+ module Shoestrap
7
+ class AdminGenerator < BaseGenerator
8
+
9
+ # FIXME: set editable attributes => could be fixed by dynamic editable attributes generation in cms generator
10
+
11
+ def generate_admin_model
12
+ generate 'shoestrap:cms', 'admin', 'first_name:string last_name:string'
13
+ end
14
+
15
+ def add_gems_and_bundle
16
+ gem 'devise'
17
+ gem 'devise-i18n'
18
+ Shell.exec('bundle')
19
+ ENV['BUNDLE_GEMFILE'] = File.join(Dir.pwd, 'Gemfile')
20
+ require 'bundler'
21
+ Bundler.require(:default)
22
+ end
23
+
24
+ def setup_devise
25
+ generate 'devise:install'
26
+ generate 'devise', 'admin'
27
+ gsub_file 'config/initializers/devise.rb', ' # config.scoped_views = false', ' config.scoped_views = true'
28
+ inject_into_file 'config/initializers/devise.rb', before: '# Use this hook to configure devise mailer, warden hooks and so forth.' do
29
+ <<-eos.gsub(/^ {8}/, '').chomp
30
+ Rails.application.config.to_prepare do
31
+ devise_layout = 'devise'
32
+ Devise::SessionsController.layout devise_layout
33
+ Devise::RegistrationsController.layout devise_layout
34
+ Devise::ConfirmationsController.layout devise_layout
35
+ Devise::UnlocksController.layout devise_layout
36
+ Devise::PasswordsController.layout devise_layout
37
+ end
38
+
39
+ eos
40
+ end
41
+ end
42
+
43
+ def disable_registration
44
+ gsub_file 'app/models/admin.rb', / :registerable,/, ''
45
+ end
46
+
47
+ def add_before_filters
48
+ inject_into_file 'app/controllers/shoestrap/base_controller.rb', "before_filter :authenticate_admin!\n\n", before: 'def show'
49
+ inject_into_file 'config/initializers/kuhsaft.rb', before: ' Kuhsaft::Engine.configure do' do
50
+ <<-eos.gsub(/^ {4}/, '').chomp
51
+ Kuhsaft::Cms::AdminController.class_eval do
52
+ before_filter :authenticate_admin!
53
+ end
54
+
55
+ eos
56
+ end
57
+ end
58
+
59
+ def install_views
60
+ copy_file 'devise.html.haml', 'app/views/layouts/devise.html.haml'
61
+ directory 'devise_views', 'app/views/admins'
62
+ end
63
+
64
+ def install_translations
65
+ copy_file 'translations/devise_admin.de.yml', 'config/locales/de/devise_admin.yml'
66
+ copy_file 'translations/admin.de.yml', 'config/locales/de/admin.yml', force: true
67
+ end
68
+
69
+ def add_logout_link
70
+ inject_into_file 'app/views/kuhsaft/cms/admin/_main_navigation.html.haml',
71
+ " = link_to t('.logout'), destroy_admin_session_path, :method => :delete\n",
72
+ after: "%p.navbar-text.pull-right\n"
73
+ end
74
+ end
75
+ end
@@ -8,6 +8,11 @@ module Shoestrap
8
8
  end
9
9
 
10
10
  private
11
+
12
+ def kuhsaft_is_installed?
13
+ @kuhsaft_is_installed ||= !!defined?(Kuhsaft)
14
+ end
15
+
11
16
  def shoestrap_logger
12
17
  self.class.shoestrap_logger
13
18
  end
@@ -26,6 +31,7 @@ module Shoestrap
26
31
  end
27
32
 
28
33
  private
34
+
29
35
  def rails_root
30
36
  if defined?(Rails) && Rails.respond_to?(:root)
31
37
  Rails.root.to_s
@@ -36,6 +42,5 @@ module Shoestrap
36
42
  end
37
43
  end
38
44
  end
39
-
40
45
  end
41
- end
46
+ end
@@ -22,13 +22,13 @@ module Shoestrap
22
22
  def add_navigation_link
23
23
  if kuhsaft_is_installed?
24
24
  inject_into_file 'config/cms_navigation.rb', :before => 'primary.dom_class = \'nav\'' do
25
- "primary.item :#{model_name}_nav, t('cms.#{model_name}.navigation.title'), #{route_name}_path\n "
25
+ "primary.item :#{model_name}_nav, t('cms.#{plural_name}.navigation_title'), #{route_name}_path\n "
26
26
  end
27
27
  end
28
28
  end
29
29
 
30
30
  def add_model_and_migration
31
- generate 'model', model_name
31
+ generate 'model', model_name, ARGV[1..-1].join(' ')
32
32
  inject_into_file "app/models/#{model_name}.rb", before: 'class' do
33
33
  "require 'shoestrap/cms_model'\n\n"
34
34
  end
@@ -38,17 +38,17 @@ module Shoestrap
38
38
  include Shoestrap::CMSModel
39
39
 
40
40
  # TODO: Define what attributes are shown in the form and permitted by strong parameters
41
- # editable_attributes :title, :body
41
+ editable_attributes #{attribute_keys_as_string}
42
42
 
43
43
  # TODO: Define what attributes are shown in the index view
44
- # index_attributes :id, :title
44
+ index_attributes #{attribute_keys_as_string}
45
45
 
46
46
  eos
47
47
  end
48
48
  end
49
49
 
50
50
  def add_resource_translations
51
- copy_file 'translations/resource.yml', "config/locales/de/#{model_name}.yml"
51
+ template 'translations/resource.yml.erb', "config/locales/de/#{model_name}.yml"
52
52
  end
53
53
 
54
54
  def add_controller
@@ -89,10 +89,6 @@ module Shoestrap
89
89
  copy_file 'translations/shoestrap_base.yml', 'config/locales/de/shoestrap_base.yml'
90
90
  end
91
91
 
92
- def kuhsaft_is_installed?
93
- @kuhsaft_is_installed ||= !!defined?(Kuhsaft)
94
- end
95
-
96
92
  def resource_route_name
97
93
  "cms/#{model_name}"
98
94
  end
@@ -112,5 +108,13 @@ module Shoestrap
112
108
  def route_name
113
109
  controller_name.gsub('/', '_')
114
110
  end
111
+
112
+ def attributes
113
+ ARGV[1..-1].map {|x| x.split(':').first }
114
+ end
115
+
116
+ def attribute_keys_as_string
117
+ ARGV[1..-1].map {|x| ":#{x.split(':').first}" }.join(', ')
118
+ end
115
119
  end
116
120
  end
@@ -1,3 +1,3 @@
1
1
  module Shoestrap
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0.pre1"
3
3
  end
data/shoestrap.gemspec CHANGED
@@ -36,6 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "modernizr-rails"
37
37
  spec.add_development_dependency "pry-rails"
38
38
  spec.add_development_dependency "rails-i18n"
39
+ spec.add_development_dependency "devise-i18n"
40
+ spec.add_development_dependency "devise"
39
41
  spec.add_development_dependency "i18n-missing_translations"
40
42
  spec.add_development_dependency "capybara"
41
43
  spec.add_development_dependency "capybara-webkit"
@@ -0,0 +1,16 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %meta{ charset: "utf-8" }
5
+ %title Screen Concept CMS
6
+ = stylesheet_link_tag 'kuhsaft/cms/application.css', :media => 'screen, projection'
7
+ = stylesheet_link_tag 'kuhsaft/cms/customizations.css', :media => 'screen, projection'
8
+ = csrf_meta_tag
9
+
10
+ %body
11
+ .container.cms
12
+ .row
13
+ .span3
14
+ .span6
15
+ = yield
16
+ .span3
@@ -0,0 +1,6 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Someone has requested a link to change your password. You can do this through the link below.
4
+ %p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
5
+ %p If you didn't request this, please ignore this email.
6
+ %p Your password won't change until you access the link above and create a new one.
@@ -0,0 +1,5 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Your account has been locked due to an excessive number of unsuccessful sign in attempts.
4
+ %p Click the link below to unlock your account:
5
+ %p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
@@ -0,0 +1,11 @@
1
+ %h2= t('devise.change_password')
2
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }, :wrapper => :bootstrap) do |f|
3
+ = f.error_notification
4
+ = f.input :reset_password_token, :as => :hidden
5
+ = f.full_error :reset_password_token
6
+ .form-inputs
7
+ = f.input :password, :label => t("devise.new_password"), :required => true, :autofocus => true
8
+ = f.input :password_confirmation, :label => t("devise.confirm_new_password"), :required => true
9
+ .form-actions
10
+ = f.button :submit, t('devise.change_password')
11
+ = render "admin/shared/links"
@@ -0,0 +1,8 @@
1
+ %h2= t('devise.forgot_password')
2
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }, :wrapper => :bootstrap) do |f|
3
+ = f.error_notification
4
+ .form-inputs
5
+ = f.input :email, :required => true, :autofocus => true
6
+ .form-actions
7
+ = f.button :submit, t('devise.send_reset_password_instructions')
8
+ = render "admins/shared/links"
@@ -0,0 +1,9 @@
1
+ %h2=t('devise.sign_in')
2
+ = simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :wrapper => :bootstrap) do |f|
3
+ .form-inputs
4
+ = f.input :email, :required => false, :autofocus => true
5
+ = f.input :password, :required => false
6
+ = f.input :remember_me, :as => :boolean if devise_mapping.rememberable?
7
+ .form-actions
8
+ = f.button :submit, t('devise.sign_in')
9
+ = render "admins/shared/links"
@@ -0,0 +1,19 @@
1
+ - if controller_name != 'sessions'
2
+ = link_to t("devise.sign_in"), new_session_path(resource_name)
3
+ %br/
4
+ - if devise_mapping.registerable? && controller_name != 'registrations'
5
+ = link_to t("devise.sign_up"), new_registration_path(resource_name)
6
+ %br/
7
+ - if devise_mapping.recoverable? && controller_name != 'passwords'
8
+ = link_to t("devise.forgot_password"), new_password_path(resource_name)
9
+ %br/
10
+ - if devise_mapping.confirmable? && controller_name != 'confirmations'
11
+ = link_to t("devise.no_confirmation"), new_confirmation_path(resource_name)
12
+ %br/
13
+ - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
14
+ = link_to t("devise.no_unlock"), new_unlock_path(resource_name)
15
+ %br/
16
+ - if devise_mapping.omniauthable?
17
+ - resource_class.omniauth_providers.each do |provider|
18
+ = link_to "#{t('devise.sign_in_with')} #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
19
+ %br/
@@ -0,0 +1,20 @@
1
+ de:
2
+ cms:
3
+ admins:
4
+ singular_name: Administrator
5
+ plural_name: Administratoren
6
+ navigation_title: Administratoren
7
+
8
+ activerecord:
9
+ attributes:
10
+ admin:
11
+ first_name: Vorname
12
+ last_name: Nachname
13
+ password: Passwort
14
+ password_confirmation: Passwort Bestätigung
15
+ email: E-Mail
16
+
17
+ models:
18
+ admin:
19
+ one: Administrator
20
+ other: Administartoren
@@ -0,0 +1,31 @@
1
+ de:
2
+ devise:
3
+ forgot_password: "Passwort vergessen?"
4
+ sign_up: "Registrieren"
5
+ sign_in: "Anmelden"
6
+ no_confirmation: "Kein Bestätigungsmail erhalten?"
7
+ no_unlock: "Keine E-Mail mit Informationen zum Entsperren erhalten?"
8
+ sign_in_with: "Anmelden mit"
9
+ send_reset_password_instructions: "Passwort zurücksetzen"
10
+ resend_unlock_instructions: "Konto entsperren"
11
+ logout: "Abmelden"
12
+ login: "Anmelden"
13
+
14
+ failure:
15
+ user:
16
+ not_found_in_database: "Ungültige Anmeldedaten."
17
+ admin:
18
+ not_found_in_database: "Ungültige Anmeldedaten."
19
+
20
+ activerecord:
21
+ errors:
22
+ models:
23
+ admin:
24
+ attributes:
25
+ email:
26
+ blank: 'Darf nicht leer sein!'
27
+ attributes:
28
+ user:
29
+ remember_me: "Angemeldet bleiben"
30
+ admin:
31
+ remember_me: "Angemeldet bleiben"
@@ -1,4 +1,3 @@
1
1
  = link_to 'Kuhsaft CMS', kuhsaft.cms_root_path, :class => 'brand'
2
2
  %p.navbar-text.pull-right
3
- = link_to t('.logout'), '', :method => :delete
4
3
  = render_navigation(:context => :cms)
@@ -8,6 +8,6 @@ class Shoestrap::BaseController < Kuhsaft::Cms::AdminController
8
8
  private
9
9
 
10
10
  def permitted_params
11
- params.permit(resource_collection_name => collection.editable_attributes)
11
+ params.permit(resource_instance_name => collection.editable_attributes)
12
12
  end
13
13
  end
@@ -10,6 +10,6 @@ class Shoestrap::BaseController < ActionController::Base
10
10
  private
11
11
 
12
12
  def permitted_params
13
- params.permit(resource_collection_name => collection.editable_attributes)
13
+ params.permit(resource_instance_name => collection.editable_attributes)
14
14
  end
15
15
  end
@@ -3,7 +3,10 @@
3
3
 
4
4
  .form-inputs
5
5
  - resource.class.editable_attributes.each do |column_name|
6
- = f.input column_name
6
+ - if column_name.to_s.end_with? '_id'
7
+ = f.association column_name.to_s.gsub(/_id$/, '').to_sym
8
+ - else
9
+ = f.input column_name
7
10
 
8
11
  .form-actions
9
12
  = f.button :submit
@@ -1,16 +1,18 @@
1
1
  de:
2
2
  cms:
3
- news_items:
3
+ <%= plural_name %>:
4
4
  singular_name: TRANSLATEME
5
5
  plural_name: TRANSLATEME
6
6
  navigation_title: TRANSLATEME
7
7
 
8
8
  activerecord:
9
9
  attributes:
10
- news_item:
11
- some_attr: TRANSLATE YOUR ATTRIBUTES
10
+ <%= model_name %>:
11
+ <% attributes.each do |attr| -%>
12
+ <%= "#{attr}: TRANSLATE ME" %>
13
+ <% end -%>
12
14
 
13
15
  models:
14
- news_item:
16
+ <%= model_name %>:
15
17
  one: TRANSLATEME
16
18
  other: TRANSLATEME
@@ -6,6 +6,6 @@ de:
6
6
  back: 'Zurück'
7
7
  index_title: "%{plural_name} Verwalten"
8
8
  edit_title: "%{singular_name} Bearbeiten"
9
- new: "Neuer %{singular_name}"
9
+ new_title: "%{singular_name} Erstellen"
10
10
  default:
11
11
  new: 'Neuer Eintrag'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoestrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Kaufmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-07 00:00:00.000000000 Z
11
+ date: 2013-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -190,6 +190,7 @@ files:
190
190
  - features/features_helper.rb
191
191
  - features/postgres_helper.rb
192
192
  - features/shoestrap/commands/new_command_spec.rb
193
+ - features/shoestrap/generators/admin_generator_spec.rb
193
194
  - features/shoestrap/generators/bdd_generator_spec.rb
194
195
  - features/shoestrap/generators/bootstrap_generator_spec.rb
195
196
  - features/shoestrap/generators/cms_generator_spec.rb
@@ -198,6 +199,7 @@ files:
198
199
  - features/shoestrap/generators/kuhsaft_generator_spec.rb
199
200
  - features/shoestrap/generators/smacss_files_generator_spec.rb
200
201
  - features/shoestrap/generators/view_files_generator_spec.rb
202
+ - lib/generators/shoestrap/admin_generator.rb
201
203
  - lib/generators/shoestrap/base_generator.rb
202
204
  - lib/generators/shoestrap/bdd_generator.rb
203
205
  - lib/generators/shoestrap/bootstrap_generator.rb
@@ -223,6 +225,15 @@ files:
223
225
  - spec/shoestrap/cli_spec.rb
224
226
  - spec/shoestrap/cms_model.rb
225
227
  - spec/spec_helper.rb
228
+ - templates/admin_generator/devise.html.haml
229
+ - templates/admin_generator/devise_views/mailer/reset_password_instructions.html.haml
230
+ - templates/admin_generator/devise_views/mailer/unlock_instructions.html.haml
231
+ - templates/admin_generator/devise_views/passwords/edit.html.haml
232
+ - templates/admin_generator/devise_views/passwords/new.html.haml
233
+ - templates/admin_generator/devise_views/sessions/new.html.haml
234
+ - templates/admin_generator/devise_views/shared/_links.haml
235
+ - templates/admin_generator/translations/admin.de.yml
236
+ - templates/admin_generator/translations/devise_admin.de.yml
226
237
  - templates/application_generator/_typekit.html.haml
227
238
  - templates/application_generator/application.html.haml
228
239
  - templates/application_generator/application_helper.rb
@@ -243,7 +254,7 @@ files:
243
254
  - templates/cms_generator/inherited_views/base/edit.html.haml
244
255
  - templates/cms_generator/inherited_views/base/index.html.haml
245
256
  - templates/cms_generator/inherited_views/base/new.html.haml
246
- - templates/cms_generator/translations/resource.yml
257
+ - templates/cms_generator/translations/resource.yml.erb
247
258
  - templates/cms_generator/translations/shoestrap_base.yml
248
259
  - templates/coffee_files_generator/application.js.coffee
249
260
  - templates/foundation_generator/_mixin.css.sass
@@ -280,9 +291,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
291
  version: '0'
281
292
  required_rubygems_version: !ruby/object:Gem::Requirement
282
293
  requirements:
283
- - - '>='
294
+ - - '>'
284
295
  - !ruby/object:Gem::Version
285
- version: '0'
296
+ version: 1.3.1
286
297
  requirements: []
287
298
  rubyforge_project:
288
299
  rubygems_version: 2.0.3
@@ -295,6 +306,7 @@ test_files:
295
306
  - features/features_helper.rb
296
307
  - features/postgres_helper.rb
297
308
  - features/shoestrap/commands/new_command_spec.rb
309
+ - features/shoestrap/generators/admin_generator_spec.rb
298
310
  - features/shoestrap/generators/bdd_generator_spec.rb
299
311
  - features/shoestrap/generators/bootstrap_generator_spec.rb
300
312
  - features/shoestrap/generators/cms_generator_spec.rb