padrino-gen 0.13.0.beta2 → 0.13.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb6b8990a21282c06f0e7e0727d62ec5470fa604
4
- data.tar.gz: 72044379f1f848294dfca02672199f5890382eb2
3
+ metadata.gz: aceae5b873cbcba1e4b72aa2dcb1f0466be21683
4
+ data.tar.gz: 746ce83ec7367d4472913f10efccedfe53af73e0
5
5
  SHA512:
6
- metadata.gz: 8b810a9cdbd38cfa1ad0122a55610c5f036fb9890c5983c255942b490c036d45bbb18e1a1576b0fda731af4dd27122a5ddb1c65f0168a00af95b05b1bb358130
7
- data.tar.gz: e7aeb4b08d77b333116225c30513822e035b1b99202571bd4a127b09cbdca1618f507487a17699c8f39ebd0a81352749d852046a9f30e8fee9233f07ae26afa5
6
+ metadata.gz: 93c568757fda1a7f6a05e28baf039fcf87d68b788d9d98ed7c0d4969215813eefa23002e03398119e5e392b9bfe9c298fc7d5b687cc152c685641d32f22db4ae
7
+ data.tar.gz: 5313b5922d16b4cbb587514f1b20bee6d1a5a3c7750d5ef39993fefa08426c69b5e8aba8ec9b46a1e082276551a9b4dac8437f1843053c0ebc6cd349fa5169f5
@@ -15,7 +15,7 @@ module <%= @project_name %>
15
15
  #
16
16
  # set :cache, Padrino::Cache.new(:LRUHash) # Keeps cached values in memory
17
17
  # set :cache, Padrino::Cache.new(:Memcached) # Uses default server at localhost
18
- # set :cache, Padrino::Cache.new(:Memcached, '127.0.0.1:11211', :exception_retry_limit => 1)
18
+ # set :cache, Padrino::Cache.new(:Memcached, :server => '127.0.0.1:11211', :exception_retry_limit => 1)
19
19
  # set :cache, Padrino::Cache.new(:Memcached, :backend => memcached_or_dalli_instance)
20
20
  # set :cache, Padrino::Cache.new(:Redis) # Uses default server at localhost
21
21
  # set :cache, Padrino::Cache.new(:Redis, :host => '127.0.0.1', :port => 6379, :db => 0)
@@ -41,6 +41,21 @@ case Padrino.env
41
41
  end
42
42
  DM
43
43
 
44
+ IDENTITY_MAP_MIDDLEWARE = <<-MIDDLEWARE
45
+ class IdentityMap
46
+ def initialize(app, name = :default)
47
+ @app = app
48
+ @name = name.to_sym
49
+ end
50
+
51
+ def call(env)
52
+ ::DataMapper.repository(@name) do
53
+ @app.call(env)
54
+ end
55
+ end
56
+ end
57
+ MIDDLEWARE
58
+
44
59
  def setup_orm
45
60
  dm = DM
46
61
  db = @project_name.underscore
@@ -73,6 +88,7 @@ def setup_orm
73
88
 
74
89
  create_file("config/database.rb", dm)
75
90
  insert_hook("DataMapper.finalize", :after_load)
91
+ middleware :identity_map, IDENTITY_MAP_MIDDLEWARE
76
92
  end
77
93
 
78
94
  DM_MODEL = (<<-MODEL) unless defined?(DM_MODEL)
