rim 2.17.1 → 3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b15a2c430c7e1478514a923b3038b691a1e6c6526b690d9de84c1b58dc7a493
4
- data.tar.gz: 3fbce8caf9392280e75151bddf849235a66d9b786896d2790b86a4fb9b56c109
3
+ metadata.gz: 4d6a9301cf2bd657059f0a2d0f52b1f68493e3c331e4dcd4adbcd3bfad6e6763
4
+ data.tar.gz: 980272cd29d0b3d336ebfbbad3dbf584d01c24f2afc88723f58ac14199b3b9a6
5
5
  SHA512:
6
- metadata.gz: ec68de807803ce8f7371abd0fb5678155ed2d068f2a27f2b93613e631ebcb33dc3f9b9551c3e1c39c949aecf6248320023196f3fcb985cc22ae70f0476649bd2
7
- data.tar.gz: 5a2ee73639871ac1c3b4cbdf7888db9a5805214df7bbd57059db2a40ca6f58ab28ba976fc180400ccef4e6cc2f18465925960641ae3bd82f1ccf91f5506b584a
6
+ metadata.gz: 86195c13a7382bcf6db85f64feb0d7e16843c847d44e4e9662bc5f6cc5b4f5b5e66bee0c963b4fdc2d3314c386ce0c6329a380d4a947ec9bfbb7febac8cf65be
7
+ data.tar.gz: 79af1f0eab514667c317eec3d86d6a7d916dbf15e6d3972d1d1ad193f375b3c85a3a387499246f7c54f78572b333b056b661eeecc5d09a41524f0a9fe9ae3ed8
data/Changelog CHANGED
@@ -1,3 +1,16 @@
1
+ 3.0.0
2
+ In older versions of rim the gemspec file was generated by rim from values
3
+ defined in Rim.setup in Rakefile. Now it is the other way around: all values
4
+ which could be defined in the gemspec file must be defined there. Therefore
5
+ all according accessor methods are no longer relevant. Rim emits a warning
6
+ when such a method is called and does not use these values any longer. It is
7
+ necessary to set those in the gemspec file.
8
+
9
+ There is also added a new Rake task gem:files.
10
+
11
+ 2.18.0
12
+ Add new accessors Rim#bindir and Rim#executables to gem plugin.
13
+
1
14
  2.17.1
2
15
  Remove superfluous calls of public and private to suppress warnings in newer
3
16
  Ruby versions.
