From 499c6aa684263feb1bd24faea70e6dde79ab238b Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 13 Mar 2014 12:02:32 -0700 Subject: require actions rather than create_file thor's create_file seems to have a circular dependency on itself when used with our constant loading stuff. fixes #14319 --- railties/lib/rails/generators/actions/create_migration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/generators/actions/create_migration.rb b/railties/lib/rails/generators/actions/create_migration.rb index 9c3332927f..cf3b7acfff 100644 --- a/railties/lib/rails/generators/actions/create_migration.rb +++ b/railties/lib/rails/generators/actions/create_migration.rb @@ -1,4 +1,4 @@ -require 'thor/actions/create_file' +require 'thor/actions' module Rails module Generators -- cgit v1.2.3 From eaa19cc5761f8f86fb37683984d385a8707ad8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Fri, 14 Mar 2014 13:20:16 -0300 Subject: Force sass-rails ~> 4.0.2 to avoid sprockets compatibility error See https://github.com/rails/sass-rails/issues/191 for more information --- railties/lib/rails/generators/app_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index b2ecc22294..fbdc47ea44 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -246,7 +246,7 @@ module Rails 'Use SCSS for stylesheets') else gems << GemfileEntry.version('sass-rails', - '~> 4.0.1', + '~> 4.0.2', 'Use SCSS for stylesheets') end -- cgit v1.2.3 From a2fb164a4fadf0f34055089b75ef9077bded8524 Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Thu, 13 Mar 2014 19:16:49 -0500 Subject: Add Public Api for register new extensions for Rake Notes --- railties/lib/rails/source_annotation_extractor.rb | 39 ++++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb index 83e28090f8..5863ad1ed7 100644 --- a/railties/lib/rails/source_annotation_extractor.rb +++ b/railties/lib/rails/source_annotation_extractor.rb @@ -18,6 +18,22 @@ class SourceAnnotationExtractor @@directories ||= %w(app config db lib test) + (ENV['SOURCE_ANNOTATION_DIRECTORIES'] || '').split(',') end + def self.extensions + @@extensions ||= {} + end + + # Registers new Annotations File Extensions + # SourceAnnotationExtractor::Annotation.register_extensions("css", "scss", "sass", "less", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } + def self.register_extensions(*extensions, &block) + self.extensions[/\.(#{extensions.join("|")})$/] = block + end + + register_extensions("builder", "rb", "coffe", "rake") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } + register_extensions("css", "scss", "sass", "less", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } + register_extensions("erb") { |tag| /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/ } + register_extensions("haml") { |tag| /-\s*#\s*(#{tag}):?\s*(.*)$/ } + register_extensions("slim") { |tag| /\/\s*\s*(#{tag}):?\s*(.*)$/ } + # Returns a representation of the annotation that looks like this: # # [126] [TODO] This algorithm is simple and clearly correct, make it faster. @@ -78,21 +94,14 @@ class SourceAnnotationExtractor if File.directory?(item) results.update(find_in(item)) else - pattern = - case item - when /\.(builder|rb|coffee|rake)$/ - /#\s*(#{tag}):?\s*(.*)$/ - when /\.(css|scss|sass|less|js)$/ - /\/\/\s*(#{tag}):?\s*(.*)$/ - when /\.erb$/ - /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/ - when /\.haml$/ - /-\s*#\s*(#{tag}):?\s*(.*)$/ - when /\.slim$/ - /\/\s*\s*(#{tag}):?\s*(.*)$/ - else nil - end - results.update(extract_annotations_from(item, pattern)) if pattern + extension = Annotation.extensions.detect do |regexp, _block| + regexp.match(item) + end + + if extension + pattern = extension.last.call(tag) + results.update(extract_annotations_from(item, pattern)) if pattern + end end end -- cgit v1.2.3 From 810af6f6ee62d76e9ed529d93ea9686a45e5a81e Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Fri, 14 Mar 2014 15:34:24 -0500 Subject: Remove .scss, .sass, .less, .haml, .slim, coffee from Rake Notes. Now we have an API for register it in the corresponding gems --- railties/lib/rails/source_annotation_extractor.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb index 5863ad1ed7..b5f1ca1602 100644 --- a/railties/lib/rails/source_annotation_extractor.rb +++ b/railties/lib/rails/source_annotation_extractor.rb @@ -28,11 +28,9 @@ class SourceAnnotationExtractor self.extensions[/\.(#{extensions.join("|")})$/] = block end - register_extensions("builder", "rb", "coffe", "rake") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } - register_extensions("css", "scss", "sass", "less", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } + register_extensions("builder", "rb", "rake") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } + register_extensions("css", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } register_extensions("erb") { |tag| /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/ } - register_extensions("haml") { |tag| /-\s*#\s*(#{tag}):?\s*(.*)$/ } - register_extensions("slim") { |tag| /\/\s*\s*(#{tag}):?\s*(.*)$/ } # Returns a representation of the annotation that looks like this: # -- cgit v1.2.3 From f43421cb65da635988f2bb5341d519c3c2748b74 Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Fri, 14 Mar 2014 17:51:14 -0500 Subject: Supporting .ruby, .yml and .yaml Extension in Rake Notes --- railties/lib/rails/source_annotation_extractor.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb index b5f1ca1602..af6d90b5bd 100644 --- a/railties/lib/rails/source_annotation_extractor.rb +++ b/railties/lib/rails/source_annotation_extractor.rb @@ -28,7 +28,7 @@ class SourceAnnotationExtractor self.extensions[/\.(#{extensions.join("|")})$/] = block end - register_extensions("builder", "rb", "rake") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } + register_extensions("builder", "rb", "rake", "yml", "yaml", "ruby") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } register_extensions("css", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } register_extensions("erb") { |tag| /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/ } -- cgit v1.2.3 From e9625d63bb427dc9746d8fadb9074057cd7ed11d Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Sun, 16 Mar 2014 12:23:58 +0900 Subject: Let COMMAND_WHITELIST be an Array, not a String --- railties/lib/rails/commands/commands_tasks.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/commands/commands_tasks.rb b/railties/lib/rails/commands/commands_tasks.rb index f061c2bf74..6cfbc70c51 100644 --- a/railties/lib/rails/commands/commands_tasks.rb +++ b/railties/lib/rails/commands/commands_tasks.rb @@ -27,7 +27,7 @@ In addition to those, there are: All commands can be run with -h (or --help) for more information. EOT - COMMAND_WHITELIST = %(plugin generate destroy console server dbconsole runner new version help) + COMMAND_WHITELIST = %w(plugin generate destroy console server dbconsole runner new version help) def initialize(argv) @argv = argv -- cgit v1.2.3 From ce38a6b8b62e73596ec1062663e85726fbca8933 Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Sun, 16 Mar 2014 14:32:08 -0500 Subject: Fix Shadowing extensions variable in Register Annotation Exentsions --- railties/lib/rails/source_annotation_extractor.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb index af6d90b5bd..201532d299 100644 --- a/railties/lib/rails/source_annotation_extractor.rb +++ b/railties/lib/rails/source_annotation_extractor.rb @@ -24,8 +24,8 @@ class SourceAnnotationExtractor # Registers new Annotations File Extensions # SourceAnnotationExtractor::Annotation.register_extensions("css", "scss", "sass", "less", "js") { |tag| /\/\/\s*(#{tag}):?\s*(.*)$/ } - def self.register_extensions(*extensions, &block) - self.extensions[/\.(#{extensions.join("|")})$/] = block + def self.register_extensions(*exts, &block) + extensions[/\.(#{exts.join("|")})$/] = block end register_extensions("builder", "rb", "rake", "yml", "yaml", "ruby") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } -- cgit v1.2.3 From 27e95727d7f1da623cd3f22b643ae5eb0d3a93b1 Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Sun, 16 Mar 2014 14:57:21 -0500 Subject: Add config.annotations, in order to register new extensions for Rake notes at config level --- railties/lib/rails/application/configuration.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'railties/lib') diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 20e3de32aa..9aec2f9734 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -1,6 +1,7 @@ require 'active_support/core_ext/kernel/reporting' require 'active_support/file_update_checker' require 'rails/engine/configuration' +require 'rails/source_annotation_extractor' module Rails class Application @@ -149,6 +150,9 @@ module Rails end end + def annotations + SourceAnnotationExtractor::Annotation + end end end end -- cgit v1.2.3 From 23eafe88778349e66772b3dc9257c8f257acb6bd Mon Sep 17 00:00:00 2001 From: Ankit Gupta Date: Sun, 23 Mar 2014 23:55:03 -0400 Subject: Adding active_model in Rails::Info --- railties/lib/rails/info.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/info.rb b/railties/lib/rails/info.rb index edadeaca0e..9502876ebb 100644 --- a/railties/lib/rails/info.rb +++ b/railties/lib/rails/info.rb @@ -23,7 +23,7 @@ module Rails end def frameworks - %w( active_record action_pack action_view action_mailer active_support ) + %w( active_record action_pack action_view action_mailer active_support active_model ) end def framework_version(framework) -- cgit v1.2.3 From f42c7eee7e63d9ac4426259f6b1b424b3f759faa Mon Sep 17 00:00:00 2001 From: Dmitrii Golub Date: Sat, 22 Mar 2014 03:26:02 +0400 Subject: Remove sqlite3 lines from .gitignore if the application is not using sqlite3. --- railties/lib/rails/generators/app_base.rb | 4 ++++ railties/lib/rails/generators/rails/app/app_generator.rb | 2 +- railties/lib/rails/generators/rails/app/templates/gitignore | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index fbdc47ea44..dd1438800c 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -172,6 +172,10 @@ module Rails options[value] ? '# ' : '' end + def sqlite3? + !options[:skip_active_record] && options[:database] == 'sqlite3' + end + class GemfileEntry < Struct.new(:name, :version, :comment, :options, :commented_out) def initialize(name, version, comment, options = {}, commented_out = false) super diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index 83cb1dc0d5..abf6909a7f 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -50,7 +50,7 @@ module Rails end def gitignore - copy_file "gitignore", ".gitignore" + template "gitignore", ".gitignore" end def app diff --git a/railties/lib/rails/generators/rails/app/templates/gitignore b/railties/lib/rails/generators/rails/app/templates/gitignore index 6a502e997f..8775e5e235 100644 --- a/railties/lib/rails/generators/rails/app/templates/gitignore +++ b/railties/lib/rails/generators/rails/app/templates/gitignore @@ -7,10 +7,12 @@ # Ignore bundler config. /.bundle +<% if sqlite3? -%> # Ignore the default SQLite database. /db/*.sqlite3 /db/*.sqlite3-journal +<% end -%> # Ignore all logfiles and tempfiles. /log/*.log /tmp -- cgit v1.2.3 From 5a3817cb16e526a7b18699a6dcdafe40c42c1ddf Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Tue, 25 Mar 2014 20:27:37 +0530 Subject: Fix Generation of proper migration when ActiveRecord::Base.pluralize_table_names = false. Previously, generation a migration like this: rails g migration add_column_name_to_user name would not generating the correct table name. Fixes #13426. --- railties/lib/rails/generators/generated_attribute.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'railties/lib') diff --git a/railties/lib/rails/generators/generated_attribute.rb b/railties/lib/rails/generators/generated_attribute.rb index 5e2784c4b0..c5326d70d1 100644 --- a/railties/lib/rails/generators/generated_attribute.rb +++ b/railties/lib/rails/generators/generated_attribute.rb @@ -94,6 +94,10 @@ module Rails name.sub(/_id$/, '').pluralize end + def singular_name + name.sub(/_id$/, '').singularize + end + def human_name name.humanize end -- cgit v1.2.3