rubygems-requirements-system 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +141 -0
  3. data/Rakefile +35 -0
  4. data/doc/text/gpl-3.txt +674 -0
  5. data/doc/text/lgpl-3.txt +165 -0
  6. data/doc/text/news.md +5 -0
  7. data/lib/rubygems-requirements-system/executable-finder.rb +87 -0
  8. data/lib/rubygems-requirements-system/installer.rb +122 -0
  9. data/lib/rubygems-requirements-system/os-release.rb +59 -0
  10. data/lib/rubygems-requirements-system/package.rb +17 -0
  11. data/lib/rubygems-requirements-system/platform/alpine-linux.rb +44 -0
  12. data/lib/rubygems-requirements-system/platform/alt-linux.rb +52 -0
  13. data/lib/rubygems-requirements-system/platform/amazon-linux-2.rb +50 -0
  14. data/lib/rubygems-requirements-system/platform/amazon-linux-2023.rb +40 -0
  15. data/lib/rubygems-requirements-system/platform/arch-linux.rb +43 -0
  16. data/lib/rubygems-requirements-system/platform/base.rb +135 -0
  17. data/lib/rubygems-requirements-system/platform/conda.rb +43 -0
  18. data/lib/rubygems-requirements-system/platform/debian.rb +67 -0
  19. data/lib/rubygems-requirements-system/platform/fedora.rb +44 -0
  20. data/lib/rubygems-requirements-system/platform/freebsd.rb +43 -0
  21. data/lib/rubygems-requirements-system/platform/gentoo-linux.rb +50 -0
  22. data/lib/rubygems-requirements-system/platform/homebrew.rb +43 -0
  23. data/lib/rubygems-requirements-system/platform/macports.rb +43 -0
  24. data/lib/rubygems-requirements-system/platform/pld-linux.rb +43 -0
  25. data/lib/rubygems-requirements-system/platform/red-hat-enterprise-linux.rb +67 -0
  26. data/lib/rubygems-requirements-system/platform/suse.rb +51 -0
  27. data/lib/rubygems-requirements-system/platform/ubuntu.rb +41 -0
  28. data/lib/rubygems-requirements-system/platform/unknown.rb +31 -0
  29. data/lib/rubygems-requirements-system/platform.rb +72 -0
  30. data/lib/rubygems-requirements-system/version.rb +18 -0
  31. data/lib/rubygems_plugin.rb +21 -0
  32. metadata +94 -0
