gator 0.0.8.pre → 0.0.9.pre

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8.pre
1
+ 0.0.9.pre
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{gator}
8
- s.version = "0.0.8.pre"
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"]
@@ -28,31 +28,14 @@ Gem::Specification.new do |s|
28
28
  "VERSION",
29
29
  "bin/gator",
30
30
  "gator.gemspec",
31
- "lib/__legacy/core.rb",
32
- "lib/__legacy/core/cli.rb",
33
- "lib/__legacy/core/cli/application.rb",
34
- "lib/__legacy/core/cli/shell.rb",
35
- "lib/__legacy/core/command.rb",
36
- "lib/__legacy/core/command/command.rb",
37
- "lib/__legacy/core/configuration.rb",
38
- "lib/__legacy/core/configuration/configuration.rb",
39
- "lib/__legacy/core/project.rb",
40
- "lib/__legacy/core/project/layout.rb",
41
- "lib/__legacy/core/project/project.rb",
42
- "lib/__legacy/default.rb",
43
- "lib/__legacy/default/commands/generator_command.rb",
44
- "lib/__legacy/default/commands/new_command.rb",
45
- "lib/__legacy/default/commands/new_template/.gator/project.rb.tt",
46
- "lib/__legacy/default/generators/AS3ClassTemplate.as.tt",
47
- "lib/__legacy/default/generators/as3_class_generator.rb",
48
- "lib/__legacy/gator.rb",
49
31
  "lib/gator.rb",
50
32
  "lib/gator/commands/command.rb",
51
33
  "lib/gator/commands/project_command.rb",
34
+ "lib/gator/config.rb",
35
+ "lib/gator/project/layout.rb",
36
+ "lib/gator/project/project.rb",
52
37
  "lib/gator/runner.rb",
53
38
  "lib/gator/util.rb",
54
- "spec/core/command/command_spec.rb",
55
- "spec/core/project/project_spec.rb",
56
39
  "spec/spec_helper.rb"
57
40
  ]
