simonmenke-gm 0.1.7 → 1.0.0

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 (63) hide show
  1. data/rubygems_plugin.rb +81 -0
  2. metadata +11 -145
  3. data/LICENSE.txt +0 -22
  4. data/README.textile +0 -13
  5. data/bin/gem-make +0 -6
  6. data/bin/gm +0 -6
  7. data/gm_behaviors/author_behavior.rb +0 -29
  8. data/gm_behaviors/bin_files_behavior.rb +0 -10
  9. data/gm_behaviors/dependencies_behavior.rb +0 -22
  10. data/gm_behaviors/executables_behavior.rb +0 -13
  11. data/gm_behaviors/general_behavior.rb +0 -41
  12. data/gm_behaviors/github_behavior.rb +0 -14
  13. data/gm_behaviors/gm_files_behavior.rb +0 -13
  14. data/gm_behaviors/lib_files_behavior.rb +0 -10
  15. data/gm_behaviors/rails_behavior.rb +0 -11
  16. data/gm_behaviors/rdoc_behavior.rb +0 -34
  17. data/gm_behaviors/rspec_behavior.rb +0 -10
  18. data/gm_behaviors/rubigen_behavior.rb +0 -13
  19. data/gm_behaviors/rubyforge_behavior.rb +0 -12
  20. data/gm_behaviors/test_behavior.rb +0 -10
  21. data/gm_behaviors/text_files_behavior.rb +0 -10
  22. data/gm_commands/build_command.rb +0 -25
  23. data/gm_commands/build_gemspec_command.rb +0 -34
  24. data/gm_commands/clean_command.rb +0 -14
  25. data/gm_commands/config_command.rb +0 -42
  26. data/gm_commands/create_command.rb +0 -10
  27. data/gm_commands/gen_command.rb +0 -31
  28. data/gm_commands/help_command.rb +0 -246
  29. data/gm_commands/install_command.rb +0 -17
  30. data/gm_commands/publish_command.rb +0 -34
  31. data/gm_commands/spec_command.rb +0 -14
  32. data/gm_generators/bin/bin_generator.rb +0 -22
  33. data/gm_generators/bin/templates/bin/bin.rb +0 -3
  34. data/gm_generators/gem/gem_generator.rb +0 -38
  35. data/gm_generators/gem/templates/Gmfile +0 -4
  36. data/gm_generators/gem/templates/README.textile +0 -0
  37. data/gm_generators/gem/templates/lib/module.rb +0 -4
  38. data/gm_generators/mit_license/mit_license_generator.rb +0 -17
  39. data/gm_generators/mit_license/templates/LICENSE.txt +0 -22
  40. data/gm_generators/rails/rails_generator.rb +0 -18
  41. data/gm_generators/rails/templates/rails/init.rb +0 -1
  42. data/gm_generators/test/templates/test_case.rb.erb +0 -5
  43. data/gm_generators/test/templates/test_helper.rb.erb +0 -7
  44. data/gm_generators/test/test_generator.rb +0 -26
  45. data/gm_networks/github_network.rb +0 -72
  46. data/gm_networks/rubyforge_network.rb +0 -90
  47. data/lib/autotest/discover.rb +0 -3
  48. data/lib/autotest/gm.rb +0 -37
  49. data/lib/extentions/gem.rb +0 -27
  50. data/lib/gm.rb +0 -30
  51. data/lib/gm/app.rb +0 -111
  52. data/lib/gm/behavior.rb +0 -25
  53. data/lib/gm/command.rb +0 -66
  54. data/lib/gm/configuration.rb +0 -20
  55. data/lib/gm/documentation.rb +0 -38
  56. data/lib/gm/helpers.rb +0 -24
  57. data/lib/gm/loader.rb +0 -84
  58. data/lib/gm/network.rb +0 -29
  59. data/lib/gm/system.rb +0 -16
  60. data/test/command_test.rb +0 -106
  61. data/test/gem_extentions_test.rb +0 -31
  62. data/test/system_test.rb +0 -17
  63. data/test/test_helper.rb +0 -12
