gator-as3 0.0.7.pre → 0.0.9.pre

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 (69) hide show
  1. data/Gemfile +3 -2
  2. data/Rakefile +7 -4
  3. data/VERSION +1 -1
  4. data/gator-as3.gemspec +73 -28
  5. data/lib/gator/as3.rb +3 -0
  6. data/lib/gator/as3/as3_configuration.rb +38 -0
  7. data/lib/gator/as3/generators/{collection.rb → as3/collection.rb} +5 -1
  8. data/lib/gator/as3/generators/as3/event.rb +14 -0
  9. data/lib/gator/as3/generators/as3/generator.rb +95 -0
  10. data/lib/gator/as3/generators/as3/interface.rb +14 -0
  11. data/lib/gator/as3/generators/as3/klass.rb +15 -0
  12. data/lib/gator/as3/generators/as3/test/asunit3.rb +3 -0
  13. data/lib/gator/as3/generators/as3/test/asunit3/collection.rb +21 -0
  14. data/lib/gator/as3/generators/as3/test/asunit3/klass.rb +32 -0
  15. data/lib/gator/as3/generators/as3/test/asunit3/runner.rb +28 -0
  16. data/lib/gator/as3/generators/as3/test/asunit3/suite.rb +38 -0
  17. data/lib/gator/as3/generators/{test → as3/test}/asunit4.rb +0 -0
  18. data/lib/gator/as3/generators/{test → as3/test}/asunit4/collection.rb +5 -1
  19. data/lib/gator/as3/generators/as3/test/asunit4/klass.rb +31 -0
  20. data/lib/gator/as3/generators/as3/test/asunit4/runner.rb +29 -0
  21. data/lib/gator/as3/generators/as3/test/asunit4/suite.rb +39 -0
  22. data/lib/gator/as3/generators/{test → as3/test}/flexunit4.rb +0 -0
  23. data/lib/gator/as3/generators/{test → as3/test}/flexunit4/collection.rb +1 -1
  24. data/lib/gator/as3/generators/as3/test/flexunit4/klass.rb +34 -0
  25. data/lib/gator/as3/generators/mxml/application.rb +16 -0
  26. data/lib/gator/as3/generators/mxml/collection.rb +20 -0
  27. data/lib/gator/as3/generators/mxml/component.rb +16 -0
  28. data/lib/gator/as3/generators/mxml/generator.rb +20 -0
  29. data/lib/gator/as3/generators/mxml/skin.rb +21 -0
  30. data/lib/gator/as3/templates/as3/event.as.tt +12 -0
  31. data/lib/gator/as3/templates/as3/interface.as.tt +6 -0
  32. data/lib/gator/as3/{generators → templates/as3}/klass.as.tt +0 -0
  33. data/lib/gator/as3/templates/as3/test/asunit3/klass.as.tt +37 -0
  34. data/lib/gator/as3/templates/as3/test/asunit3/runner.as.tt +13 -0
  35. data/lib/gator/as3/templates/as3/test/asunit3/suite.as.tt +17 -0
  36. data/lib/gator/as3/{generators → templates/as3}/test/asunit4/klass.as.tt +0 -0
  37. data/lib/gator/as3/templates/as3/test/asunit4/runner.as.tt +17 -0
  38. data/lib/gator/as3/templates/as3/test/asunit4/suite.as.tt +14 -0
  39. data/lib/gator/as3/{generators → templates/as3}/test/flexunit4/klass.as.tt +0 -0
  40. data/lib/gator/as3/templates/mxml/application.mxml.tt +30 -0
  41. data/lib/gator/as3/templates/mxml/component.mxml.tt +13 -0
  42. data/lib/gator/as3/templates/mxml/skin.mxml.tt +53 -0
  43. data/lib/gator/mxml/generators.rb +5 -0
  44. data/lib/gator/utils/as3_util.rb +45 -0
  45. data/rake/jeweler.rb +17 -0
  46. data/rake/jeweler_prerelease_tasks.rb +50 -0
  47. data/rake/pre_release_gemspec.rb +80 -0
  48. data/rake/pre_release_to_git.rb +59 -0
  49. data/spec/as3/generators/collection_spec.rb +46 -0
  50. data/spec/as3/generators/event_spec.rb +40 -0
  51. data/spec/as3/generators/interface_spec.rb +40 -0
  52. data/spec/as3/generators/klass_spec.rb +40 -0
  53. data/spec/as3/generators/test/asunit3/klass_spec.rb +43 -0
  54. data/spec/as3/generators/test/asunit3/runner_spec.rb +43 -0
  55. data/spec/as3/generators/test/asunit3/suite_spec.rb +43 -0
  56. data/spec/as3/generators/test/asunit4/klass_spec.rb +43 -0
  57. data/spec/as3/generators/test/asunit4/runner_spec.rb +43 -0
  58. data/spec/as3/generators/test/asunit4/suite_spec.rb +43 -0
  59. data/spec/mxml/generators/application_spec.rb +42 -0
  60. data/spec/mxml/generators/component_spec.rb +42 -0
  61. data/spec/mxml/generators/skin_spec.rb +42 -0
  62. data/spec/spec_helper.rb +36 -3
  63. metadata +86 -35
  64. data/lib/gator/as3/generators.rb +0 -3
  65. data/lib/gator/as3/generators/klass.rb +0 -53
  66. data/lib/gator/as3/generators/test/asunit4/klass.rb +0 -61
  67. data/lib/gator/as3/generators/test/flexunit4/klass.rb +0 -57
  68. data/spec/generators/collection_spec.rb +0 -11
  69. data/spec/generators/klass_spec.rb +0 -5
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
- gem "gator", "~> 0.0.20.pre"
6
+ gem "gator", "0.0.23.pre"
7
7
 