data/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # Rim a super simple ruby project / gem manager
2
+
3
+ Goal is to have a project managing that just works on many Ruby
4
+ versions as possible and is easy to extend. Feel free to dislike it. ;)
5
+
6
+
7
+ ## Use for project management
8
+
9
+ Since rim version 3.0.0 it is necessary to create a gemspec file with the basic
10
+ configuration of the project. See [online
11
+ documentation](https://guides.rubygems.org/specification-reference/) for more
12
+ information. The rest is done in Rakefile.
13
+
14
+ Example of a minimal Rakefile:
15
+
16
+ ```ruby
17
+ require 'rim'
18
+ require 'rim/gem'
19
+ # require 'rim/...'
20
+
21
+ Rim.setup do
22
+ # set up things of necessary
23
+ end
24
+ ```
25
+
26
+ For advanced usage have a look at the Rakefile of rim.
27
+
28
+
29
+ ## Upgrading from Rim before version 3.0.0
30
+
31
+ In rim before 3.0.0 the gemspec file was generated by rim from values defined
32
+ in <code>Rim.setup</code> in Rakefile. Now it is the other way around: all
33
+ values which could be defined in the gemspec file must be defined there.
34
+ Therefore all according accessor methods are no longer relevant. Rim emits a
35
+ warning when such a method is called and <em>does not</em> use these values any
36
+ longer. It is necessary to set those in the gemspec file.
37
+
38
+
39
+ ## Writing an extension
40
+
41
+ * Extend the class Rim with <code>attr_accessors</code> for new attributes if needed.
42
+ * Set default values use <code>Rim.defaults</code>.
43
+ * Define tasks with <code>Rim.after_setup</code>.
44
+
45
+ A very simple example extension:
46
+
47
+ ```ruby
48
+ # require other extensions if necessary
49
+
50
+ require 'rim/another_extension'
51
+
52
+ # Extend the class
53
+
54
+ class Rim
55
+ # Attribute for somewhat (default: 42)
56
+ attr_accessor :my_attr
57
+ end
58
+
59
+ # Setting default values
60
+
61
+ Rim.defaults do
62
+ my_attr 42
63
+ end
64
+
65
+ # Stuff to execute after setting the defaults and calling Rim.setup in Rakefile.
66
+ # Usual for defining tasks.
67
+
68
+ Rim.after_setup do
69
+ task :my_task => :another_task do
70
+ # stuff
71
+ end
72
+ end
73
+ ```
74
+
75
+ For more examples have a look at the tasks coming with rim in <code>lib/rim/*.rb</code>
76
+
77
+
78
+ ## Similar projects
79
+
80
+ * https://github.com/seattlerb/hoe
81
+ * https://github.com/evan/echoe
82
+
83
+
84
+ ## Credits
85
+
86
+ <em>Jim Weirich</em> For written the great Rake. (Sad that he is already gone.)
87
+
88
+ <em>Ryan Davis</em> and <em>Evan Weaver</em> For their inspirations in Hoe respectively Echoe.
89
+
90
+
91
+ ## Contribution
92
+
93
+ The code is also hosted in a git repository at [github](http://github.com/janfri/rim) and [bitbucket](https://bitbucket.org/janfri/rim)
94
+
95
+ Feel free to contribute!
96
+
97
+
98
+ ## Versioning
99
+
100
+ Rim follows [Semantic Versioning](https://semver.org/), both SemVer and
101
+ SemVerTag.
102
+
103
+
104
+ ## Author
105
+
106
+ Jan Friedrich <janfri26@gmail.com>
107
+
108
+
109
+ ## License
110
+
111
+ MIT-style license, see file LICENSE.
data/lib/rim/aspell.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # Encoding of spell checked files (default: 'UTF-8')
4
6
  attr_accessor :aspell_encoding
@@ -51,7 +53,4 @@ Rim.after_setup do
51
53
  task :prepare_release => 'aspell:check'
52
54
  task :release => 'aspell:check'
53
55
  end
54
- if feature_loaded? 'rim/gem'
55
- gem_files << aspell_word_list
56
- end
57
56
  end
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
3
5
  task :check_version do
4
6
  fail "Task check_version is obsolete, use version:check!"
data/lib/rim/gem.rb CHANGED
@@ -1,128 +1,49 @@
1
- # -- encoding: utf-8 --
2
- class Rim
3
- # Project / gem description
4
- attr_accessor :description
5
-
6
- # Project / gem summary
7
- attr_accessor :summary
8
-
9
- # E-Mail address
10
- attr_accessor :email
11
-
12
- # License imformation
13
- attr_accessor :licenses
14
-
15
- # Project homepage
16
- attr_accessor :homepage
17
-
18
- # Files included in the gem (default: <code>/^README/i, /^Changelog/i, /^COPYING/i, /^LICENSE/i, /^Rakefile/i, /^Gemfile$/, '*.gemspec', 'bin/*', 'lib/**/*', 'test/**/*'</code>)
19
- attr_accessor :gem_files
20
-
21
- # Dependencies of the gem
22
- attr_accessor :dependencies
23
-
24
- # Dependencies for development (default: <code>['rake', %W(rim ~>#{Rim::VERSION.scan(/[^.]+\.[^.]+/).first})]</code>)
25
- attr_accessor :development_dependencies
26
-
27
- # Required Ruby version
28
- attr_accessor :ruby_version
29
-
30
- # Installation message
31
- attr_accessor :install_message
32
-
33
- # Requirements (external to rubygems)
34
- attr_accessor :requirements
35
-
36
- alias license licenses
37
- alias license= licenses=
38
-
39
- protected
40
-
41
- def gem_spec
42
- spec = Gem::Specification.new do |s|
43
- s.authors = authors
44
- s.email = email
45
- s.platform = Gem::Platform::RUBY
46
- s.description = description
47
- s.license = license if license
48
- s.homepage = homepage
49
- s.name = name
50
- s.summary = summary
51
- s.version = version
52
- s.require_paths = Array(require_paths)
53
- s.files = Array(gem_files)
54
- s.required_ruby_version = ruby_version if ruby_version
55
- s.post_install_message = install_message
56
- s.requirements = Array(requirements)
57
- Array(dependencies).each do |dep|
58
- s.add_dependency *Array(dep)
59
- end
60
- Array(development_dependencies).each do |dep|
61
- s.add_development_dependency *Array(dep)
62
- end
63
- end
64
- disclaimer = <<-END
65
- #
66
- # This file is automatically generated by rim.
67
- # PLEASE DO NOT EDIT IT DIRECTLY!
68
- # Change the values in Rim.setup in Rakefile instead.
69
-
70
- END
71
- disclaimer.gsub!(/^\s+/, '')
72
- spec_string = spec.to_ruby.gsub(/([)>"])\.freeze\b/, '\1')
73
- spec_string.sub(/^$/, disclaimer)
74
- end
75
-
76
- def gemspec_file
77
- "#{name}.gemspec"
78
- end
79
-
80
- end
81
-
82
- Rim.defaults do
83
- gem_files filelist(/^README/i, /^Changelog/i, /^COPYING/i, /^LICENSE/i, /^Rakefile/i, /^Gemfile$/, '*.gemspec', 'bin/*', 'lib/**/*', 'test/**/*')
84
- dependencies []
85
- development_dependencies ['rake',%W(rim ~>#{Rim::VERSION.scan(/[^.]+\.[^.]+/).first})]
86
- requirements []
87
- end
1
+ # encoding: utf-8
2
+ require_relative '../rim'
88
3
 
89
4
  Rim.after_setup do
90
5
 
91
6
  require 'rubygems/package'
92
7
 
93
- gem_file = "pkg/#{name}-#{version}.gem"
8
+ directory PKG_DIR = 'pkg'
94
9
 
95
- directory 'pkg'
10
+ name = gemspec.name
11
+ version = gemspec.version
12
+ gem_file = File.join(PKG_DIR, "#{name}-#{version}.gem")
96
13
 
97
- CLOBBER.include(FileList['pkg'].existing)
14
+
15
+ CLOBBER.include(FileList[PKG_DIR].existing)
98
16
 
99
17
  desc "Build the gem file #{gem_file}"
100
18
  task :gem => 'gem:build'
101
19
 
102
20
  namespace :gem do
103
21
 
104
- file gem_file => ['pkg', gemspec_file] do
105
- sh "gem build #{gemspec_file}"
106
- mv File.basename(gem_file), 'pkg'
22
+ file gem_file => [PKG_DIR, gemspec_file] + gemspec.files do
23
+ sh "gem build #{gemspec_file} -o #{gem_file}"
24
+ end
25
+
26
+ if feature_loaded? 'rim/test'
27
+ task :build => [:test, gem_file]
28
+ else
29
+ task :build => [gem_file]
107
30
  end
108
31
 
109
- task :build => [:spec, :test, gem_file]
32
+ desc "Show files included and files not included in gem"
33
+ task :files do
34
+ gemspec_files = gemspec.files
35
+ all_files = filelist('**/*') + filelist('**/.*')
36
+ all_files.select! {|fn| File.file?(fn)}
37
+ puts '===== Files included in gem =====', gemspec_files.sort.join("\n")
38
+ puts
39
+ puts '=== Files NOT included in gem ===', (all_files - gemspec_files).sort.join("\n")
40
+ end
110
41
 
111
42
  desc "Push the gem #{name} version #{version} to rubygems.org"
112
43
  task :push => :gem do
113
44
  sh "gem push #{gem_file}"
114
45
  end
115
46
 
116
- gem_files_without_gemspec = gem_files.clone
117
- gem_files_without_gemspec.exclude('*.gemspec')
118
- file gemspec_file => gem_files_without_gemspec do
119
- gem_files << gemspec_file
120
- File.write(gemspec_file, gem_spec)
121
- end
122
-
123
- desc "Generate #{gemspec_file}"
124
- task :spec => gemspec_file
125
-
126
47
  end
127
48
 
128
49
  desc "Install version #{version}"
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ class Rim
4
+
5
+ # Deprecate accessors of older Rim versions (< 3.0)
6
+ %w(author authors bindir dependencies description development_dependencies email executables gem_files homepage install_message license name require_paths requirements ruby_version summary version).each do |attr|
7
+ define_method attr do |*args|
8
+ warn "WARNING: Rim accessor #{attr} is not longer supported, define the value in #{gemspec_file}"
9
+ []
10
+ end
11
+ alias_method "#{attr}=", attr
12
+ end
13
+
14
+ def gemspec_file
15
+ @gemspec_file ||= Dir['*.gemspec'].first or fail 'no gemspec file found'
16
+ end
17
+
18
+ def gemspec
19
+ @gemspec ||= eval(File.read(gemspec_file), binding, gemspec_file)
20
+ end
21
+
22
+ end
data/lib/rim/git.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # Git push commands (default: <tt>['--tags origin master']</tt>)
4
6
  attr_accessor :git_push_commands
@@ -10,7 +12,7 @@ end
10
12
 
11
13
  Rim.after_setup do
12
14
  if File.exist?('.git') && File.directory?('.git')
13
- tag_name = "v#{version}"
15
+ tag_name = "v#{gemspec.version}"
14
16
  namespace :git do
15
17
  desc "Create git tag #{tag_name}"
16
18
  task :tag do
@@ -34,9 +36,6 @@ Rim.after_setup do
34
36
  if feature_loaded? 'rim/gem'
35
37
  task 'gem:push' => 'git:check'
36
38
  task 'git:tag' => 'gem:push'
37
- if feature_loaded? 'rim/release'
38
- task :release => 'gem:spec'
39
- end
40
39
  end
41
40
  if feature_loaded? 'rim/release'
42
41
  task :release => %w(git:check git:tag)
data/lib/rim/info.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
3
5
  desc 'Prints informations about the Rim object.'
4
6
  task :info do
data/lib/rim/irb.rb CHANGED
@@ -1,19 +1,20 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # Required files for irb (default: Rim#name)
4
6
  attr_accessor :irb_requires
5
7
  end
6
8
 
7
- # Use Rim.after_setup because name in not yet set
8
- # in Rim.defaults
9
+ # Use Rim.after_setup because gemspec may not yet be set in Rim.defaults
9
10
  Rim.after_setup do |r|
10
- r.irb_requires ||= r.name
11
+ r.irb_requires ||= r.gemspec.name
11
12
  end
12
13
 
13
14
  Rim.after_setup do
14
15
  desc 'Start an irb session and loading lib'
15
16
  task :irb do
16
- i_params = Array(require_paths).map {|e| '-I ' << e}.join(' ')
17
+ i_params = Array(gemspec.require_paths).map {|e| '-I ' << e}.join(' ')
17
18
  r_params = Array(irb_requires).map {|e| '-r ' << e}.join(' ')
18
19
  sh "irb #{i_params} #{r_params}"
19
20
  end
data/lib/rim/pry.rb CHANGED
@@ -1,8 +1,10 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
3
5
  desc 'Start a pry session and loading lib'
4
6
  task :pry do
5
- i_params = Array(require_paths).map {|e| '-I ' << e}.join(' ')
6
- sh "pry #{i_params} -r #{name}"
7
+ i_params = Array(gemspec.require_paths).map {|e| '-I ' << e}.join(' ')
8
+ sh "pry #{i_params} -r #{gemspec.name}"
7
9
  end
8
10
  end
data/lib/rim/rdoc.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # Directory for rdoc output
4
6
  attr_accessor :rdoc_dir
data/lib/rim/regtest.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  require 'regtest/task'
3
5
 
4
6
  class Rim
@@ -21,18 +23,6 @@ Rim.defaults do
21
23
  end
22
24
 
23
25
  Rim.after_setup do
24
- if feature_loaded? 'rim/gem'
25
- self.gem_files += regtest_files
26
- unless development_dependencies.flatten.include? 'regtest'
27
- begin
28
- require 'regtest/version'
29
- v = Regtest::VERSION.sub(/\.\d+(?:\.?\w+)?$/, '')
30
- development_dependencies << %W(regtest ~>#{v})
31
- rescue LoadError
32
- development_dependencies << %w(regtest ~>1.0)
33
- end
34
- end
35
- end
36
26
  if regtest_files_rb != REGTEST_FILES_RB
37
27
  (::REGTEST_FILES_RB.clear << regtest_files_rb).flatten!
38
28
  end
data/lib/rim/release.rb CHANGED
@@ -1,5 +1,8 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
5
+ version = gemspec.version
3
6
  if version
4
7
  desc "Prepare release version #{version}"
5
8
  end
data/lib/rim/rimrc.rb CHANGED
@@ -1,4 +1,4 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
2
 
3
3
  # Load ~/.rimrc if it exists
4
4
  home = if Dir.respond_to? :home
data/lib/rim/ripl.rb CHANGED
@@ -1,8 +1,10 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
3
5
  desc 'Start a ripl session and loading lib'
4
6
  task :ripl do
5
- i_params = Array(require_paths).map {|e| '-I ' << e}.join(' ')
6
- sh "ripl #{i_params} -r #{name}"
7
+ i_params = Array(gemspec.require_paths).map {|e| '-I ' << e}.join(' ')
8
+ sh "ripl #{i_params} -r #{gemspec.name}"
7
9
  end
8
10
  end
data/lib/rim/rspec.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # RSpec files (default: <code>'spec/**/*.rb')</code>
4
6
  attr_accessor :rspec_files
data/lib/rim/test.rb CHANGED
@@ -1,4 +1,6 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  class Rim
3
5
  # Test files (default: <code>'test/**/*.rb')</code>
4
6
  attr_accessor :test_files
data/lib/rim/tire.rb CHANGED
@@ -1,6 +1,6 @@
1
- # -- encoding: utf-8 --
2
- require 'rim'
3
- require 'rim/gem'
4
- require 'rim/info'
5
- require 'rim/release'
6
- require 'rim/test'
1
+ # encoding: utf-8
2
+
3
+ require_relative 'gem'
4
+ require_relative 'info'
5
+ require_relative 'release'
6
+ require_relative 'test'
data/lib/rim/version.rb CHANGED
@@ -1,12 +1,12 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+ require_relative '../rim'
3
+
2
4
  Rim.after_setup do
3
5
  namespace :version do
4
6
  changelog = filelist(/^Changelog/i).first
5
7
  fail 'No Changelog file found' unless changelog
6
8
  if feature_loaded? 'rim/gem'
7
- desc "Check if Rim#version is equal to version in #{changelog} and #{gemspec_file}."
8
- else
9
- desc "Check if Rim#version is equal to version in #{changelog}."
9
+ desc "Check if version in #{gemspec_file} is equal to version in #{changelog}."
10
10
  end
11
11
  task :check do
12
12
  version_re = /^(\d+\.\d+(?:\.\d+)+(?:\.?\S+)?)/
@@ -14,30 +14,15 @@ Rim.after_setup do
14
14
  line = File.open(changelog) do |f|
15
15
  f.readline
16
16
  end
17
+ version = gemspec.version.to_s
17
18
  if line =~ version_re
18
19
  if $1 != version
19
- fail "Version mismatch (#{changelog}: #$1, Rim#version: #{version})"
20
+ fail "Version mismatch (#{changelog}: #$1, #{gemspec_file}: #{version})"
20
21
  end
21
22
  else
22
23
  fail "No version information in #{changelog}"
23
24
  end
24
- if feature_loaded? 'rim/gem'
25
- # gemspec
26
- fail 'No gemspec file found' unless File.exist? gemspec_file
27
- spec = eval File.read(gemspec_file)
28
- unless spec.version
29
- fail "No version information in #{gemspec_file}"
30
- end
31
- if version != spec.version.to_s
32
- fail "Version mismatch (#{gemspec_file}: #{spec.version}, Rim#version: #{version})\nTry rake gem:spec"
33
- end
34
- end
35
25
  end
36
-
37
- if feature_loaded? 'rim/release'
38
- task :check => 'gem:spec'
39
- end
40
-
41
26
  end
42
27
  if feature_loaded? 'rim/gem'
43
28
  task 'gem:push' => 'version:check'
data/lib/rim/yard.rb CHANGED
@@ -1,4 +1,5 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
+
2
3
  CLEAN.include(FileList['.yardoc'].existing)
3
4
  CLOBBER.include(FileList['doc'].existing)
4
5
  task :yard do
data/lib/rim.rb CHANGED
@@ -1,4 +1,4 @@
1
- # -- encoding: utf-8 --
1
+ # encoding: utf-8
2
2
  require 'rake'
3
3
  require 'rake/clean'
4
4
  require 'singleton'
@@ -9,7 +9,7 @@ require 'singleton'
9
9
  # versions as possible and is easy to extend. Feel free to dislike it. ;)
10
10
  class Rim
11
11
 
12
- VERSION = '2.17.1'
12
+ VERSION = '3.0.0'
13
13
 
14
14
  begin
15
15
  require 'rake/dsl_definition'
@@ -95,5 +95,5 @@ class Rim
95
95
 
96
96
  end
97
97
 
98
- require 'rim/core'
98
+ require 'rim/gemspec'
99
99
  require 'rim/rimrc' unless ENV['SELFTEST']