@@ -0,0 +1,81 @@
1
+ require 'rubygems/command_manager'
2
+
3
+ class Gem::Commands::SpecifyCommand < Gem::Command
4
+
5
+ def initialize
6
+ super 'specify', 'Generate a spec file'
7
+ end
8
+
9
+ def execute
10
+ code = IO.read('Gmfile')
11
+ eval(code, binding, 'Gmfile')
12
+ complete_configuration
13
+ if spec.validate
14
+ File.open("#{spec.name}.gemspec", 'w+') { |f| f.write spec.to_ruby }
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def specify(&block)
21
+ @spec ||= begin
22
+ spec = Gem::Specification.new
23
+ block.call(Proxy.new(spec))
24
+ spec
25
+ end
26
+ end
27
+
28
+ def spec
29
+ @spec
30
+ end
31
+
32
+ def complete_configuration
33
+ find_files
34
+ end
35
+
36
+ def find_files
37
+ if spec.files.empty?
38
+ spec.files = Dir.glob('{test,lib,spec,rails,app,vendor,db}/**/*.{rb,erb,rake}')
39
+ spec.files += Dir.glob('rubygems_plugin.rb')
40
+ end
41
+ if spec.test_files.empty?
42
+ spec.test_files = Dir.glob('{test,spec}/**/*.{rb}')
43
+ end
44
+ if spec.summary and !spec.description
45
+ spec.description = spec.summary
46
+ end
47
+ if spec.description and !spec.summary
48
+ spec.summary = spec.description
49
+ end
50
+ end
51
+
52
+ class Proxy
53
+ def initialize(target)
54
+ @target = target
55
+ end
56
+ def method_missing(m,*args,&block)
57
+ m = m.to_s
58
+ if args.size == 1 && m[-1,1] != '=' && @target.respond_to?("#{m}=")
59
+ m = "#{m}="
60
+ end
61
+ @target.send(m,*args,&block)
62
+ end
63
+ end
64
+ end
65
+
66
+ class Gem::Commands::MakeCommand < Gem::Command
67
+
68
+ def initialize
69
+ super 'make', 'Generate a spec file and build the gem'
70
+ end
71
+
72
+
73
+ def execute
74
+ Gem::CommandManager.instance.run('specify')
75
+ Gem::CommandManager.instance.run("build #{Dir.glob("*.gemspec")}")
76
+ end
77
+
78
+ end
79
+
80
+ Gem::CommandManager.instance.register_command :specify
81
+ Gem::CommandManager.instance.register_command :make
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simonmenke-gm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke
@@ -9,147 +9,20 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-11 00:00:00 -08:00
12
+ date: 2009-05-13 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: simonmenke-ec
17
- version_requirement:
18
- version_requirements: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.0.4
23
- version:
24
- - !ruby/object:Gem::Dependency
25
- name: clip
26
- version_requirement:
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- version: 1.0.0
32
- version:
33
- - !ruby/object:Gem::Dependency
34
- name: rubigen
35
- version_requirement:
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 1.5.1
41
- version:
42
- - !ruby/object:Gem::Dependency
43
- name: simonmenke-ec
44
- version_requirement:
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 0.0.4
50
- version:
51
- - !ruby/object:Gem::Dependency
52
- name: clip
53
- version_requirement:
54
- version_requirements: !ruby/object:Gem::Requirement
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: 1.0.0
59
- version:
60
- - !ruby/object:Gem::Dependency
61
- name: rubigen
62
- version_requirement:
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 1.5.1
68
- version:
69
- description:
14
+ dependencies: []
15
+
16
+ description: ""
70
17
  email: simon.menke@gmail.com
71
- executables:
72
- - gem-make
73
- - gm
18
+ executables: []
19
+
74
20
  extensions: []
75
21
 
76
22
  extra_rdoc_files: []
77
23
 
78
24
  files:
