vraptor-scaffold 0.0.1.beta1

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 (45) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +12 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +19 -0
  5. data/Rakefile +33 -0
  6. data/TODO.txt +7 -0
  7. data/bin/vraptor +7 -0
  8. data/lib/generators/app_generator/app_generator.rb +88 -0
  9. data/lib/generators/app_generator/templates/FreemarkerPathResolver.java +23 -0
  10. data/lib/generators/app_generator/templates/decorators.xml +7 -0
  11. data/lib/generators/app_generator/templates/index.jsp +8 -0
  12. data/lib/generators/app_generator/templates/log4j.xml +20 -0
  13. data/lib/generators/app_generator/templates/main.ftl +12 -0
  14. data/lib/generators/app_generator/templates/persistence.xml +18 -0
  15. data/lib/generators/app_generator/templates/pom.erb +101 -0
  16. data/lib/generators/app_generator/templates/web.xml +52 -0
  17. data/lib/generators/attribute.rb +8 -0
  18. data/lib/generators/base.rb +5 -0
  19. data/lib/generators/scaffold_generator/base_scaffold.rb +21 -0
  20. data/lib/generators/scaffold_generator/controller_generator/controller_generator.rb +18 -0
  21. data/lib/generators/scaffold_generator/controller_generator/templates/controller.erb +72 -0
  22. data/lib/generators/scaffold_generator/freemarker_generator/freemarker_generator.rb +13 -0
  23. data/lib/generators/scaffold_generator/freemarker_generator/templates/edit.erb +12 -0
  24. data/lib/generators/scaffold_generator/freemarker_generator/templates/index.erb +29 -0
  25. data/lib/generators/scaffold_generator/freemarker_generator/templates/new.erb +11 -0
  26. data/lib/generators/scaffold_generator/freemarker_generator/templates/show.erb +12 -0
  27. data/lib/generators/scaffold_generator/model_generator/model_generator.rb +10 -0
  28. data/lib/generators/scaffold_generator/model_generator/templates/model.erb +35 -0
  29. data/lib/generators/scaffold_generator/scaffold_generator.rb +8 -0
  30. data/lib/load_paths.rb +16 -0
  31. data/lib/vraptor-scaffold.rb +11 -0
  32. data/spec/lib/generators/app_generator/app_generator_spec.rb +146 -0
  33. data/spec/lib/generators/app_generator/templates/pom.xml +101 -0
  34. data/spec/lib/generators/attribute_spec.rb +0 -0
  35. data/spec/lib/generators/scaffold_generator/controller_generator/controller_generator_spec.rb +20 -0
  36. data/spec/lib/generators/scaffold_generator/controller_generator/templates/ProductController.java +72 -0
  37. data/spec/lib/generators/scaffold_generator/freemarker_generator/freemarker_generator_spec.rb +30 -0
  38. data/spec/lib/generators/scaffold_generator/model_generator/model_generator_spec.rb +20 -0
  39. data/spec/lib/generators/scaffold_generator/model_generator/templates/Product.java +40 -0
  40. data/spec/lib/generators/scaffold_generator/scaffold_generator_spec.rb +35 -0
  41. data/spec/lib/vraptor-scaffold_spec.rb +37 -0
  42. data/spec/spec.opts +4 -0
  43. data/spec/spec_helper.rb +3 -0
  44. data/vraptor-scaffold.gemspec +92 -0
  45. metadata +121 -0
