From ce1b4ec347a0e6f12d631ce7fe9f3a6a0dca5b12 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 26 Sep 2012 13:43:38 -0700 Subject: [PATCH] added contianer check to simplify models --- .../petstore/ruby/RubyPetstoreCodegen.scala | 10 ++- .../client/petstore/ruby/models/Category.rb | 22 +---- samples/client/petstore/ruby/models/Order.rb | 55 ++---------- samples/client/petstore/ruby/models/Pet.rb | 58 ++---------- samples/client/petstore/ruby/models/Tag.rb | 22 +---- samples/client/petstore/ruby/models/User.rb | 88 ++----------------- src/main/resources/ruby/model.mustache | 8 +- 7 files changed, 38 insertions(+), 225 deletions(-) diff --git a/samples/client/petstore/ruby/RubyPetstoreCodegen.scala b/samples/client/petstore/ruby/RubyPetstoreCodegen.scala index 811ec24f40d..c0b3615f9f3 100644 --- a/samples/client/petstore/ruby/RubyPetstoreCodegen.scala +++ b/samples/client/petstore/ruby/RubyPetstoreCodegen.scala @@ -1,13 +1,19 @@ import com.wordnik.swagger.codegen.BasicRubyGenerator import com.wordnik.swagger.core._ +import com.wordnik.swagger.codegen.util.ScalaJsonUtil object RubyPetstoreCodegen extends BasicRubyGenerator { def main(args: Array[String]) = generateClient(args) + // to avoid recompiling ... + override def templateDir = "src/main/resources/ruby" + // where to write generated code override def destinationDir = "samples/client/petstore/ruby" - // package for models - override def modelPackage = Some("models") + override def processModelMap(m: Map[String, AnyRef]): Map[String, AnyRef] = { + println(json.writeValueAsString(m)) + m + } } \ No newline at end of file diff --git a/samples/client/petstore/ruby/models/Category.rb b/samples/client/petstore/ruby/models/Category.rb index df47a88e917..c77144950f5 100644 --- a/samples/client/petstore/ruby/models/Category.rb +++ b/samples/client/petstore/ruby/models/Category.rb @@ -16,31 +16,13 @@ class Category if Category.attribute_map["id".to_sym] != nil name = "id".to_sym value = attributes["id"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Category.attribute_map["name".to_sym] != nil name = "name".to_sym value = attributes["name"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end end end diff --git a/samples/client/petstore/ruby/models/Order.rb b/samples/client/petstore/ruby/models/Order.rb index e6244d0a136..4bc865e31db 100644 --- a/samples/client/petstore/ruby/models/Order.rb +++ b/samples/client/petstore/ruby/models/Order.rb @@ -16,73 +16,28 @@ class Order if Order.attribute_map["id".to_sym] != nil name = "id".to_sym value = attributes["id"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Order.attribute_map["pet_id".to_sym] != nil name = "pet_id".to_sym value = attributes["petId"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Order.attribute_map["status".to_sym] != nil name = "status".to_sym value = attributes["status"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Order.attribute_map["quantity".to_sym] != nil name = "quantity".to_sym value = attributes["quantity"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Order.attribute_map["ship_date".to_sym] != nil name = "ship_date".to_sym value = attributes["shipDate"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push Date.new(arrayValue) - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end end end diff --git a/samples/client/petstore/ruby/models/Pet.rb b/samples/client/petstore/ruby/models/Pet.rb index 7aa7da11b7d..a8d13a8f9f8 100644 --- a/samples/client/petstore/ruby/models/Pet.rb +++ b/samples/client/petstore/ruby/models/Pet.rb @@ -16,87 +16,45 @@ class Pet if Pet.attribute_map["id".to_sym] != nil name = "id".to_sym value = attributes["id"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Pet.attribute_map["tags".to_sym] != nil name = "tags".to_sym value = attributes["tags"] - - if value.is_a?(Array) + if value.is_a?(Array) array = Array.new value.each do |arrayValue| array.push Tag.new(arrayValue) end send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) end - end + end if Pet.attribute_map["category".to_sym] != nil name = "category".to_sym value = attributes["category"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push Category.new(arrayValue) - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Pet.attribute_map["status".to_sym] != nil name = "status".to_sym value = attributes["status"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Pet.attribute_map["name".to_sym] != nil name = "name".to_sym value = attributes["name"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Pet.attribute_map["photo_urls".to_sym] != nil name = "photo_urls".to_sym value = attributes["photoUrls"] - - if value.is_a?(Array) + if value.is_a?(Array) array = Array.new value.each do |arrayValue| array.push arrayValue end send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) end - end + end end end diff --git a/samples/client/petstore/ruby/models/Tag.rb b/samples/client/petstore/ruby/models/Tag.rb index 0dbc9be216e..5360a29f23d 100644 --- a/samples/client/petstore/ruby/models/Tag.rb +++ b/samples/client/petstore/ruby/models/Tag.rb @@ -16,31 +16,13 @@ class Tag if Tag.attribute_map["id".to_sym] != nil name = "id".to_sym value = attributes["id"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if Tag.attribute_map["name".to_sym] != nil name = "name".to_sym value = attributes["name"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end end end diff --git a/samples/client/petstore/ruby/models/User.rb b/samples/client/petstore/ruby/models/User.rb index 34eb37ffc2f..a58bb39d09f 100644 --- a/samples/client/petstore/ruby/models/User.rb +++ b/samples/client/petstore/ruby/models/User.rb @@ -16,115 +16,43 @@ class User if User.attribute_map["id".to_sym] != nil name = "id".to_sym value = attributes["id"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["last_name".to_sym] != nil name = "last_name".to_sym value = attributes["lastName"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["username".to_sym] != nil name = "username".to_sym value = attributes["username"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["phone".to_sym] != nil name = "phone".to_sym value = attributes["phone"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["email".to_sym] != nil name = "email".to_sym value = attributes["email"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["user_status".to_sym] != nil name = "user_status".to_sym value = attributes["userStatus"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["first_name".to_sym] != nil name = "first_name".to_sym value = attributes["firstName"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end if User.attribute_map["password".to_sym] != nil name = "password".to_sym value = attributes["password"] - - if value.is_a?(Array) - array = Array.new - value.each do |arrayValue| - array.push arrayValue - end - send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) + send("#{name}=", value) if self.respond_to?(name) end - end end end diff --git a/src/main/resources/ruby/model.mustache b/src/main/resources/ruby/model.mustache index eac0d76d4e2..083570fa4b9 100644 --- a/src/main/resources/ruby/model.mustache +++ b/src/main/resources/ruby/model.mustache @@ -20,7 +20,7 @@ class {{classname}} if {{classname}}.attribute_map["{{{name}}}".to_sym] != nil name = "{{{name}}}".to_sym value = attributes["{{{baseName}}}"] - + {{#isContainer}} if value.is_a?(Array) array = Array.new value.each do |arrayValue| @@ -30,9 +30,11 @@ class {{classname}} {{/complexType}} end send("#{name}=", array) if self.respond_to?(name) - else - send("#{name}=", value) if self.respond_to?(name) end + {{/isContainer}} + {{^isContainer}} + send("#{name}=", value) if self.respond_to?(name) + {{/isContainer}} end {{/vars}} end