From 3483944a249a2c0e4e4f83abfbffcbea6688aff9 Mon Sep 17 00:00:00 2001 From: Mike Gaffney Date: Thu, 30 Oct 2008 14:34:40 -0500 Subject: [PATCH] Adding in library generator: [#1303 state:resolved] --- .../generators/components/library/USAGE | 18 ++++++++++++++++ .../components/library/library_generator.rb | 22 ++++++++++++++++++++ .../components/library/templates/library.rb | 2 + .../components/library/templates/unit_test.rb | 8 +++++++ 4 files changed, 50 insertions(+), 0 deletions(-) create mode 100644 railties/lib/rails_generator/generators/components/library/USAGE create mode 100644 railties/lib/rails_generator/generators/components/library/library_generator.rb create mode 100644 railties/lib/rails_generator/generators/components/library/templates/library.rb create mode 100644 railties/lib/rails_generator/generators/components/library/templates/unit_test.rb diff --git a/railties/lib/rails_generator/generators/components/library/USAGE b/railties/lib/rails_generator/generators/components/library/USAGE new file mode 100644 index 0000000..b58936e --- /dev/null +++ b/railties/lib/rails_generator/generators/components/library/USAGE @@ -0,0 +1,18 @@ +Description: + Stubs out a tested library. Pass the library name, either CamelCased or + under_scored. + + This generates a library class in lib, and a unit test in test/unit. + +Examples: + `./script/generate library email_parser` + + creates an EmailParser object and test: + Model: app/models/email_parser.rb + Test: test/unit/email_parser_test.rb + + `./script/generate library EmailParser` + + creates an EmailParser object and test: + Model: app/models/email_parser.rb + Test: test/unit/email_parser_test.rb diff --git a/railties/lib/rails_generator/generators/components/library/library_generator.rb b/railties/lib/rails_generator/generators/components/library/library_generator.rb new file mode 100644 index 0000000..51b2b2e --- /dev/null +++ b/railties/lib/rails_generator/generators/components/library/library_generator.rb @@ -0,0 +1,22 @@ +class LibraryGenerator < Rails::Generator::NamedBase + + def manifest + record do |m| + # Check for class naming collisions. + m.class_collisions class_path, class_name, "#{class_name}Test" + + # Model, test, and fixture directories. + m.directory File.join('lib', class_path) + m.directory File.join('test/unit', class_path) + + # Model class, unit test, and fixtures. + m.template 'library.rb', File.join('lib', class_path, "#{file_name}.rb") + m.template 'unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb") + end + end + + protected + def banner + "Usage: #{$0} #{spec.name} Library" + end +end diff --git a/railties/lib/rails_generator/generators/components/library/templates/library.rb b/railties/lib/rails_generator/generators/components/library/templates/library.rb new file mode 100644 index 0000000..dd80eac --- /dev/null +++ b/railties/lib/rails_generator/generators/components/library/templates/library.rb @@ -0,0 +1,2 @@ +class <%= class_name %> +end diff --git a/railties/lib/rails_generator/generators/components/library/templates/unit_test.rb b/railties/lib/rails_generator/generators/components/library/templates/unit_test.rb new file mode 100644 index 0000000..42498db --- /dev/null +++ b/railties/lib/rails_generator/generators/components/library/templates/unit_test.rb @@ -0,0 +1,8 @@ +require 'test_helper' + +class <%= class_name %>Test < Test::Unit::TestCase + # Replace this with your real tests. + def test_truth + assert true + end +end -- 1.5.4.1 From 6f01b2dc2e8af20349b3aec4241b35d48d5b33e9 Mon Sep 17 00:00:00 2001 From: Mike Gaffney Date: Mon, 10 Nov 2008 17:59:24 -0600 Subject: [PATCH] testing current master for test failuser as baseline --- railties/test/generators/generator_test_helper.rb | 9 +++++++++ .../test/generators/rals_library_generator_test.rb | 12 ++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-) create mode 100644 railties/test/generators/rals_library_generator_test.rb diff --git a/railties/test/generators/generator_test_helper.rb b/railties/test/generators/generator_test_helper.rb index 0901b21..3bffac8 100644 --- a/railties/test/generators/generator_test_helper.rb +++ b/railties/test/generators/generator_test_helper.rb @@ -127,6 +127,15 @@ class GeneratorTestCase < Test::Unit::TestCase end end + # Asserts that the given library was generated. + # It takes a name or symbol. + # The contents of the class source file is passed to a block. + def assert_generated_library_for(name, parent = nil) + assert_generated_class "lib/#{name.to_s.underscore}" do |body| + yield body if block_given? + end + end + # Asserts that the given helper was generated. # It takes a name or symbol without the _helper part. # The contents of the module source file is passed to a block. diff --git a/railties/test/generators/rals_library_generator_test.rb b/railties/test/generators/rals_library_generator_test.rb new file mode 100644 index 0000000..524cbc9 --- /dev/null +++ b/railties/test/generators/rals_library_generator_test.rb @@ -0,0 +1,12 @@ +require 'generators/generator_test_helper' + +class RailsLibraryGeneratorTest < GeneratorTestCase + + def test_library_generates_resources + run_generator('library', %w(password_generator)) + + assert_generated_library_for :password_generator + assert_generated_unit_test_for :password_generator, "Test::Unit::TestCase" + end + +end -- 1.5.4.1 From 5e89afc93b2b2c2525fc25110e9f07ddd3dba871 Mon Sep 17 00:00:00 2001 From: Mike Gaffney Date: Mon, 10 Nov 2008 18:09:35 -0600 Subject: [PATCH] renamed file --- .../generators/rails_library_generator_test.rb | 19 +++++++++++++++++++ .../test/generators/rals_library_generator_test.rb | 12 ------------ 2 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 railties/test/generators/rails_library_generator_test.rb delete mode 100644 railties/test/generators/rals_library_generator_test.rb diff --git a/railties/test/generators/rails_library_generator_test.rb b/railties/test/generators/rails_library_generator_test.rb new file mode 100644 index 0000000..506dff0 --- /dev/null +++ b/railties/test/generators/rails_library_generator_test.rb @@ -0,0 +1,19 @@ +require 'generators/generator_test_helper' + +class RailsLibraryGeneratorTest < GeneratorTestCase + + def test_library_generates_resources + run_generator('library', %w(password_generator)) + + assert_generated_library_for :password_generator + assert_generated_unit_test_for :password_generator, "Test::Unit::TestCase" + end + + def test_library_generates_resources_by_camelcase + run_generator('library', %w(PasswordGenerator)) + + assert_generated_library_for "PasswordGenerator" + assert_generated_unit_test_for "PasswordGenerator", "Test::Unit::TestCase" + end + +end diff --git a/railties/test/generators/rals_library_generator_test.rb b/railties/test/generators/rals_library_generator_test.rb deleted file mode 100644 index 524cbc9..0000000 --- a/railties/test/generators/rals_library_generator_test.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'generators/generator_test_helper' - -class RailsLibraryGeneratorTest < GeneratorTestCase - - def test_library_generates_resources - run_generator('library', %w(password_generator)) - - assert_generated_library_for :password_generator - assert_generated_unit_test_for :password_generator, "Test::Unit::TestCase" - end - -end -- 1.5.4.1