ore-core 0.1.4 → 0.1.5

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.
@@ -1,8 +1,15 @@
1
+ ### 0.1.5 / 2011-04-08
2
+
3
+ * Added {Ore::RubyGems}.
4
+ * Do not set `default_executable` in {Ore::RubyGems#to_gemspec} on RubyGems
5
+ >= 1.7.0.
6
+ * Specs now pass on JRuby 1.6.0 under 1.9 mode.
7
+
1
8
  ### 0.1.4 / 2011-02-25
2
9
 
3
10
  * Added `core` to the list of namespaces to ignore.
4
11
  * Bypass the filtering of `Gem::Specification#has_rdoc=` added by RubyGems
5
- 1.5.x in {Ore::Project#to_gemspec}.
12
+ 1.5.x in `Ore::Project#to_gemspec`.
6
13
 
7
14
  ### 0.1.3 / 2011-02-12
8
15
 
@@ -64,5 +71,5 @@
64
71
  * Added {Ore::Settings}.
65
72
  * Added {Ore::Specification}.
66
73
  * Added {Ore::Project#post_install_message}.
67
- * Added {Ore::Settings#set_post_install_message!}.
74
+ * Added `Ore::Settings#set_post_install_message!`.
68
75
 
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  * [Source](http://github.com/ruby-ore/ore-core)
4
4
  * [Issues](http://github.com/ruby-ore/ore-core/issues)
5
- * [Documentation](http://rubydoc.info/gems/ore-core/file/README.md)
6
- * [Email](postmodern.mod3 at gmail.com)
5
+ * [Documentation](http://rubydoc.info/gems/ore-core/frames)
6
+ * [Email](mailto:postmodern.mod3 at gmail.com)
7
7
  * IRC: irc.freenode.net #ruby-ore
8
8
 
9
9
  ## Description
@@ -50,7 +50,7 @@ project information in a single YAML file.
50
50
  The `gemspec.yml` file used to build Ore:
51
51
 
52
52
  name: ore-core
53
- version: 0.1.2
53
+ version: 0.1.5
54
54
  summary: Mine raw RubyGems from YAML.
55
55
  description:
56
56
  Ore is a simple RubyGem building solution. Ore handles the
@@ -65,8 +65,8 @@ The `gemspec.yml` file used to build Ore:
65
65
  has_yard: true
66
66
 
67
67
  development_dependencies:
68
- yard: ~> 0.6.1
69
- rspec: ~> 2.4.0
68
+ yard: ~> 0.6
69
+ rspec: ~> 2.4
70
70
 
71
71
  For a complete refrence to the `gemspec.yml` file, please see
72
72
  [GemspecYML Reference](http://rubydoc.info/gems/ore-core/file/GemspecYML.html).
@@ -1,5 +1,5 @@
1
1
  name: ore-core
2
- version: 0.1.4
2
+ version: 0.1.5
3
3
  summary: Mine raw RubyGems from YAML
4
4
  description:
5
5
  Ore is a simple RubyGem building solution. Ore handles the
@@ -1,4 +1,4 @@
1
- require 'rubygems/dependency'
1
+ require 'rubygems'
2
2
 
3
3
  module Ore
4
4
  #
@@ -5,14 +5,13 @@ require 'ore/paths'
5
5
  require 'ore/checks'
6
6
  require 'ore/inferences'
7
7
  require 'ore/settings'
8
+ require 'ore/rubygems'
8
9
  require 'ore/document_file'
9
10
 
10
11
  require 'pathname'
11
12
  require 'yaml'
12
13
  require 'find'
13
14
  require 'fileutils'
14
- require 'rubygems/specification'
15
- require 'rubygems/builder'
16
15
 
17
16
  module Ore
18
17
  #
@@ -26,6 +25,7 @@ module Ore
26
25
  include Checks
27
26
  include Inferences
28
27
  include Settings
28
+ include RubyGems
29
29
 
30
30
  # The project metadata file
31
31
  @@metadata_file = 'gemspec.yml'
@@ -412,118 +412,24 @@ module Ore
412
412
 
413
413
  alias has_yard? has_yard
414
414
 
415
- #
416
- # Populates a Gem Specification using the metadata of the project.
417
- #
418
- # @yield [gemspec]
419
- # The given block will be passed the populated Gem Specification
420
- # object.
421
- #
422
- # @yieldparam [Gem::Specification] gemspec
423
- # The newly created Gem Specification.
424
- #
425
- # @return [Gem::Specification]
426
- # The Gem Specification.
427
- #
428
- # @see http://rubygems.rubyforge.org/rdoc/Gem/Specification.html
429
- #
430
- def to_gemspec
431
- Gem::Specification.new do |gemspec|
432
- gemspec.name = @name.to_s
433
- gemspec.version = @version.to_s
434
- gemspec.summary = @summary.to_s
435
- gemspec.description = @description.to_s
436
- gemspec.licenses = @licenses
437
- gemspec.authors = @authors
438
- gemspec.homepage = @homepage
439
- gemspec.email = @emails
440
- gemspec.date = @date
441
-
442
- @require_paths.each do |path|
443
- unless gemspec.require_paths.include?(path)
444
- gemspec.require_paths << path
445
- end
446
- end
447
-
448
- gemspec.executables = @executables
449
- gemspec.default_executable = @default_executable
450
-
451
- # forcibly set the @has_rdoc ivar, as RubyGems 1.5.x disables the
452
- # #has_rdoc= writer method.
453
- if gemspec.instance_variable_defined?('@has_rdoc')
454
- case @documentation
455
- when :yard
456
- gemspec.instance_variable_set('@has_rdoc','yard')
457
- when :rdoc
458
- gemspec.instance_variable_set('@has_rdoc',true)
459
- when nil
460
- gemspec.instance_variable_set('@has_rdoc',false)
461
- end
462
- end
463
-
464
- gemspec.extra_rdoc_files = @extra_doc_files
465
- gemspec.files = @files
466
- gemspec.test_files = @test_files
467
- gemspec.post_install_message = @post_install_message
468
-
469
- gemspec.requirements = @requirements
470
-
471
- if gemspec.respond_to?(:required_ruby_version=)
472
- gemspec.required_ruby_version = @required_ruby_version
473
- end
474
-
475
- if gemspec.respond_to?(:required_rubygems_version=)
476
- gemspec.required_rubygems_version = @required_rubygems_version
477
- end
478
-
479
- @dependencies.each do |dep|
480
- gemspec.add_dependency(dep.name,*dep.versions)
481
- end
482
-
483
- if gemspec.respond_to?(:add_runtime_dependency)
484
- @runtime_dependencies.each do |dep|
485
- gemspec.add_runtime_dependency(dep.name,*dep.versions)
486
- end
487
- else
488
- @runtime_dependencies.each do |dep|
489
- gemspec.add_dependency(dep.name,*dep.versions)
490
- end
491
- end
492
-
493
- if gemspec.respond_to?(:add_development_dependency)
494
- @development_dependencies.each do |dep|
495
- gemspec.add_development_dependency(dep.name,*dep.versions)
496
- end
497
- else
498
- @development_dependencies.each do |dep|
499
- gemspec.add_dependency(dep.name,*dep.versions)
500
- end
501
- end
502
-
503
- # legacy information
504
- if gemspec.respond_to?(:rubyforge_project=)
505
- gemspec.rubyforge_project = gemspec.name
506
- end
507
-
508
- yield gemspec if block_given?
509
- end
510
- end
511
-
512
415
  #
513
416
  # Builds a gem for the project.
514
417
  #
418
+ # @param [Symbol] package
419
+ # The type of package to build.
420
+ #
515
421
  # @return [Pathname]
516
422
  # The path to the built gem file within the `pkg/` directory.
517
423
  #
518
- def build!
519
- pkg_dir = @root.join(@@pkg_dir)
520
- FileUtils.mkdir_p(pkg_dir)
521
-
522
- gem_file = Gem::Builder.new(self.to_gemspec).build
523
- pkg_path = @root.join(pkg_file)
524
-
525
- FileUtils.mv(gem_file,pkg_path)
526
- return pkg_path
424
+ # @raise [ArgumentError]
425
+ # The given package type is not supported.
426
+ #
427
+ def build!(package=:gem)
428
+ if package == :gem
429
+ to_gem
430
+ else
431
+ raise(ArgumentError,"unsupported package type #{package}")
432
+ end
527
433
  end
528
434
 
529
435
  protected
@@ -0,0 +1,132 @@
1
+ require 'ore/paths'
2
+
3
+ require 'rubygems'
4
+
5
+ module Ore
6
+ module RubyGems
7
+ include Paths
8
+
9
+ #
10
+ # Populates a Gem Specification using the metadata of the project.
11
+ #
12
+ # @yield [gemspec]
13
+ # The given block will be passed the populated Gem Specification
14
+ # object.
15
+ #
16
+ # @yieldparam [Gem::Specification] gemspec
17
+ # The newly created Gem Specification.
18
+ #
19
+ # @return [Gem::Specification]
20
+ # The Gem Specification.
21
+ #
22
+ # @see http://rubygems.rubyforge.org/rdoc/Gem/Specification.html
23
+ #
24
+ # @since 0.1.5
25
+ #
26
+ def to_gemspec
27
+ Gem::Specification.new do |gemspec|
28
+ gemspec.name = @name.to_s
29
+ gemspec.version = @version.to_s
30
+ gemspec.summary = @summary.to_s
31
+ gemspec.description = @description.to_s
32
+ gemspec.licenses = @licenses
33
+ gemspec.authors = @authors
34
+ gemspec.homepage = @homepage
35
+ gemspec.email = @emails
36
+ gemspec.date = @date
37
+
38
+ @require_paths.each do |path|
39
+ unless gemspec.require_paths.include?(path)
40
+ gemspec.require_paths << path
41
+ end
42
+ end
43
+
44
+ gemspec.executables = @executables
45
+
46
+ # default_executable is deprecated in RubyGems 1.7.0 and will be
47
+ # removed after 2011-10-01.
48
+ if Gem::VERSION < '1.7.'
49
+ gemspec.default_executable = @default_executable
50
+ end
51
+
52
+ # forcibly set the @has_rdoc ivar, as RubyGems 1.5.x disables the
53
+ # #has_rdoc= writer method.
54
+ if gemspec.instance_variable_defined?('@has_rdoc')
55
+ case @documentation
56
+ when :yard
57
+ gemspec.instance_variable_set('@has_rdoc','yard')
58
+ when :rdoc
59
+ gemspec.instance_variable_set('@has_rdoc',true)
60
+ when nil
61
+ gemspec.instance_variable_set('@has_rdoc',false)
62
+ end
63
+ end
64
+
65
+ gemspec.extra_rdoc_files = @extra_doc_files
66
+ gemspec.files = @files
67
+ gemspec.test_files = @test_files
68
+ gemspec.post_install_message = @post_install_message
69
+
70
+ gemspec.requirements = @requirements
71
+
72
+ if gemspec.respond_to?(:required_ruby_version=)
73
+ gemspec.required_ruby_version = @required_ruby_version
74
+ end
75
+
76
+ if gemspec.respond_to?(:required_rubygems_version=)
77
+ gemspec.required_rubygems_version = @required_rubygems_version
78
+ end
79
+
80
+ @dependencies.each do |dep|
81
+ gemspec.add_dependency(dep.name,*dep.versions)
82
+ end
83
+
84
+ if gemspec.respond_to?(:add_runtime_dependency)
85
+ @runtime_dependencies.each do |dep|
86
+ gemspec.add_runtime_dependency(dep.name,*dep.versions)
87
+ end
88
+ else
89
+ @runtime_dependencies.each do |dep|
90
+ gemspec.add_dependency(dep.name,*dep.versions)
91
+ end
92
+ end
93
+
94
+ if gemspec.respond_to?(:add_development_dependency)
95
+ @development_dependencies.each do |dep|
96
+ gemspec.add_development_dependency(dep.name,*dep.versions)
97
+ end
98
+ else
99
+ @development_dependencies.each do |dep|
100
+ gemspec.add_dependency(dep.name,*dep.versions)
101
+ end
102
+ end
103
+
104
+ # legacy information
105
+ if gemspec.respond_to?(:rubyforge_project=)
106
+ gemspec.rubyforge_project = gemspec.name
107
+ end
108
+
109
+ yield gemspec if block_given?
110
+ end
111
+ end
112
+
113
+ #
114
+ # Builds a gem for the project.
115
+ #
116
+ # @return [Pathname]
117
+ # The path to the built gem file within the `pkg/` directory.
118
+ #
119
+ # @since 0.1.5
120
+ #
121
+ def to_gem
122
+ pkg_dir = @root.join(@@pkg_dir)
123
+ FileUtils.mkdir_p(pkg_dir)
124
+
125
+ gem_file = Gem::Builder.new(self.to_gemspec).build
126
+ pkg_path = @root.join(pkg_file)
127
+
128
+ FileUtils.mv(gem_file,pkg_path)
129
+ return pkg_path
130
+ end
131
+ end
132
+ end
@@ -1,6 +1,6 @@
1
1
  require 'ore/versions/exceptions/invalid_version'
2
2
 
3
- require 'rubygems/version'
3
+ require 'rubygems'
4
4
 
5
5
  module Ore
6
6
  module Versions
@@ -30,13 +30,13 @@ describe Dependency do
30
30
  it "should parse multiple versions" do
31
31
  dep = subject.parse_versions('foo', '~> 1.2.3, >= 1.4.0')
32
32
 
33
- dep.versions.should == ['~> 1.2.3', '>= 1.4.0']
33
+ dep.versions.should =~ ['~> 1.2.3', '>= 1.4.0']
34
34
  end
35
35
 
36
36
  it "should parse an Array of versions" do
37
37
  dep = subject.parse_versions('foo', ['~> 1.2.3', '>= 1.4.0'])
38
38
 
39
- dep.versions.should == ['~> 1.2.3', '>= 1.4.0']
39
+ dep.versions.should =~ ['~> 1.2.3', '>= 1.4.0']
40
40
  end
41
41
  end
42
42
  end
@@ -15,5 +15,5 @@ post_install_message: |
15
15
 
16
16
  $ explicit
17
17
 
18
- required_ruby_version: >= 1.8.7
19
- required_rubygems_version: >= 1.3.7
18
+ required_ruby_version: ">= 1.8.7"
19
+ required_rubygems_version: ">= 1.3.7"
@@ -32,9 +32,17 @@ shared_examples_for 'an Ore Project' do
32
32
  @project.authors.should_not be_empty
33
33
  end
34
34
 
35
- it "should be able to create a Gem::Specification" do
36
- Dir.chdir(@project.root) do
37
- @project.to_gemspec.validate.should == true
35
+ describe "RubyGems" do
36
+ it "should be able to create a Gem::Specification" do
37
+ Dir.chdir(@project.root) do
38
+ @project.to_gemspec.validate.should == true
39
+ end
40
+ end
41
+
42
+ it "should be able to build a .gem package" do
43
+ Dir.chdir(@project.root) do
44
+ @project.to_gem.should be_file
45
+ end
38
46
  end
39
47
  end
40
48
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ore-core
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.4
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Postmodern
@@ -10,8 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-25 00:00:00 -08:00
14
- default_executable:
13
+ date: 2011-04-08 00:00:00 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: rspec
@@ -70,6 +69,7 @@ files:
70
69
  - lib/ore/naming.rb
71
70
  - lib/ore/paths.rb
72
71
  - lib/ore/project.rb
72
+ - lib/ore/rubygems.rb
73
73
  - lib/ore/settings.rb
74
74
  - lib/ore/specification.rb
75
75
  - lib/ore/versions.rb
@@ -114,7 +114,6 @@ files:
114
114
  - spec/spec_helper.rb
115
115
  - spec/versions/version_file_spec.rb
116
116
  - spec/versions/version_spec.rb
117
- has_rdoc: yard
118
117
  homepage: http://github.com/ruby-ore/ore-core
119
118
  licenses:
120
119
  - MIT
@@ -138,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
137
  requirements: []
139
138
 
140
139
  rubyforge_project: ore-core
141
- rubygems_version: 1.5.2
140
+ rubygems_version: 1.7.2
142
141
  signing_key:
143
142
  specification_version: 3
144
143
  summary: Mine raw RubyGems from YAML
@@ -153,3 +152,4 @@ test_files:
153
152
  - spec/projects/explicit_project_spec.rb
154
153
  - spec/projects/dm_plugin_project_spec.rb
155
154
  - spec/projects/ffi_binding_project_spec.rb
155
+ has_rdoc: yard