@@ -0,0 +1,31 @@
1
+ # Copyright (C) 2017-2025 Ruby-GNOME Project Team
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU Lesser General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ require_relative "base"
17
+
18
+ module RubyGemsRequirementsSystem
19
+ module Platform
20
+ class Unknown < Base
21
+ def target?(platform)
22
+ false
23
+ end
24
+
25
+ private
26
+ def need_super_user_priviledge?
27
+ false
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,72 @@
1
+ # Copyright (C) 2017-2025 Ruby-GNOME Project Team
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU Lesser General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ module RubyGemsRequirementsSystem
17
+ module Platform
18
+ PLATFORM_CLASSES = []
19
+
20
+ class << self
21
+ def register(platform_class)
22
+ PLATFORM_CLASSES << platform_class
23
+ end
24
+
25
+ def detect
26
+ PLATFORM_CLASSES.reverse_each do |platform_class|
27
+ return platform_class.new if platform_class.current_platform?
28
+ end
29
+ Unknown.new
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ require_relative "platform/base"
36
+
37
+ # macOS
38
+ require_relative "platform/macports"
39
+
40
+
41
+ # FreeBSD
42
+ require_relative "platform/freebsd"
43
+
44
+
45
+ # Linux
46
+ require_relative "platform/arch-linux"
47
+ require_relative "platform/gentoo-linux"
48
+
49
+ require_relative "platform/debian"
50
+ require_relative "platform/ubuntu"
51
+ require_relative "platform/alt-linux"
52
+
53
+ require_relative "platform/pld-linux"
54
+
55
+ require_relative "platform/fedora"
56
+ require_relative "platform/red-hat-enterprise-linux"
57
+ require_relative "platform/amazon-linux-2"
58
+ require_relative "platform/amazon-linux-2023"
59
+
60
+ require_relative "platform/suse"
61
+
62
+ require_relative "platform/alpine-linux"
63
+
64
+
65
+ # Platform independent
66
+ require_relative "platform/homebrew"
67
+ require_relative "platform/conda"
68
+ # TODO: Conan
69
+ # TODO: vcpkg
70
+
71
+ # Fallback
72
+ require_relative "platform/unknown"
@@ -0,0 +1,18 @@
1
+ # Copyright (C) 2025 Ruby-GNOME Project Team
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU Lesser General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ module RubyGemsRequirementsSystem
17
+ VERSION = "0.0.1"
18
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright (C) 2025 Ruby-GNOME Project Team
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU Lesser General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ require_relative "rubygems-requirements-system/installer"
17
+
18
+ Gem.pre_install do |installer|
19
+ installer = RubyGemsRequirementsSystem::Installer.new(installer.spec)
20
+ installer.install
21
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubygems-requirements-system
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sutou Kouhei
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pkg-config
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: |-
28
+ Users need to install system packages to install an extension library
29
+ that depends on system packages. It bothers users because users need to
30
+ install system packages and an extension library separately.
31
+
32
+ rubygems-requirements-system helps to install system packages on "gem install".
33
+ Users can install both system packages and an extension library by one action,
34
+ "gem install".
35
+ email:
36
+ - kou@clear-code.com
37
+ executables: []
38
+ extensions: []
39
+ extra_rdoc_files: []
40
+ files:
41
+ - README.md
42
+ - Rakefile
43
+ - doc/text/gpl-3.txt
44
+ - doc/text/lgpl-3.txt
45
+ - doc/text/news.md
46
+ - lib/rubygems-requirements-system/executable-finder.rb
47
+ - lib/rubygems-requirements-system/installer.rb
48
+ - lib/rubygems-requirements-system/os-release.rb
49
+ - lib/rubygems-requirements-system/package.rb
50
+ - lib/rubygems-requirements-system/platform.rb
51
+ - lib/rubygems-requirements-system/platform/alpine-linux.rb
52
+ - lib/rubygems-requirements-system/platform/alt-linux.rb
53
+ - lib/rubygems-requirements-system/platform/amazon-linux-2.rb
54
+ - lib/rubygems-requirements-system/platform/amazon-linux-2023.rb
55
+ - lib/rubygems-requirements-system/platform/arch-linux.rb
56
+ - lib/rubygems-requirements-system/platform/base.rb
57
+ - lib/rubygems-requirements-system/platform/conda.rb
58
+ - lib/rubygems-requirements-system/platform/debian.rb
59
+ - lib/rubygems-requirements-system/platform/fedora.rb
60
+ - lib/rubygems-requirements-system/platform/freebsd.rb
61
+ - lib/rubygems-requirements-system/platform/gentoo-linux.rb
62
+ - lib/rubygems-requirements-system/platform/homebrew.rb
63
+ - lib/rubygems-requirements-system/platform/macports.rb
64
+ - lib/rubygems-requirements-system/platform/pld-linux.rb
65
+ - lib/rubygems-requirements-system/platform/red-hat-enterprise-linux.rb
66
+ - lib/rubygems-requirements-system/platform/suse.rb
67
+ - lib/rubygems-requirements-system/platform/ubuntu.rb
68
+ - lib/rubygems-requirements-system/platform/unknown.rb
69
+ - lib/rubygems-requirements-system/version.rb
70
+ - lib/rubygems_plugin.rb
71
+ homepage: https://github.com/ruby-gnome/rubygems-requirements-system
72
+ licenses:
73
+ - LGPL-3.0-or-later
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubygems_version: 3.4.20
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Users can install system packages automatically on "gem install"
94
+ test_files: []