@@ -0,0 +1,110 @@
1
+ TESTUNIT_SETUP = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_SETUP)
2
+ RACK_ENV = 'test' unless defined?(RACK_ENV)
3
+ require File.expand_path(File.dirname(__FILE__) + "/../config/boot")
4
+ Dir[File.expand_path(File.dirname(__FILE__) + "/../app/helpers/**/*.rb")].each(&method(:require))
5
+
6
+ class Test::Unit::TestCase
7
+ include Rack::Test::Methods
8
+
9
+ # You can use this method to custom specify a Rack app
10
+ # you want rack-test to invoke:
11
+ #
12
+ # app CLASS_NAME
13
+ # app CLASS_NAME.tap { |a| }
14
+ # app(CLASS_NAME) do
15
+ # set :foo, :bar
16
+ # end
17
+ #
18
+ def app(app = nil, &blk)
19
+ @app ||= block_given? ? app.instance_eval(&blk) : app
20
+ @app ||= Padrino.application
21
+ end
22
+ end
23
+ TEST
24
+
25
+ TESTUNIT_RAKE = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_RAKE)
26
+ require 'rake/testtask'
27
+
28
+ test_tasks = Dir['test/*/'].map { |d| File.basename(d) }
29
+
30
+ test_tasks.each do |folder|
31
+ Rake::TestTask.new("test:\#{folder}") do |test|
32
+ test.pattern = "test/\#{folder}/**/*_test.rb"
33
+ test.verbose = true
34
+ end
35
+ end
36
+
37
+ desc "Run application test suite"
38
+ task 'test' => test_tasks.map { |f| "test:\#{f}" }
39
+ TEST
40
+
41
+ TESTUNIT_CONTROLLER_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_CONTROLLER_TEST)
42
+ require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
43
+
44
+ class !NAME!ControllerTest < Test::Unit::TestCase
45
+ def setup
46
+ get "/"
47
+ end
48
+
49
+ def test_returns_hello_world_text
50
+ assert_equal "Hello World", last_response.body
51
+ end
52
+ end
53
+ TEST
54
+
55
+ TESTUNIT_MODEL_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_MODEL_TEST)
56
+ require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
57
+
58
+ class !NAME!Test < Test::Unit::TestCase
59
+ def test_constructs_a_new_instance
60
+ @!DNAME! = !NAME!.new
61
+ refute_nil @!DNAME!
62
+ end
63
+ end
64
+ TEST
65
+
66
+ TESTUNIT_HELPER_TEST = (<<-TEST) unless defined?(TESTUNIT_HELPER_TEST)
67
+ require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
68
+
69
+ class !NAME!Test < Test::Unit::TestCase
70
+ def self.setup
71
+ @helpers = Class.new
72
+ @helpers.extend !CONSTANT_NAME!
73
+ end
74
+
75
+ def helpers
76
+ @helpers
77
+ end
78
+
79
+ def test_foo_helper
80
+ assert_equal nil, helpers.foo
81
+ end
82
+ end
83
+ TEST
84
+
85
+ def setup_test
86
+ require_dependencies 'rack-test', :require => 'rack/test', :group => 'test'
87
+ require_dependencies 'test-unit', :require => 'test/unit', :group => 'test'
88
+ insert_test_suite_setup TESTUNIT_SETUP
89
+ create_file destination_root("test/test.rake"), TESTUNIT_RAKE
90
+ end
91
+
92
+ def generate_controller_test(name, path)
93
+ test_unit_contents = TESTUNIT_CONTROLLER_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize)
94
+ controller_test_path = File.join('test',options[:app],'controllers',"#{name.to_s.underscore}_controller_test.rb")
95
+ create_file destination_root(controller_test_path), test_unit_contents, :skip => true
96
+ end
97
+
98
+ def generate_model_test(name)
99
+ test_unit_contents = TESTUNIT_MODEL_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize).gsub(/!DNAME!/, name.to_s.underscore)
100
+ test_unit_contents.gsub!(/!PATH!/, recognize_path)
101
+ model_test_path = File.join('test',options[:app],'models',"#{name.to_s.underscore}_test.rb")
102
+ create_file destination_root(model_test_path), test_unit_contents, :skip => true
103
+ end
104
+
105
+ def generate_helper_test(name, project_name, app_name)
106
+ test_unit_contents = TESTUNIT_HELPER_TEST.gsub(/!NAME!/, name).gsub(/!CONSTANT_NAME!/, "#{project_name}::#{app_name}::#{name}")
107
+ test_unit_contents.gsub!(/!PATH!/, recognize_path)
108
+ helper_spec_path = File.join('test', options[:app], 'helpers', "#{name.underscore}_test.rb")
109
+ create_file destination_root(helper_spec_path), test_unit_contents, :skip => true
110
+ end
@@ -86,6 +86,8 @@ if PadrinoTasks.load?(:datamapper, defined?(DataMapper))
86
86
  task :setup => [:create, :migrate, :seed]
87
87
  end
88
88
 
89
+ task 'db:migrate:down' => 'dm:migrate:down'
90
+ task 'db:migrate:up' => 'dm:migrate:up'
89
91
  task 'db:migrate' => 'dm:migrate'
90
92
  task 'db:create' => 'dm:create'
91
93
  task 'db:drop' => 'dm:drop'
@@ -200,6 +200,14 @@ describe "ControllerGenerator" do
200
200
  assert_match_in_file(/Capybara.app = /, "#{@apptmp}/sample_project/features/support/env.rb")
201
201
  end
202
202
 