58
41
  s.homepage = %q{http://github.com/devboy/gator}
@@ -1,3 +1,5 @@
1
+ require File.dirname(__FILE__) + '/gator/config'
2
+ require File.dirname(__FILE__) + '/gator/util'
1
3
  require File.dirname(__FILE__) + '/gator/runner'
2
4
  require File.dirname(__FILE__) + '/gator/commands/command'
3
- require File.dirname(__FILE__) + '/gator/commands/project_command'
5
+ require File.dirname(__FILE__) + '/gator/commands/project_command'
@@ -14,7 +14,7 @@ module Gator
14
14
  Gator::Util.project_template_root
15
15
  end
16
16
 
17
- desc "project install DIRECTORY TEMPLATE_NAME", "Install a project template."
17
+ desc "project install NAME TEMPLATE_NAME", "Install a project template."
18
18
  def install( dir, template=nil )
19
19
  entries = directory_entries dir
20
20
  template ||= File.expand_path( File.dirname(entries.first) ).split(File::SEPARATOR).last
@@ -28,9 +28,10 @@ module Gator
28
28
  FileUtils.rm_r template_dir(template)
29
29
  end
30
30
 
31
- desc "project new DIRECTORY TEMPLATE_NAME", "Create a new project by template."
32
- def new( dir, template )
33
- directory template_dir(template), File.expand_path( dir )
31
+ desc "project new NAME TEMPLATE_NAME", "Create a new project by template."
32
+ def new( name, template )
33
+ @project_name = name
34
+ directory template_dir(template), File.expand_path( name )
34
35
  end
35
36
 
36
37
  desc "project wipe", "Delete all project templates."
@@ -46,6 +47,14 @@ module Gator
46
47
  say "No templates found.", :blue if entries.empty?
47
48
  end
48
49
 
50
+ no_tasks {
51
+
52
+ def project_name
53
+ @project_name
54
+ end
55
+
56
+ }
57
+
49
58
  private
50
59
 
51
60
  def create_empty_directory_files( dir )
@@ -0,0 +1,23 @@
1
+ module Gator
2
+ module Configuration
3
+
4
+ def self.config
5
+ @configuration ||= GatorConfiguration.new
6
+ end
7
+
8
+ def config
9
+ Configuration.config
10
+ end
11
+ alias_method :configuration, :config
12
+
13
+ end
14
+ class GatorConfiguration
15
+
16
+ attr_accessor :user
17
+
18
+ def options
19
+ @options ||= {}
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/../util'
2
+ require File.dirname(__FILE__) + '/layout'
3
+ module Gator
4
+ module Project
5
+
6
+ def self.project
7
+ @project
8
+ end
9
+
10
+ def self.project=(project)
11
+ @project = project
12
+ end
13
+
14
+ def project( project= nil )
15
+ Project.project = project unless project.nil?
16
+ Project.project
17
+ end
18
+
19
+ class ProjectBase
20
+
21
+ attr_accessor :name, :layout
22
+
23
+ def initialize
24
+ @name = ""
25
+ @layout = Layout.default
26
+ end
27
+
28
+ def path(*args)
29
+ File.join(Gator::Util.find_gator_project, layout.expand(*args))
30
+ end
31
+
32
+ def options
33
+ @options ||= {}
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+ end
@@ -1,8 +1,16 @@
1
1
  require 'thor'
2
2
  require 'thor/group'
3
+ require 'thor/actions'
4
+ require File.dirname(__FILE__) + '/util'
3
5
 
4
6
  module Gator
5
7
  class Runner < Thor
8
+ include Thor::Actions
9
+
10
+ def self.start
11
+ Gator::Util.initialize_files
12
+ super
13
+ end
6
14
 
7
15
  desc "version", "Show Gator version"
8
16
  def version
@@ -1,6 +1,27 @@
1
+ require "thor"
1
2
  require "thor/util"
3
+ require "thor/actions"
4
+ require "pathname"
5
+ require File.dirname(__FILE__) + '/config'
6
+ require File.dirname(__FILE__) + '/project/project'
2
7
  module Gator
8
+ module Sandbox
9
+ extend Gator::Configuration
10
+ extend Gator::Project
11
+ end
3
12
  class Util
13
+ def self.gator_files
14
+ [ "gator", "gator.rb" ]
15
+ end
16
+
17
+ def self.gator_files_for(dir)
18
+ gator_files.collect { |f| File.join(dir, f) }
19
+ end
20
+
21
+ def self.gator_config
22
+ File.join(gator_root, "configuration.rb")
23
+ end
24
+
4
25
  def self.gator_root
5
26
  File.join(Thor::Util.user_home, ".gator").gsub(/\\/, '/')
6
27
  end
@@ -8,5 +29,60 @@ module Gator
8
29
  def self.project_template_root
9
30
  File.join(gator_root, "templates", "projects")
10
31
  end
32
+
33
+ def self.load_rubyfile(path, content=nil, debug=false)
34
+ content ||= File.binread(path)
35
+
36
+ begin
37
+ Gator::Sandbox.module_eval(content, path)
38
+ rescue Exception => e
39
+ $stderr.puts "WARNING: unable to load file #{path.inspect}: #{e.message}"
40
+ if debug
41
+ $stderr.puts *e.backtrace
42
+ else
43
+ $stderr.puts e.backtrace.first
44
+ end
45
+ end
46
+ end
47
+
48
+ def self.find_gator_project_file(path= Dir.getwd)
49
+ gatorfile = nil
50
+ Pathname.new(path).ascend do |dir|
51
+ gatorfile = gator_files_for(dir).map { |g| Dir[g] }.flatten.first
52
+ break unless gatorfile.nil?
53
+ end
54
+ gatorfile
55
+ end
56
+
57
+ def self.find_gator_project(path= Dir.getwd)
58
+ file = find_gator_project_file path
59
+ File.dirname file unless file.nil?
60
+ end
61
+
62
+ def self.initialize_files
63
+
64
+ if File.exists? gator_config
65
+ load_rubyfile gator_config
66
+ else
67
+ FileCreator.new.config_file
68
+ end
69
+
70
+ p_file = find_gator_project_file
71
+ load_rubyfile p_file unless p_file.nil?
72
+
73
+ end
74
+
75
+ class FileCreator < Thor
76
+ include Thor::Actions
77
+
78
+ desc "no cli usage", "create config file"
79
+ def config_file
80
+ file = Gator::Util.gator_config
81
+ user = ask "Username:"
82
+ create_file file, "config.user='#{user}'"
83
+ end
84
+
85
+ end
86
+
11
87
  end
12
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8.pre
4
+ version: 0.0.9.pre
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable: gator
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
17
- requirement: &2157177140 !ruby/object:Gem::Requirement
17
+ requirement: &2156481240 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.14.6
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2157177140
25
+ version_requirements: *2156481240
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec
28
- requirement: &2157176660 !ruby/object:Gem::Requirement
28
+ requirement: &2156480640 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 2.3.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2157176660
36
+ version_requirements: *2156480640
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &2157176180 !ruby/object:Gem::Requirement
39
+ requirement: &2156480040 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.0.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2157176180
47
+ version_requirements: *2156480040
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: jeweler
50
- requirement: &2157175680 !ruby/object:Gem::Requirement
50
+ requirement: &2156479460 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.6.2
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2157175680
58
+ version_requirements: *2156479460
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rcov
61
- requirement: &2157175140 !ruby/object:Gem::Requirement
61
+ requirement: &2156478860 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2157175140
69
+ version_requirements: *2156478860
70
70
  description: gator - the friendly code-generator
71
71
  email: dominic.graefen@gmail.com
72
72
  executables:
@@ -85,31 +85,14 @@ files:
85
85
  - VERSION
86
86
  - bin/gator
87
87
  - gator.gemspec
88
- - lib/__legacy/core.rb
89
- - lib/__legacy/core/cli.rb
90
- - lib/__legacy/core/cli/application.rb
91
- - lib/__legacy/core/cli/shell.rb
92
- - lib/__legacy/core/command.rb
93
- - lib/__legacy/core/command/command.rb
94
- - lib/__legacy/core/configuration.rb
95
- - lib/__legacy/core/configuration/configuration.rb
96
- - lib/__legacy/core/project.rb
97
- - lib/__legacy/core/project/layout.rb
98
- - lib/__legacy/core/project/project.rb
99
- - lib/__legacy/default.rb
100
- - lib/__legacy/default/commands/generator_command.rb
101
- - lib/__legacy/default/commands/new_command.rb
102
- - lib/__legacy/default/commands/new_template/.gator/project.rb.tt
103
- - lib/__legacy/default/generators/AS3ClassTemplate.as.tt
104
- - lib/__legacy/default/generators/as3_class_generator.rb
105
- - lib/__legacy/gator.rb
106
88
  - lib/gator.rb
107
89
  - lib/gator/commands/command.rb
108
90
  - lib/gator/commands/project_command.rb
91
+ - lib/gator/config.rb
92
+ - lib/gator/project/layout.rb
93
+ - lib/gator/project/project.rb
109
94
  - lib/gator/runner.rb
110
95
  - lib/gator/util.rb
111
- - spec/core/command/command_spec.rb
112
- - spec/core/project/project_spec.rb
113
96
  - spec/spec_helper.rb
114
97
  has_rdoc: true
115
98
  homepage: http://github.com/devboy/gator
@@ -127,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
110
  version: '0'
128
111
  segments:
129
112
  - 0
130
- hash: 886414708621088271
113
+ hash: 875943467517881199
131
114
  required_rubygems_version: !ruby/object:Gem::Requirement
132
115
  none: false
133
116
  requirements:
@@ -1,4 +0,0 @@
1
- require File.dirname(__FILE__) + '/core/command'
2
- require File.dirname(__FILE__) + '/core/configuration'
3
- require File.dirname(__FILE__) + '/core/project'
4
- require File.dirname(__FILE__) + '/core/cli'
@@ -1,2 +0,0 @@
1
- require File.dirname(__FILE__) + '/cli/shell'
2
- require File.dirname(__FILE__) + '/cli/application'
@@ -1,46 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../lib/core/project'
2
- require File.dirname(__FILE__) + '/../../../lib/core/configuration'
3
-
4
- module Gator
5
- def self.set_argv(args)
6
- ARGV.length.times do |i|
7
- ARGV.delete_at i
8
- end
9
- args.length.times do |i|
10
- ARGV[i] = args[i]
11
- end
12
- end
13
-
14
- module CLI
15
- class Application
16
-
17
- def initialize
18
- self
19
- end
20
-
21
- def execute(args)
22
- raise "No command specified." if args.empty?
23
- command = args.shift
24
- raise "Command: \"#{command}\" could not be found." unless Gator::Command.has?(command)
25
- args << "--help" if args.empty?
26
- Gator::Command.get(command).start args
27
- end
28
-
29
- def shell
30
- @shell ||= Shell.new
31
- end
32
-
33
- end
34
- end
35
- class << self
36
-
37
- attr_accessor :application
38
-
39
- def shell
40
- application.shell
41
- end
42
-
43
- end
44
-
45
- self.application= Gator::CLI::Application.new
46
- end
@@ -1,4 +0,0 @@
1
- module Gator
2
- class Shell < Thor::Shell::Color
3
- end
4
- end
@@ -1 +0,0 @@
1
- require File.dirname(__FILE__) + '/command/command'
@@ -1,50 +0,0 @@
1
- module Gator
2
- module Command
3
-
4
- class << self
5
-
6
- def add(command)
7
- unless will_collide? command
8
- commands.push(command)
9
- return true
10
- end
11
- false
12
- end
13
-
14
- def remove(command)
15
- commands.delete(command) != nil?
16
- end
17
-
18
- def has?(name_or_alias)
19
- commands.any? { |command| command.command_name == name_or_alias || command.command_alias == name_or_alias }
20
- end
21
-
22
- def get(name_or_alias)
23
- commands.detect { |command| command.command_name == name_or_alias || command.command_alias == name_or_alias }
24
- end
25
-
26
- protected
27
-
28
- def commands
29
- @commands ||= []
30
- end
31
-
32
- def will_collide?(command)
33
- has?(command.command_name) || has?(command.command_alias)
34
- end
35
-
36
- end
37
-
38
- class Base < Thor::Group
39
-
40
- class << self
41
- attr_reader :command_name, :command_alias
42
-
43
- def specify( command_name, command_alias )
44
- @command_name, @command_alias = command_name, command_alias
45
- end
46
- end
47
-
48
- end
49
- end
50
- end
@@ -1 +0,0 @@
1
- require File.dirname(__FILE__) + '/configuration/configuration'
@@ -1,60 +0,0 @@
1
- module Gator
2
- module Configuration
3
-
4
- class Config
5
-
6
- attr_reader :options
7
-
8
- def initialize
9
- @options = {}
10
- @loaded = false
11
- self
12
- end
13
-
14
- def loaded
15
- @loaded
16
- end
17
-
18
- def load_config
19
- config_file = File.join(File.expand_path("~"), ".gator", "configuration.rb")
20
- ConfigurationGenerator.new.create_configuration config_file unless File.exists? config_file
21
- @loaded = true
22
- load config_file
23
- end
24
-
25
- end
26
-
27
- class << self
28
- attr_accessor :config
29
- end
30
- self.config = Config.new
31
-
32
- def configuration
33
- config = Gator::Configuration.config
34
- config.load_config unless config.loaded
35
- config
36
- end
37
-
38
- #TODO: Refactor into gator default plugin
39
- class ConfigurationGenerator < Thor
40
- include Thor::Actions
41
-
42
- no_tasks {
43
-
44
- def create_configuration(config_file)
45
- Gator.shell.say "Configuration file not found at: #{config_file}!", :red
46
- Gator.shell.say ""
47
- Gator.shell.say "Let's create one!", :green
48
- create_file config_file do
49
- render = ""
50
- render += "#This file has been generated by gator and wants to be edited by you!\n"
51
- render += "configuration.options[:author] = \"#{Gator.shell.ask "\nAuthor:"}\"\n"
52
- render
53
- end
54
- end
55
-
56
- }
57
-
58
- end
59
- end
60
- end
@@ -1,2 +0,0 @@
1
- require File.dirname(__FILE__) + '/project/layout'
2
- require File.dirname(__FILE__) + '/project/project'
@@ -1,101 +0,0 @@
1
- module Gator
2
- module Project
3
-
4
- class Base
5
-
6
- attr_reader :name
7
-
8
- def initialize(name)
9
- @name = name
10
- @layout = Layout.default
11
- end
12
-
13
- def path(*args)
14
- File.join(Gator::Project.project_dir, layout.expand(*args))
15
- end
16
-
17
- def layout
18
- @layout
19
- end
20
-
21
- def layout=(layout)
22
- @layout= layout
23
- end
24
-
25
- end
26
-
27
- class << self
28
-
29
- def project=(project)
30
- @project = project
31
- end
32
-
33
- def project
34
- @project
35
- end
36
-
37
- def is_project_directory(path= Dir.getwd)
38
- File.exists? File.join(path, relative_project_file)
39
- end
40
-
41
- def is_project_subdirectory(path= Dir.getwd)
42
- !get_project_directory_of_subdirectory(path).nil?
43
- end
44
-
45
- def get_project_directory_of_subdirectory(path= Dir.getwd)
46
- original_dir = Dir.getwd
47
- here = path
48
- Dir.chdir(here)
49
- while !(is_project_directory(Dir.getwd))
50
- Dir.chdir("..")
51
- return nil if Dir.pwd == here
52
- here = Dir.pwd
53
- end
54
- return here
55
- ensure
56
- Dir.chdir(original_dir)
57
- end
58
-
59
- def project_file(path= Dir.getwd)
60
- if is_project_directory(path)
61
- File.join(path, relative_project_file)
62
- elsif is_project_subdirectory(path)
63
- File.join(get_project_directory_of_subdirectory, relative_project_file)
64
- else
65
- nil
66
- end
67
- end
68
-
69
- def project_dir(path= Dir.getwd)
70
- File.dirname( File.dirname( project_file(path) ))
71
- end
72
-
73
- private
74
-
75
- def relative_project_file
76
- File.join(".gator", "project.rb")
77
- end
78
- end
79
-
80
- def project(project=nil)
81
- Gator::Project.project= project unless project.nil?
82
- load_project unless Gator::Project.project
83
- if Gator::Project.project.nil?
84
- Gator.shell.say "Project is not defined!\nMake sure to define a project in #{Gator::Project.project_file}",:red
85
- raise "ProjectNotDefined"
86
- end
87
- Gator::Project.project
88
- end
89
-
90
- def load_project
91
- pfile = Gator::Project.project_file
92
- if pfile.nil?
93
- Gator.shell.say "This is not a project directory!\nPlease create a gator project first.", :red
94
- raise "NotInsideProjectDirectory"
95
- else
96
- load pfile
97
- end
98
- end
99
-
100
- end
101
- end
@@ -1,3 +0,0 @@
1
- require File.dirname(__FILE__) + '/default/commands/new_command'
2
- require File.dirname(__FILE__) + '/default/commands/generator_command'
3
- require File.dirname(__FILE__) + '/default/generators/as3_class_generator'
@@ -1,74 +0,0 @@
1
- module Gator
2
- module Generators
3
- class << self
4
-
5
- def add(generator)
6
- unless will_collide? generator
7
- generators.push(generator)
8
- return true
9
- end
10
- false
11
- end
12
-
13
- def remove(generator)
14
- generators.delete(generator) != nil?
15
- end
16
-
17
- def has?(name_or_alias)
18
- generators.any? { |generator| generator.generator_name == name_or_alias || generator.generator_alias == name_or_alias }
19
- end
20
-
21
- def get(name_or_alias)
22
- generators.detect { |generator| generator.generator_name == name_or_alias || generator.generator_alias == name_or_alias }
23
- end
24
-
25
- protected
26
-
27
- def generators
28
- @generators ||= []
29
- end
30
-
31
- def will_collide?(generator)
32
- has?(generator.generator_name) || has?(generator.generator_alias)
33
- end
34
-
35
- end
36
-
37
- class Base < Thor::Group
38
-
39
- class << self
40
- attr_reader :generator_name, :generator_alias
41
-
42
- def specify( generator_name, generator_alias )
43
- @generator_name, @generator_alias = generator_name, generator_alias
44
- end
45
- end
46
-
47
- end
48
-
49
- class GeneratorCommand < Gator::Command::Base
50
- include Thor::Actions
51
-
52
- specify "generate", "g"
53
-
54
- def self.source_root
55
- File.dirname(__FILE__)
56
- end
57
-
58
- argument :name, :type => :string, :desc => "The name of the generator."
59
- # argument :args, :type => :array
60
- desc "Finds and executes a generator."
61
-
62
- def find_and_execute
63
- raise "Generator: \"#{name}\" could not be found." unless Gator::Generators.has?(name)
64
- ARGV.shift
65
- ARGV << "--help" if ARGV.empty?
66
-
67
- Gator::Generators.get(name).start
68
- end
69
-
70
- end
71
-
72
- Gator::Command.add GeneratorCommand
73
- end
74
- end
@@ -1,31 +0,0 @@
1
- require "thor/actions"
2
-
3
- module Gator
4
- module Default
5
- module Commands
6
-
7
- class NewCommand < Gator::Command::Base
8
- include Thor::Actions
9
-
10
- specify "new", "n"
11
-
12
- def self.source_root
13
- File.dirname(__FILE__)
14
- end
15
-
16
- argument :name, :type => :string, :desc => "The name of the project."
17
- desc "Creates an empty gator project."
18
-
19
- def create
20
- directory "new_template", name
21
- # we need to call directories starting with a . seperately
22
- directory "new_template/.gator", "#{name}/.gator"
23
- end
24
-
25
- end
26
-
27
- Gator::Command.add NewCommand
28
-
29
- end
30
- end
31
- end
@@ -1 +0,0 @@
1
- project Gator::Project::Base.new "<%= name %>"
@@ -1,9 +0,0 @@
1
- package <%= package_name %>
2
- {
3
- public class <%= class_name %>
4
- {
5
- public function <%= class_name %>()
6
- {
7
- }
8
- }
9
- }
@@ -1,27 +0,0 @@
1
- require "thor/actions"
2
- module Gator
3
- module AS3
4
- class AS3ClassGenerator < Gator::Generators::Base
5
- include Gator::ProjectCommand, Thor::Actions
6
-
7
- specify "as3class", "as3c"
8
-
9
- argument :package_name, :type => :string, :desc => "The name of the package."
10
- argument :class_name, :type => :string, :desc => "The name of the class."
11
- desc "Creates an ActionScript3 Class"
12
-
13
- def self.source_root
14
- File.dirname(__FILE__)
15
- end
16
-
17
- def create_class
18
- src = project.path(:source, :main, :as3)
19
- template "AS3ClassTemplate.as.tt", File.join(src, "#{class_name}.as" )
20
- end
21
-
22
- end
23
-
24
- Gator::Generators.add AS3ClassGenerator
25
- end
26
- end
27
-
@@ -1,11 +0,0 @@
1
- require "thor"
2
- require "thor/group"
3
- require File.dirname(__FILE__) + '/core'
4
- require File.dirname(__FILE__) + '/default'
5
-
6
- # This makes gator module functions locally available in config & project files
7
- module Gator
8
- include Gator::Project
9
- include Gator::Configuration
10
- end
11
- class << self; include Gator end
@@ -1,65 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- class TestCommandA < Gator::Command::Base
4
- specify "command_a", "a"
5
- end
6
-
7
- class TestCommandB < Gator::Command::Base
8
- specify "command_b", "b"
9
- end
10
-
11
- describe Gator::Command::Base do
12
-
13
- it "has the correct attributes" do
14
- test_command_a = TestCommandA
15
- test_command_a.command_name.should == "command_a"
16
- test_command_a.command_alias.should == "a"
17
- end
18
-
19
- end
20
-
21
- describe Gator::Command do
22
-
23
- before(:all) do
24
- @test_command_a = TestCommandA
25
- @test_command_b = TestCommandB
26
- end
27
-
28
- after(:all) do
29
- @test_command_a = nil
30
- @test_command_b = nil
31
- end
32
-
33
- it "should add a command" do
34
- Gator::Command.add(@test_command_a).should == true
35
- end
36
-
37
- it "should not add the same command again" do
38
- Gator::Command.add(@test_command_a).should == false
39
- end
40
-
41
- it "should add another command though" do
42
- Gator::Command.add(@test_command_b).should == true
43
- end
44
-
45
- it "should have a command with name" do
46
- Gator::Command.has?(@test_command_a.command_name).should == true
47
- end
48
-
49
- it "should have a command with alias" do
50
- Gator::Command.has?(@test_command_a.command_alias).should == true
51
- end
52
-
53
- it "should return TestCommandA by name" do
54
- Gator::Command.get(@test_command_a.command_name).should == @test_command_a
55
- end
56
-
57
- it "should return TestCommandA by alias" do
58
- Gator::Command.get(@test_command_a.command_alias).should == @test_command_a
59
- end
60
-
61
- it "should remove test_command_a" do
62
- Gator::Command.remove(@test_command_a).should == true
63
- end
64
-
65
- end
@@ -1,49 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- require "fileutils"
4
-
5
- describe Gator::Project::Base do
6
-
7
- it "has the correct attributes" do
8
- test_project = Gator::Project::Base.new "test_project"
9
- test_project.name.should == "test_project"
10
- test_project.layout.should == Gator::Project::Layout.default
11
- end
12
-
13
- end
14
-
15
- describe Gator::Project do
16
-
17
- before(:all) do
18
- @project_dir = File.expand_path("project_spec_directory_test")
19
- FileUtils.mkdir_p File.join(@project_dir,".gator")
20
- FileUtils.mkdir_p File.join(@project_dir,"sub")
21
- File.open(File.join(@project_dir,".gator","project.rb"), 'w') {|f| f.write("-empty-") }
22
- end
23
-
24
- after(:all) do
25
- FileUtils.rm_r @project_dir
26
- @project_dir = nil
27
- end
28
-
29
- it "should detect being inside a project directory" do
30
- Gator::Project.is_project_directory(@project_dir).should == true
31
- end
32
-
33
- it "should detect the correct project directory from within a project subdirectory" do
34
- Gator::Project.get_project_directory_of_subdirectory(File.join(@project_dir,"sub")).should == @project_dir
35
- end
36
-
37
- it "should detect being inside a project subdirectory" do
38
- Gator::Project.is_project_subdirectory(File.join(@project_dir,"sub")).should == true
39
- end
40
-
41
- it "should not detect being inside a project directory" do
42
- Gator::Project.is_project_directory(File.join(@project_dir,"sub")).should == false
43
- end
44
-
45
- it "should not detect being inside a project subdirectory" do
46
- Gator::Project.is_project_directory(File.expand_path("~")).should == false
47
- end
48
-
49
- end