8
8
  # Add dependencies to develop your gem here.
9
9
  # Include everything needed to run rake, tests, features, etc.
@@ -12,5 +12,6 @@ group :development do
12
12
  gem "ci_reporter", "~> 1.6.5"
13
13
  gem "bundler", "~> 1.0.0"
14
14
  gem "jeweler", "~> 1.6.2"
15
- gem "rcov", ">= 0"
15
+ gem "simplecov", :require => false
16
+ gem "simplecov-rcov", :require => false
16
17
  end
data/Rakefile CHANGED
@@ -25,6 +25,9 @@ Jeweler::Tasks.new do |gem|
25
25
  end
26
26
  Jeweler::RubygemsDotOrgTasks.new
27
27
 
28
+ require File.dirname(__FILE__)+"/rake/jeweler_prerelease_tasks"
29
+ Jeweler::PrereleaseTasks.new
30
+
28
31
  require 'rspec/core'
29
32
  require 'rspec/core/rake_task'
30
33
  require 'ci/reporter/rake/rspec'
@@ -36,10 +39,10 @@ end
36
39
 
37
40
  task :spec => "ci:setup:rspec"
38
41
 
39
- RSpec::Core::RakeTask.new(:rcov) do |spec|
40
- spec.pattern = 'spec/**/*_spec.rb'
41
- spec.rcov = true
42
- end
42
+ #RSpec::Core::RakeTask.new(:rcov) do |spec|
43
+ # spec.pattern = 'spec/**/*_spec.rb'
44
+ # spec.rcov = true
45
+ #end
43
46
 
44
47
  task :test => :spec
45
48
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7.pre
1
+ 0.0.9.pre
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{gator-as3}
8
- s.version = "0.0.7.pre"
7
+ s.name = "gator-as3"
8
+ s.version = "0.0.9.pre"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dominic Graefen"]
12
- s.date = %q{2011-08-16}
13
- s.description = %q{gator-as3 - ActionScript3 & MXML generators for gator}
14
- s.email = %q{dominic.graefen@gmail.com}
12
+ s.date = "2011-10-13"
13
+ s.description = "gator-as3 - ActionScript3 & MXML generators for gator"
14
+ s.email = "dominic.graefen@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -25,53 +25,98 @@ Gem::Specification.new do |s|
25
25
  "VERSION",
26
26
  "gator-as3.gemspec",
27
27
  "lib/gator/as3.rb",