203
+ it "should generate controller test for testunit" do
204
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=testunit') }
205
+ capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
206
+ capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
207
+ assert_match_in_file(/class DemoItemsControllerTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/controllers/demo_items_controller_test.rb")
208
+ end
209
+
210
+
203
211
  it 'should correctly generate file names' do
204
212
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
205
213
  capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
@@ -95,6 +95,14 @@ describe "HelperGenerator" do
95
95
  assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
96
96
  end
97
97
 
98
+ it "should generate helper test for testunit" do
99
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testunit', '--script=none') }
100
+ capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
101
+ capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
102
+ assert_match_in_file(/class DemoItemsHelperTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
103
+ assert_match_in_file(/@helpers\.extend SampleProject::Subby::DemoItemsHelper/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
104
+ end
105
+
98
106
  it 'should correctly generate file names' do
99
107
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
100
108
  capture_io { generate(:helper, 'DemoItems', "-r=#{@apptmp}/sample_project") }
@@ -214,6 +214,12 @@ describe "ModelGenerator" do
214
214
 
215
215
  # DATAMAPPER
216
216
  describe "model generator using datamapper" do
217
+ it 'should add activerecord middleware' do
218
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
219
+ assert_match_in_file(/ use IdentityMap/m, "#{@apptmp}/sample_project/app/app.rb")
220
+ assert_file_exists("#{@apptmp}/sample_project/lib/identity_map_middleware.rb")
221
+ end
222
+
217
223
  it 'should generate model file with camelized name' do
218
224
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
219
225
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
@@ -753,5 +753,20 @@ describe "ProjectGenerator" do
753
753
  assert_match_in_file(/class ControllerTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/controllers/controllers_test.rb")
754
754
  assert_match_in_file(/class SampleProject::App::HelperTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/helpers/helpers_test.rb")
755
755
  end
756
+
757
+ it "should properly generate for testunit" do
758
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testunit', '--script=none', '--tiny') }
759
+ assert_match(/applying.*?testunit.*?test/, out)
760
+ assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
761
+ assert_match_in_file(/:require => 'rack\/test'/, "#{@apptmp}/sample_project/Gemfile")
762
+ assert_match_in_file(/:group => 'test'/, "#{@apptmp}/sample_project/Gemfile")
763
+ assert_match_in_file(/gem 'test-unit'/, "#{@apptmp}/sample_project/Gemfile")
764
+ assert_match_in_file(/RACK_ENV = 'test' unless defined\?\(RACK_ENV\)/, "#{@apptmp}/sample_project/test/test_config.rb")
765
+ assert_file_exists("#{@apptmp}/sample_project/test/test.rake")
766
+ assert_match_in_file(/task 'test' => test_tasks/,"#{@apptmp}/sample_project/test/test.rake")
767
+ assert_match_in_file(/Dir\[File\.expand_path\(File\.dirname\(__FILE__\) \+ "\/\.\.\/app\/helpers\.rb"\)\]\.each\(&method\(:require\)\)/, "#{@apptmp}/sample_project/test/test_config.rb")
768
+ assert_match_in_file(/class ControllerTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/controllers/controllers_test.rb")
769
+ assert_match_in_file(/class SampleProject::App::HelperTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/helpers/helpers_test.rb")
770
+ end
756
771
  end
757
772
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0.beta2
4
+ version: 0.13.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-04-11 00:00:00.000000000 Z
14
+ date: 2015-08-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: padrino-core
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.13.0.beta2
22
+ version: 0.13.0.beta3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.13.0.beta2
29
+ version: 0.13.0.beta3
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bundler
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -47,28 +47,28 @@ dependencies:
47
47
  requirements:
48
48
  - - '='
49
49
  - !ruby/object:Gem::Version
50
- version: 0.13.0.beta2
50
+ version: 0.13.0.beta3
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - '='
56
56
  - !ruby/object:Gem::Version
57
- version: 0.13.0.beta2
57
+ version: 0.13.0.beta3
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: padrino-mailer
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - '='
63
63
  - !ruby/object:Gem::Version
64
- version: 0.13.0.beta2
64
+ version: 0.13.0.beta3
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - '='
70
70
  - !ruby/object:Gem::Version
71
- version: 0.13.0.beta2
71
+ version: 0.13.0.beta3
72
72
  description: Generators for easily creating and building padrino applications from
73
73
  the console
74
74
  email: padrinorb@gmail.com
@@ -129,6 +129,7 @@ files:
129
129
  - lib/padrino-gen/generators/components/tests/rspec.rb
130
130
  - lib/padrino-gen/generators/components/tests/shoulda.rb
131
131
  - lib/padrino-gen/generators/components/tests/steak.rb
132
+ - lib/padrino-gen/generators/components/tests/testunit.rb
132
133
  - lib/padrino-gen/generators/controller.rb
133
134
  - lib/padrino-gen/generators/helper.rb
134
135
  - lib/padrino-gen/generators/mailer.rb