@@ -0,0 +1,101 @@
1
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+ <groupId>vraptor-scaffold</groupId>
5
+ <artifactId>vraptor-scaffold</artifactId>
6
+ <packaging>war</packaging>
7
+ <version>0.0.1-SNAPSHOT</version>
8
+ <name>vraptor-scaffold</name>
9
+
10
+ <build>
11
+ <plugins>
12
+ <plugin>
13
+ <artifactId>maven-compiler-plugin</artifactId>
14
+ <version>2.0.2</version>
15
+ <configuration>
16
+ <source>1.6</source>
17
+ <target>1.6</target>
18
+ </configuration>
19
+ </plugin>
20
+ <plugin>
21
+ <artifactId>maven-eclipse-plugin</artifactId>
22
+ <configuration>
23
+ <downloadSources>true</downloadSources>
24
+ <downloadJavadocs>true</downloadJavadocs>
25
+ <wtpversion>2.0</wtpversion>
26
+ </configuration>
27
+ </plugin>
28
+ <plugin>
29
+ <groupId>org.apache.maven.plugins</groupId>
30
+ <artifactId>maven-war-plugin</artifactId>
31
+ <version>2.0</version>
32
+ </plugin>
33
+ </plugins>
34
+ </build>
35
+
36
+ <dependencies>
37
+ <dependency>
38
+ <groupId>junit</groupId>
39
+ <artifactId>junit</artifactId>
40
+ <version>4.8.1</version>
41
+ <scope>test</scope>
42
+ </dependency>
43
+ <dependency>
44
+ <groupId>org.mockito</groupId>
45
+ <artifactId>mockito-all</artifactId>
46
+ <version>1.8.5</version>
47
+ <scope>test</scope>
48
+ </dependency>
49
+ <dependency>
50
+ <groupId>hsqldb</groupId>
51
+ <artifactId>hsqldb</artifactId>
52
+ <version>1.8.0.10</version>
53
+ </dependency>
54
+ <dependency>
55
+ <groupId>br.com.caelum</groupId>
56
+ <artifactId>vraptor</artifactId>
57
+ <version>3.1.2</version>
58
+ </dependency>
59
+ <dependency>
60
+ <groupId>opensymphony</groupId>
61
+ <artifactId>sitemesh</artifactId>
62
+ <version>2.4.2</version>
63
+ </dependency>
64
+ <dependency>
65
+ <groupId>org.freemarker</groupId>
66
+ <artifactId>freemarker</artifactId>
67
+ <version>2.3.16</version>
68
+ </dependency>
69
+ <dependency>
70
+ <groupId>javax.persistence</groupId>
71
+ <artifactId>persistence-api</artifactId>
72
+ <version>1.0</version>
73
+ </dependency>
74
+ <dependency>
75
+ <groupId>org.hibernate</groupId>
76
+ <artifactId>hibernate-entitymanager</artifactId>
77
+ <version>3.4.0.GA</version>
78
+ <exclusions>
79
+ <exclusion>
80
+ <artifactId>slf4j-api</artifactId>
81
+ <groupId>org.slf4j</groupId>
82
+ </exclusion>
83
+ </exclusions>
84
+ </dependency>
85
+ <dependency>
86
+ <groupId>javax.servlet</groupId>
87
+ <artifactId>servlet-api</artifactId>
88
+ <version>2.5</version>
89
+ <scope>provided</scope>
90
+ </dependency>
91
+ </dependencies>
92
+
93
+ <reporting>
94
+ <plugins>
95
+ <plugin>
96
+ <groupId>org.codehaus.mojo</groupId>
97
+ <artifactId>cobertura-maven-plugin</artifactId>
98
+ </plugin>
99
+ </plugins>
100
+ </reporting>
101
+ </project>
File without changes
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../../spec_helper")
2
+
3
+ describe ControllerGenerator do
4
+
5
+ before(:each) do
6
+ @generator = ControllerGenerator.new(["product", "name:string", "value:double"])
7
+ @generator.build
8
+ end
9
+
10
+ after(:each) do
11
+ FileUtils.remove_dir("src")
12
+ end
13
+
14
+ it "should create controller" do
15
+ from = File.expand_path(File.dirname(__FILE__) + "/templates/ProductController.java")
16
+ to = "src/main/java/app/controllers/ProductController.java"
17
+ FileUtils.compare_file(from, to).should be_true
18
+ end
19
+
20
+ end
@@ -0,0 +1,72 @@
1
+ package app.controllers;
2
+
3
+ import java.util.List;
4
+
5
+ import javax.persistence.EntityManager;
6
+
7
+ import app.models.Product;
8
+ import br.com.caelum.vraptor.Delete;
9
+ import br.com.caelum.vraptor.Get;
10
+ import br.com.caelum.vraptor.Path;
11
+ import br.com.caelum.vraptor.Post;
12
+ import br.com.caelum.vraptor.Put;
13
+ import br.com.caelum.vraptor.Resource;
14
+ import br.com.caelum.vraptor.Result;
15
+ import br.com.caelum.vraptor.view.Results;
16
+
17
+ @Resource
18
+ public class ProductController {
19
+
20
+ private Result result;
21
+ private EntityManager entityManager;
22
+
23
+ public ProductController(Result result, EntityManager entityManager) {
24
+ this.entityManager = entityManager;
25
+ this.result = result;
26
+ }
27
+
28
+ @Get
29
+ @Path("/products")
30
+ public List<Product> index() {
31
+ return entityManager.createQuery("from Product").getResultList();
32
+ }
33
+
34
+ @Post
35
+ @Path("/products")
36
+ public void create(Product product) {
37
+ entityManager.persist(product);
38
+ result.use(Results.logic()).redirectTo(ProductController.class).index();
39
+ }
40
+
41
+ @Get
42
+ @Path("/products/new")
43
+ public Product newProduct() {
44
+ return new Product();
45
+ }
46
+
47
+ @Put
48
+ @Path("/products")
49
+ public void update(Product product) {
50
+ entityManager.merge(product);
51
+ result.use(Results.logic()).redirectTo(ProductController.class).index();
52
+ }
53
+
54
+ @Get
55
+ @Path("/products/product.id/edit")
56
+ public Product edit(Product product) {
57
+ return entityManager.find(Product.class, product.getId());
58
+ }
59
+
60
+ @Get
61
+ @Path("/products/product.id/show")
62
+ public Product show(Product product) {
63
+ return entityManager.find(Product.class, product.getId());
64
+ }
65
+
66
+ @Delete
67
+ @Path("/products")
68
+ public void destroy(Product product) {
69
+ entityManager.remove(entityManager.find(Product.class, product.getId()));
70
+ result.use(Results.logic()).redirectTo(ProductController.class).index();
71
+ }
72
+ }
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../../spec_helper")
2
+
3
+ describe FreemarkerGenerator do
4
+
5
+ before(:each) do
6
+ @generator = FreemarkerGenerator.new(["product", "name:string", "value:double"])
7
+ @generator.build
8
+ end
9
+
10
+ after(:each) do
11
+ FileUtils.remove_dir("src")
12
+ end
13
+
14
+ it "should create index view" do
15
+ File.exist?("src/main/webapp/WEB-INF/freemarker/product/index.ftl").should be_true
16
+ end
17
+
18
+ it "should create show view" do
19
+ File.exist?("src/main/webapp/WEB-INF/freemarker/product/show.ftl").should be_true
20
+ end
21
+
22
+ it "should create new view" do
23
+ File.exist?("src/main/webapp/WEB-INF/freemarker/product/new.ftl").should be_true
24
+ end
25
+
26
+ it "should create edit view" do
27
+ File.exist?("src/main/webapp/WEB-INF/freemarker/product/edit.ftl").should be_true
28
+ end
29
+
30
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../../spec_helper")
2
+
3
+ describe ModelGenerator do
4
+
5
+ before(:each) do
6
+ @generator = ModelGenerator.new(["product", "name:string", "value:double"])
7
+ @generator.build
8
+ end
9
+
10
+ after(:each) do
11
+ FileUtils.remove_dir("src")
12
+ end
13
+
14
+ it "should create model" do
15
+ from = File.expand_path(File.dirname(__FILE__) + "/templates/Product.java")
16
+ to = "src/main/java/app/models/Product.java"
17
+ FileUtils.compare_file(from, to).should be_true
18
+ end
19
+
20
+ end
@@ -0,0 +1,40 @@
1
+ package app.models;
2
+
3
+ import javax.persistence.Entity;
4
+ import javax.persistence.GeneratedValue;
5
+ import javax.persistence.Id;
6
+
7
+ @Entity
8
+ public class Product {
9
+
10
+ @Id @GeneratedValue
11
+ private Long id;
12
+
13
+ private String name;
14
+ private Double value;
15
+
16
+ public void setId(Long id) {
17
+ this.id = id;
18
+ }
19
+
20
+ public Long getId() {
21
+ return id;
22
+ }
23
+
24
+ public void setName(String name) {
25
+ this.name = name;
26
+ }
27
+
28
+ public String getName() {
29
+ return name;
30
+ }
31
+
32
+ public void setValue(Double value) {
33
+ this.value = value;
34
+ }
35
+
36
+ public Double getValue() {
37
+ return value;
38
+ }
39
+
40
+ }
@@ -0,0 +1,35 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper")
2
+
3
+ describe ScaffoldGenerator do
4
+
5
+ before(:each) do
6
+ @args = ["product", "name:string", "value:double"]
7
+ @generator = ScaffoldGenerator.new
8
+ @model_generator = mock(ModelGenerator)
9
+ ModelGenerator.stub!(:new).with(@args).and_return(@model_generator)
10
+ @controller_generator = mock(ControllerGenerator)
11
+ ControllerGenerator.stub!(:new).with(@args).and_return(@controller_generator)
12
+ @freemarker_generator = mock(FreemarkerGenerator)
13
+ FreemarkerGenerator.stub!(:new).with(@args).and_return(@freemarker_generator)
14
+ @model_generator.stub!(:build)
15
+ @controller_generator.stub!(:build)
16
+ @freemarker_generator.stub!(:build)
17
+ end
18
+
19
+ context "build scaffold" do
20
+ it "should call model generator" do
21
+ @model_generator.should_receive(:build)
22
+ @generator.build(@args)
23
+ end
24
+
25
+ it "should call controller generator" do
26
+ @controller_generator.should_receive(:build)
27
+ @generator.build(@args)
28
+ end
29
+
30
+ it "should call freemarker generator" do
31
+ @freemarker_generator.should_receive(:build)
32
+ @generator.build(@args)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe VraptorScaffold::Main do
4
+
5
+ context "new application" do
6
+ before(:each) do
7
+ @project_name = "vraptor-scaffold"
8
+ @generator = mock(AppGenerator)
9
+ AppGenerator.stub!(:new).and_return(@generator)
10
+ @args = ["new", @project_name]
11
+ end
12
+
13
+ it "should call app generator when typed new" do
14
+ @generator.should_receive(:build).with(@project_name)
15
+ VraptorScaffold::Main.execute(@args)
16
+ end
17
+
18
+ it "cannot call app generator when not typed new" do
19
+ @args.delete("new")
20
+ @generator.should_not_receive(:build)
21
+ VraptorScaffold::Main.execute(@args)
22
+ end
23
+ end
24
+
25
+ context "scaffold" do
26
+ before(:each) do
27
+ @generator = mock(ScaffoldGenerator)
28
+ ScaffoldGenerator.stub!(:new).and_return(@generator)
29
+ @args = ["scaffold", "product", "name:string", "value:doulbe"]
30
+ end
31
+
32
+ it "should call scaffold generator" do
33
+ @generator.should_receive(:build).with(["product", "name:string", "value:doulbe"])
34
+ VraptorScaffold::Main.execute(@args)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,3 @@
1
+ require 'spec'
2
+ require 'spec/autorun'
3
+ require File.dirname(__FILE__) + '/../lib/vraptor-scaffold'
@@ -0,0 +1,92 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{vraptor-scaffold}
8
+ s.version = "0.0.1.beta1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Rodolfo Liviero"]
12
+ s.date = %q{2010-07-07}
13
+ s.default_executable = %q{vraptor}
14
+ s.description = %q{}
15
+ s.email = %q{rodolfoliviero@gmail.com}
16
+ s.executables = ["vraptor"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".gitignore",
23
+ "Gemfile",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "TODO.txt",
27
+ "bin/vraptor",
28
+ "lib/generators/app_generator/app_generator.rb",
29
+ "lib/generators/app_generator/templates/FreemarkerPathResolver.java",
30
+ "lib/generators/app_generator/templates/decorators.xml",
31
+ "lib/generators/app_generator/templates/index.jsp",
32
+ "lib/generators/app_generator/templates/log4j.xml",
33
+ "lib/generators/app_generator/templates/main.ftl",
34
+ "lib/generators/app_generator/templates/persistence.xml",
35
+ "lib/generators/app_generator/templates/pom.erb",
36
+ "lib/generators/app_generator/templates/web.xml",
37
+ "lib/generators/attribute.rb",
38
+ "lib/generators/base.rb",
39
+ "lib/generators/scaffold_generator/base_scaffold.rb",
40
+ "lib/generators/scaffold_generator/controller_generator/controller_generator.rb",
41
+ "lib/generators/scaffold_generator/controller_generator/templates/controller.erb",
42
+ "lib/generators/scaffold_generator/freemarker_generator/freemarker_generator.rb",
43
+ "lib/generators/scaffold_generator/freemarker_generator/templates/edit.erb",
44
+ "lib/generators/scaffold_generator/freemarker_generator/templates/index.erb",
45
+ "lib/generators/scaffold_generator/freemarker_generator/templates/new.erb",
46
+ "lib/generators/scaffold_generator/freemarker_generator/templates/show.erb",
47
+ "lib/generators/scaffold_generator/model_generator/model_generator.rb",
48
+ "lib/generators/scaffold_generator/model_generator/templates/model.erb",
49
+ "lib/generators/scaffold_generator/scaffold_generator.rb",
50
+ "lib/load_paths.rb",
51
+ "lib/vraptor-scaffold.rb",
52
+ "spec/lib/generators/app_generator/app_generator_spec.rb",
53
+ "spec/lib/generators/app_generator/templates/pom.xml",
54
+ "spec/lib/generators/attribute_spec.rb",
55
+ "spec/lib/generators/scaffold_generator/controller_generator/controller_generator_spec.rb",
56
+ "spec/lib/generators/scaffold_generator/controller_generator/templates/ProductController.java",
57
+ "spec/lib/generators/scaffold_generator/freemarker_generator/freemarker_generator_spec.rb",
58
+ "spec/lib/generators/scaffold_generator/model_generator/model_generator_spec.rb",
59
+ "spec/lib/generators/scaffold_generator/model_generator/templates/Product.java",
60
+ "spec/lib/generators/scaffold_generator/scaffold_generator_spec.rb",
61
+ "spec/lib/vraptor-scaffold_spec.rb",
62
+ "spec/spec.opts",
63
+ "spec/spec_helper.rb",
64
+ "vraptor-scaffold.gemspec"
65
+ ]
66
+ s.homepage = %q{http://github.com/rodolfoliviero/vraptor-scaffold}
67
+ s.rdoc_options = ["--charset=UTF-8"]
68
+ s.require_paths = ["lib"]
69
+ s.rubygems_version = %q{1.3.7}
70
+ s.summary = %q{Scaffold for vraptor 3.}
71
+ s.test_files = [
72
+ "spec/lib/vraptor-scaffold_spec.rb",
73
+ "spec/lib/generators/app_generator/app_generator_spec.rb",
74
+ "spec/lib/generators/scaffold_generator/controller_generator/controller_generator_spec.rb",
75
+ "spec/lib/generators/scaffold_generator/scaffold_generator_spec.rb",
76
+ "spec/lib/generators/scaffold_generator/model_generator/model_generator_spec.rb",
77
+ "spec/lib/generators/scaffold_generator/freemarker_generator/freemarker_generator_spec.rb",
78
+ "spec/lib/generators/attribute_spec.rb",
79
+ "spec/spec_helper.rb"
80
+ ]
81
+
82
+ if s.respond_to? :specification_version then
83
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
84
+ s.specification_version = 3
85
+
86
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
87
+ else
88
+ end
89
+ else
90
+ end
91
+ end
92
+