28
- "lib/gator/as3/generators.rb",
29
- "lib/gator/as3/generators/collection.rb",
30
- "lib/gator/as3/generators/klass.as.tt",
31
- "lib/gator/as3/generators/klass.rb",
32
- "lib/gator/as3/generators/test/asunit4.rb",
33
- "lib/gator/as3/generators/test/asunit4/collection.rb",
34
- "lib/gator/as3/generators/test/asunit4/klass.as.tt",
35
- "lib/gator/as3/generators/test/asunit4/klass.rb",
36
- "lib/gator/as3/generators/test/flexunit4.rb",
37
- "lib/gator/as3/generators/test/flexunit4/collection.rb",
38
- "lib/gator/as3/generators/test/flexunit4/klass.as.tt",
39
- "lib/gator/as3/generators/test/flexunit4/klass.rb",
40
- "spec/generators/collection_spec.rb",
41
- "spec/generators/klass_spec.rb",
28
+ "lib/gator/as3/as3_configuration.rb",
29
+ "lib/gator/as3/generators/as3/collection.rb",
30
+ "lib/gator/as3/generators/as3/event.rb",
31
+ "lib/gator/as3/generators/as3/generator.rb",
32
+ "lib/gator/as3/generators/as3/interface.rb",
33
+ "lib/gator/as3/generators/as3/klass.rb",
34
+ "lib/gator/as3/generators/as3/test/asunit3.rb",
35
+ "lib/gator/as3/generators/as3/test/asunit3/collection.rb",
36
+ "lib/gator/as3/generators/as3/test/asunit3/klass.rb",
37
+ "lib/gator/as3/generators/as3/test/asunit3/runner.rb",
38
+ "lib/gator/as3/generators/as3/test/asunit3/suite.rb",
39
+ "lib/gator/as3/generators/as3/test/asunit4.rb",
40
+ "lib/gator/as3/generators/as3/test/asunit4/collection.rb",
41
+ "lib/gator/as3/generators/as3/test/asunit4/klass.rb",
42
+ "lib/gator/as3/generators/as3/test/asunit4/runner.rb",
43
+ "lib/gator/as3/generators/as3/test/asunit4/suite.rb",
44
+ "lib/gator/as3/generators/as3/test/flexunit4.rb",
45
+ "lib/gator/as3/generators/as3/test/flexunit4/collection.rb",
46
+ "lib/gator/as3/generators/as3/test/flexunit4/klass.rb",
47
+ "lib/gator/as3/generators/mxml/application.rb",
48
+ "lib/gator/as3/generators/mxml/collection.rb",
49
+ "lib/gator/as3/generators/mxml/component.rb",
50
+ "lib/gator/as3/generators/mxml/generator.rb",
51
+ "lib/gator/as3/generators/mxml/skin.rb",
52
+ "lib/gator/as3/templates/as3/event.as.tt",
53
+ "lib/gator/as3/templates/as3/interface.as.tt",
54
+ "lib/gator/as3/templates/as3/klass.as.tt",
55
+ "lib/gator/as3/templates/as3/test/asunit3/klass.as.tt",
56
+ "lib/gator/as3/templates/as3/test/asunit3/runner.as.tt",
57
+ "lib/gator/as3/templates/as3/test/asunit3/suite.as.tt",
58
+ "lib/gator/as3/templates/as3/test/asunit4/klass.as.tt",
59
+ "lib/gator/as3/templates/as3/test/asunit4/runner.as.tt",
60
+ "lib/gator/as3/templates/as3/test/asunit4/suite.as.tt",
61
+ "lib/gator/as3/templates/as3/test/flexunit4/klass.as.tt",
62
+ "lib/gator/as3/templates/mxml/application.mxml.tt",
63
+ "lib/gator/as3/templates/mxml/component.mxml.tt",
64
+ "lib/gator/as3/templates/mxml/skin.mxml.tt",
65
+ "lib/gator/mxml/generators.rb",
66
+ "lib/gator/utils/as3_util.rb",
67
+ "rake/jeweler.rb",
68
+ "rake/jeweler_prerelease_tasks.rb",
69
+ "rake/pre_release_gemspec.rb",
70
+ "rake/pre_release_to_git.rb",
71
+ "spec/as3/generators/collection_spec.rb",
72
+ "spec/as3/generators/event_spec.rb",
73
+ "spec/as3/generators/interface_spec.rb",
74
+ "spec/as3/generators/klass_spec.rb",
75
+ "spec/as3/generators/test/asunit3/klass_spec.rb",
76
+ "spec/as3/generators/test/asunit3/runner_spec.rb",
77
+ "spec/as3/generators/test/asunit3/suite_spec.rb",
78
+ "spec/as3/generators/test/asunit4/klass_spec.rb",
79
+ "spec/as3/generators/test/asunit4/runner_spec.rb",
80
+ "spec/as3/generators/test/asunit4/suite_spec.rb",
81
+ "spec/mxml/generators/application_spec.rb",
82
+ "spec/mxml/generators/component_spec.rb",
83
+ "spec/mxml/generators/skin_spec.rb",
42
84
  "spec/spec_helper.rb"
43
85
  ]