79
- - test/command_test.rb
80
- - test/gem_extentions_test.rb
81
- - test/system_test.rb
82
- - test/test_helper.rb
83
- - bin/gem-make
84
- - bin/gm
85
- - lib/autotest/discover.rb
86
- - lib/autotest/gm.rb
87
- - lib/extentions/gem.rb
88
- - lib/gm/app.rb
89
- - lib/gm/behavior.rb
90
- - lib/gm/command.rb
91
- - lib/gm/configuration.rb
92
- - lib/gm/documentation.rb
93
- - lib/gm/helpers.rb
94
- - lib/gm/loader.rb
95
- - lib/gm/network.rb
96
- - lib/gm/system.rb
97
- - lib/gm.rb
98
- - LICENSE.txt
99
- - README.textile
100
- - gm_generators/bin/bin_generator.rb
101
- - gm_generators/bin/templates/bin/bin.rb
102
- - gm_generators/gem/gem_generator.rb
103
- - gm_generators/gem/templates/Gmfile
104
- - gm_generators/gem/templates/lib/module.rb
105
- - gm_generators/gem/templates/README.textile
106
- - gm_generators/mit_license/mit_license_generator.rb
107
- - gm_generators/mit_license/templates/LICENSE.txt
108
- - gm_generators/rails/rails_generator.rb
109
- - gm_generators/rails/templates/rails/init.rb
110
- - gm_generators/test/templates/test_case.rb.erb
111
- - gm_generators/test/templates/test_helper.rb.erb
112
- - gm_generators/test/test_generator.rb
113
- - gm_commands/build_command.rb
114
- - gm_commands/build_gemspec_command.rb
115
- - gm_commands/clean_command.rb
116
- - gm_commands/config_command.rb
117
- - gm_commands/create_command.rb
118
- - gm_commands/gen_command.rb
119
- - gm_commands/help_command.rb
120
- - gm_commands/install_command.rb
121
- - gm_commands/publish_command.rb
122
- - gm_commands/spec_command.rb
123
- - gm_behaviors/author_behavior.rb
124
- - gm_behaviors/bin_files_behavior.rb
125
- - gm_behaviors/dependencies_behavior.rb
126
- - gm_behaviors/executables_behavior.rb
127
- - gm_behaviors/general_behavior.rb
128
- - gm_behaviors/github_behavior.rb
129
- - gm_behaviors/gm_files_behavior.rb
130
- - gm_behaviors/lib_files_behavior.rb
131
- - gm_behaviors/rails_behavior.rb
132
- - gm_behaviors/rdoc_behavior.rb
133
- - gm_behaviors/rspec_behavior.rb
134
- - gm_behaviors/rubigen_behavior.rb
135
- - gm_behaviors/rubyforge_behavior.rb
136
- - gm_behaviors/test_behavior.rb
137
- - gm_behaviors/text_files_behavior.rb
138
- - gm_networks/github_network.rb
139
- - gm_networks/rubyforge_network.rb
140
- - gm_generators/bin
141
- - gm_generators/bin/templates
142
- - gm_generators/bin/templates/bin
143
- - gm_generators/gem
144
- - gm_generators/gem/templates
145
- - gm_generators/gem/templates/lib
146
- - gm_generators/mit_license
147
- - gm_generators/mit_license/templates
148
- - gm_generators/rails
149
- - gm_generators/rails/templates
150
- - gm_generators/rails/templates/rails
151
- - gm_generators/test
152
- - gm_generators/test/templates
25
+ - rubygems_plugin.rb
153
26
  has_rdoc: false
154
27
  homepage: http://github.com/simonmenke/gm
155
28
  post_install_message:
@@ -174,14 +47,7 @@ requirements: []
174
47
  rubyforge_project: gem-make
175
48
  rubygems_version: 1.2.0
176
49
  signing_key:
177
- specification_version: 2
50
+ specification_version: 3
178
51
  summary: Building gems the clean way.
