shoestrap 1.1.1 → 1.2.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
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