44
- s.homepage = %q{http://github.com/devboy/gator-as3}
86
+ s.homepage = "http://github.com/devboy/gator-as3"
45
87
  s.licenses = ["MIT"]
46
88
  s.require_paths = ["lib"]
47
- s.rubygems_version = %q{1.6.2}
48
- s.summary = %q{gator-as3 - ActionScript3 & MXML generators for gator}
89
+ s.rubygems_version = "1.8.10"
90
+ s.summary = "gator-as3 - ActionScript3 & MXML generators for gator"
49
91
 
50
92
  if s.respond_to? :specification_version then
51
93
  s.specification_version = 3
52
94
 
53
95
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
- s.add_runtime_dependency(%q<gator>, ["~> 0.0.20.pre"])
96
+ s.add_runtime_dependency(%q<gator>, ["= 0.0.23.pre"])
55
97
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
56
98
  s.add_development_dependency(%q<ci_reporter>, ["~> 1.6.5"])
57
99
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
58
100
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
59
- s.add_development_dependency(%q<rcov>, [">= 0"])
101
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
102
+ s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
60
103
  else
61
- s.add_dependency(%q<gator>, ["~> 0.0.20.pre"])
104
+ s.add_dependency(%q<gator>, ["= 0.0.23.pre"])
62
105
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
63
106
  s.add_dependency(%q<ci_reporter>, ["~> 1.6.5"])
64
107
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
65
108
  s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
66
- s.add_dependency(%q<rcov>, [">= 0"])
109
+ s.add_dependency(%q<simplecov>, [">= 0"])
110
+ s.add_dependency(%q<simplecov-rcov>, [">= 0"])
67
111
  end
68
112
  else
69
- s.add_dependency(%q<gator>, ["~> 0.0.20.pre"])
113
+ s.add_dependency(%q<gator>, ["= 0.0.23.pre"])
70
114
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
71
115
  s.add_dependency(%q<ci_reporter>, ["~> 1.6.5"])
72
116
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
117
  s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
74
- s.add_dependency(%q<rcov>, [">= 0"])
118
+ s.add_dependency(%q<simplecov>, [">= 0"])
119
+ s.add_dependency(%q<simplecov-rcov>, [">= 0"])
75
120
  end
76
121
  end
77
122
 
@@ -0,0 +1,3 @@
1
+ require File.dirname(__FILE__) + '/as3/as3_configuration'
2
+
3
+ Gator::Sandbox.gator.add_configuration :as3, Gator::AS3Configuration.new
@@ -0,0 +1,38 @@
1
+ class Gator
2
+ class AS3Configuration < Gator::Configuration
3
+
4
+ def use *generators
5
+ require File.dirname(__FILE__) + '/../../gator/utils/as3_util'
6
+ generators.each do |generator|
7
+ case generator
8
+ when :as3
9
+ add_as3_collection
10
+ when :mxml
11
+ require File.dirname(__FILE__) + '/generators/mxml/generator'
12
+ require File.dirname(__FILE__) + '/generators/mxml/collection'
13
+ Gator::GenerateCommand << Gator::MXML::GeneratorCollection
14
+ when :asunit3
15
+ add_as3_collection
16
+ require File.dirname(__FILE__) + '/generators/as3/test/asunit3'
17
+ when :asunit4
18
+ add_as3_collection
19
+ require File.dirname(__FILE__) + '/generators/as3/test/asunit4'
20
+ when :flexunit4
21
+ add_as3_collection
22
+ require File.dirname(__FILE__) + '/generators/as3/test/flexunit4'
23
+ end
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def add_as3_collection
30
+ unless @as3_collection_added
31
+ require File.dirname(__FILE__) + '/generators/as3/collection'
32
+ require File.dirname(__FILE__) + '/generators/as3/generator'
33
+ Gator::GenerateCommand << Gator::AS3::GeneratorCollection
34
+ @as3_collection_added = true
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,6 +1,8 @@
1
1
  require File.dirname(__FILE__) + '/klass'
2
+ require File.dirname(__FILE__) + '/event'
3
+ require File.dirname(__FILE__) + '/interface'
2
4
 
3
- module Gator
5
+ class Gator
4
6
  module AS3
5
7
 
6
8
  class GeneratorCollection < Gator::Command
@@ -9,6 +11,8 @@ module Gator
9
11
  :usage => "generate as3 GENERATOR", :description => "Generators for AS3."
10
12
 
11
13
  register_subcommand Gator::AS3::ClassGenerator
14
+ register_subcommand Gator::AS3::EventGenerator
15
+ register_subcommand Gator::AS3::InterfaceGenerator
12
16
 
13
17
  end
14
18
 
@@ -0,0 +1,14 @@
1
+ class Gator
2
+ module AS3
3
+ class EventGenerator < KlassGenerator
4
+
5
+ define :command => "event",
6
+ :usage => "generate as3 event CLASS_NAME", :description => "Creates AS3 event."
7
+
8
+ def template_file
9
+ "as3/event.as.tt"
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,95 @@
1
+ class Gator
2
+ module AS3
3
+ class AS3Generator < Gator::Generator
4
+ include Gator::ActAsTemplateGenerator
5
+
6
+ argument :package_and_class
7
+ attr_accessor :package_name, :class_name
8
+
9
+ def self.template_root
10
+ File.dirname(__FILE__) + "/../../templates"
11
+ end
12
+
13
+ def init
14
+ @package_name, @class_name = AS3Util.split_package_and_class(package_and_class)
15
+ end
16
+
17
+ def generate
18
+ template template_file, target
19
+ end
20
+
21
+ protected
22
+
23
+ def template_file
24
+ nil
25
+ end
26
+
27
+ def target
28
+ File.join(source, AS3Util.package_to_dir(@package_name), "#{@class_name}.as")
29
+ end
30
+
31
+ end
32
+
33
+ class KlassGenerator < AS3Generator
34
+
35
+ class_option :test, :default => false
36
+
37
+ def generate_test
38
+ return unless options[:test]
39
+ invoke resolve_subcommand( generate_test_command, generate_test_command_fallback )
40
+ end
41
+
42
+ protected
43
+
44
+ def source
45
+ Gator::Sandbox.gator.project.path(:source, :main, :as3)
46
+ end
47
+
48
+ def generate_test_command
49
+ ["test", definition[:command]]
50
+ end
51
+
52
+ def generate_test_command_fallback
53
+ ["as3", "test", "klass"]
54
+ end
55
+ end
56
+
57
+ class TestGenerator < AS3Generator
58
+
59
+ class_option :klass, :default => false
60
+
61
+ def generate_klass
62
+ return unless options[:klass]
63
+ invoke resolve_subcommand(generate_klass_command, generate_klass_command_fallback)
64
+ end
65
+
66
+ class_option :suite, :default => true
67
+
68
+ def update_suite
69
+ return unless options[:suite]
70
+ invoke resolve_subcommand(["test","suite"])
71
+ end
72
+
73
+ class_option :runner, :default => true
74
+
75
+ def update_runner
76
+ return unless options[:runner]
77
+ invoke resolve_subcommand(["test","runner"])
78
+ end
79
+
80
+ protected
81
+
82
+ def source
83
+ Gator::Sandbox.gator.project.path(:source, :test, :as3)
84
+ end
85
+
86
+ def generate_klass_command
87
+ ["as3", definition[:command]]
88
+ end
89
+
90
+ def generate_klass_command_fallback
91
+ ["as3", "klass"]
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,14 @@
1
+ class Gator
2
+ module AS3
3
+ class InterfaceGenerator < KlassGenerator
4
+
5
+ define :command => "interface",
6
+ :usage => "generate as3 interface CLASS_NAME", :description => "Creates AS3 class."
7
+
8
+ def template_file
9
+ "as3/interface.as.tt"
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/generator'
2
+ class Gator
3
+ module AS3
4
+ class ClassGenerator < KlassGenerator
5
+
6
+ define :command => "klass",
7
+ :usage => "generate as3 klass CLASS_NAME", :description => "Creates AS3 class."
8
+
9
+ def template_file
10
+ "as3/klass.as.tt"
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ require File.dirname(__FILE__) + '/asunit3/collection'
2
+
3
+ Gator::AS3::GeneratorCollection.register_subcommand Gator::AS3::ASUnit3::TestGeneratorCollection
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/klass'
2
+ require File.dirname(__FILE__) + '/suite'
3
+ require File.dirname(__FILE__) + '/runner'
4
+
5
+ class Gator
6
+ module AS3
7
+ module ASUnit3
8
+
9
+ class TestGeneratorCollection < Gator::Command
10
+
11
+ define :command => "test",
12
+ :usage => "generate as3 test GENERATOR", :description => "TestGenerators for ASUnit3"
13
+
14
+ register_subcommand ClassTestGenerator
15
+ register_subcommand SuiteGenerator
16
+ register_subcommand RunnerGenerator
17
+
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ class Gator
2
+ module AS3
3
+ module ASUnit3
4
+
5
+ class ClassTestGenerator < Gator::AS3::TestGenerator
6
+
7
+
8
+ define :command => "klass",
9
+ :usage => "generate as3 test klass CLASS_NAME", :description => "Creates ASUnit3 class test."
10
+
11
+ def template_file
12
+ "as3/test/asunit3/klass.as.tt"
13
+ end
14
+
15
+ def generate
16
+ @class_name = "#{@class_name}Test"
17
+ super
18
+ end
19
+
20
+ no_tasks {
21
+
22
+ def instance_name
23
+ @class_name.chomp("Test")
24
+ end
25
+
26
+ }
27
+
28
+ end
29
+
30
+ end
31
+ end
32
+ end