179
- test_files:
180
- - test/command_test.rb
181
- - test/gem_extentions_test.rb
182
- - test/system_test.rb
183
- - test/test_helper.rb
184
- - test/command_test.rb
185
- - test/gem_extentions_test.rb
186
- - test/system_test.rb
187
- - test/test_helper.rb
52
+ test_files: []
53
+
data/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2009 Simon Menke
2
-
3
- Permission is hereby granted, free of charge, to any person
4
- obtaining a copy of this software and associated documentation
5
- files (the "Software"), to deal in the Software without
6
- restriction, including without limitation the rights to use,
7
- copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the
9
- Software is furnished to do so, subject to the following
10
- conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
- OTHER DEALINGS IN THE SOFTWARE.
data/README.textile DELETED
@@ -1,13 +0,0 @@
1
- h1. GM (GemMake)
2
-
3
- GM is a gem and gemspec builder for use with github.
4
-
5
- For the documentation go to "http://simonmenke.github.com/gm":http://simonmenke.github.com/gm
6
-
7
- For bug reports and feature requests go to "http://menke.lighthouseapp.com/projects/23688-gm":http://menke.lighthouseapp.com/projects/23688-gm
8
-
9
- h2. Todo
10
-
11
- * Document extendability
12
- * Document architecture
13
- * Implement CDN interfaces (rubyforge, github, your site, ...)
data/bin/gem-make DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__)+'/../lib/gm'
4
-
5
- APP_ROOT = File.expand_path('.')
6
- GM::App.instance.run
data/bin/gm DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__)+'/../lib/gm'
4
-
5
- APP_ROOT = File.expand_path('.')
6
- GM::App.instance.run
@@ -1,29 +0,0 @@
1
-
2
- class AuthorBehavior < GM::Behavior
3
-
4
- specify_conf do |root|
5
-
6
- root.map :author do |author|
7
- author.should_be_present
8
-
9
- author.conf(:name) do |name|
10
- name.should_be_present
11
- name.should_be_a String
12
- name.should_not_be_empty
13
- end
14
-
15
- author.conf(:email) do |email|
16
- email.should_be_present
17
- email.should_be_a String
18
- email.should_not_be_empty
19
- end
20
- end
21
-
22
- end
23
-
24
- def run
25
- spec.author = config[:author][:name]
26
- spec.email = config[:author][:email]
27
- end
28
-
29
- end
@@ -1,10 +0,0 @@
1
-
2
- class BinFilesBehavior < GM::Behavior
3
-
4
- desc "Collect bin files"
5
-
6
- def run
7
- spec.files += Dir.glob('bin/*')
8
- end
9
-
10
- end
@@ -1,22 +0,0 @@
1
-
2
- class DependenciesBehavior < GM::Behavior
3
-
4
- specify_conf do |root|
5
-
6
- # root.list :dependencies do |dependency|
7
- # dependency.conf do |c|
8
- # c.should_be_a String
9
- # c.should_not_be_empty
10
- # end
11
- # end
12
-
13
- end
14
-
15
- def run
16
- (config[:dependencies] || []).each do |dependency|
17
- gem, requirement = dependency.strip.split(/\s+/, 2)
18
- spec.add_dependency gem.strip, requirement.strip
19
- end
20
- end
21
-
22
- end
@@ -1,13 +0,0 @@
1
-
2
- class ExecutablesBehavior < GM::Behavior
3
-
4
- desc "Discover exceutables in bin/"
5
-
6
- def run
7
- paths = Dir.glob('bin/*')
8
- spec.executables = paths.collect do |path|
9
- File.basename(path)
10
- end
11
- end
12
-
13
- end
@@ -1,41 +0,0 @@
1
-
2
- class GeneralBehavior < GM::Behavior
3
-
4
- specify_conf do |root|
5
-
6
- root.map :general do |general|
7
- general.should_be_present
8
-
9
- general.conf(:name) do |s|
10
- s.should_be_present
11
- s.should_be_a String
12
- s.should_not_be_empty
13
- end
14
-
15
- general.conf(:version) do |s|
16
- s.should_be_present
17
- s.should_be_a String
18
- s.should_not_be_empty
19
- end
20
-
21
- general.conf(:summary) do |s|
22
- s.should_be_a String
23
- s.should_not_be_empty
24
- end
25
-
26
- general.conf(:homepage) do |s|
27
- s.should_be_a String
28
- s.should_not_be_empty
29
- end
30
- end
31
-
32
- end
33
-
34
- def run
35
- spec.name ||= config[:general][:name]
36
- spec.version = config[:general][:version]
37
- spec.summary = config[:general][:summary]
38
- spec.homepage = config[:general][:homepage]
39
- end
40
-
41
- end
@@ -1,14 +0,0 @@
1
-
2
- class GithubBehavior < GM::Behavior
3
-
4
- def run
5
- emulate = !command.options.no_emulation?
6
- emulate &= (config[:github] != nil) && (config[:github][:emulate] == true)
7
-
8
- if emulate
9
- name = config[:github][:project] || config[:general][:name]
10
- spec.name = "#{config[:github][:username]}-#{name}"
11
- end
12
- end
13
-
14
- end