ruby-yasm 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +3 -0
- data/.gemtest +0 -0
- data/.github/workflows/ruby.yml +30 -0
- data/.gitignore +9 -0
- data/.rspec +1 -0
- data/.specopts +1 -0
- data/.yardopts +1 -0
- data/ChangeLog.md +31 -0
- data/Gemfile +16 -0
- data/LICENSE.txt +20 -0
- data/README.md +83 -0
- data/Rakefile +8 -25
- data/gemspec.yml +18 -0
- data/lib/yasm/command.rb +272 -0
- data/lib/yasm/program.rb +58 -58
- data/lib/yasm/version.rb +1 -1
- data/lib/yasm.rb +1 -0
- data/ruby-yasm.gemspec +58 -0
- data/spec/command_spec.rb +91 -0
- data/spec/program_spec.rb +86 -20
- data/spec/spec_helper.rb +3 -4
- data/spec/yasm_spec.rb +1 -1
- metadata +78 -120
- data/History.rdoc +0 -4
- data/Manifest.txt +0 -17
- data/README.rdoc +0 -85
- data/lib/yasm/task.rb +0 -161
- data/lib/yasm/yasm.rb +0 -142
- data/spec/task_spec.rb +0 -182
- data/tasks/spec.rb +0 -10
- data/tasks/yard.rb +0 -13
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
data/lib/yasm/program.rb
CHANGED
@@ -1,52 +1,47 @@
|
|
1
|
-
require 'yasm/
|
2
|
-
|
3
|
-
require 'rprogram'
|
4
|
-
require 'tempfile'
|
1
|
+
require 'yasm/command'
|
5
2
|
|
6
3
|
module YASM
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
#
|
5
|
+
# @deprecated Please use {Command} instead.
|
6
|
+
#
|
7
|
+
class Program < Command
|
10
8
|
|
11
9
|
#
|
12
|
-
# Finds the
|
10
|
+
# Finds the `yasm` program and assembles a file.
|
13
11
|
#
|
14
12
|
# @param [Hash{Symbol => Object}] options
|
15
13
|
# Additional options for yasm.
|
16
14
|
#
|
17
|
-
# @yield [
|
18
|
-
# If a block is given, it will be passed a
|
15
|
+
# @yield [program]
|
16
|
+
# If a block is given, it will be passed a program object used to
|
19
17
|
# specify options for yasm.
|
20
18
|
#
|
21
|
-
# @yieldparam [
|
22
|
-
# The yasm
|
19
|
+
# @yieldparam [Program] program
|
20
|
+
# The yasm program object.
|
23
21
|
#
|
24
22
|
# @return [Boolean]
|
25
23
|
# Specifies whether the command exited normally.
|
26
24
|
#
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
# @example
|
26
|
+
# Program.assemble(
|
27
|
+
# :parser => :gas,
|
28
|
+
# :output => 'code.o',
|
29
|
+
# :file => 'code.S'
|
30
|
+
# )
|
31
31
|
#
|
32
|
-
#
|
33
|
-
#
|
32
|
+
# @example
|
33
|
+
# Program.assemble do |yasm|
|
34
|
+
# yasm.target! :x86
|
34
35
|
#
|
35
|
-
#
|
36
|
-
#
|
36
|
+
# yasm.syntax = :gas
|
37
|
+
# yasm.file = 'code.S'
|
38
|
+
# yasm.output = 'code.o'
|
39
|
+
# end
|
37
40
|
#
|
38
|
-
# @
|
39
|
-
# If a block is given, it will be passed a task object used to
|
40
|
-
# specify options for yasm.
|
41
|
-
#
|
42
|
-
# @yieldparam [Task] task
|
43
|
-
# The yasm task object.
|
44
|
-
#
|
45
|
-
# @return [TempFile]
|
46
|
-
# The temporary file containing the assembled object code.
|
41
|
+
# @see #assemble
|
47
42
|
#
|
48
|
-
def self.
|
49
|
-
|
43
|
+
def self.assemble(options={},&block)
|
44
|
+
new(options,&block).assemble()
|
50
45
|
end
|
51
46
|
|
52
47
|
#
|
@@ -55,43 +50,48 @@ module YASM
|
|
55
50
|
# @param [Hash{Symbol => Object}] options
|
56
51
|
# Additional options for yasm.
|
57
52
|
#
|
58
|
-
# @yield [
|
59
|
-
# If a block is given, it will be passed a
|
53
|
+
# @yield [program]
|
54
|
+
# If a block is given, it will be passed a program object used to
|
60
55
|
# specify options for yasm.
|
61
56
|
#
|
62
|
-
# @yieldparam [
|
63
|
-
# The yasm
|
57
|
+
# @yieldparam [Program] program
|
58
|
+
# The yasm program object.
|
64
59
|
#
|
65
60
|
# @return [Boolean]
|
66
61
|
# Specifies whether the command exited normally.
|
67
62
|
#
|
68
|
-
|
69
|
-
|
63
|
+
# @example
|
64
|
+
# Program.assemble(
|
65
|
+
# :parser => :gas,
|
66
|
+
# :output => 'code.o',
|
67
|
+
# :file => 'code.S'
|
68
|
+
# )
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# Program.assemble do |yasm|
|
72
|
+
# yasm.target! :x86
|
73
|
+
#
|
74
|
+
# yasm.syntax = :gas
|
75
|
+
# yasm.file = 'code.S'
|
76
|
+
# yasm.output = 'code.o'
|
77
|
+
# end
|
78
|
+
#
|
79
|
+
def assemble(options={})
|
80
|
+
options.each do |name,value|
|
81
|
+
self[name] = value
|
82
|
+
end
|
83
|
+
|
84
|
+
yield self if block_given?
|
85
|
+
|
86
|
+
run_command()
|
70
87
|
end
|
71
88
|
|
72
89
|
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
# @param [Hash{Symbol => Object}] options
|
76
|
-
# Additional options for yasm.
|
77
|
-
#
|
78
|
-
# @yield [task]
|
79
|
-
# If a block is given, it will be passed a task object used to
|
80
|
-
# specify options for yasm.
|
81
|
-
#
|
82
|
-
# @yieldparam [Task] task
|
83
|
-
# The yasm task object.
|
84
|
-
#
|
85
|
-
# @return [TempFile]
|
86
|
-
# The temporary file containing the assembled object code.
|
90
|
+
# @deprecated Please use {#target=} instead.
|
87
91
|
#
|
88
|
-
def
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
if run_task(task)
|
93
|
-
return task.output
|
94
|
-
end
|
92
|
+
def target!(name)
|
93
|
+
self.target = name
|
94
|
+
return true
|
95
95
|
end
|
96
96
|
|
97
97
|
end
|
data/lib/yasm/version.rb
CHANGED
data/lib/yasm.rb
CHANGED
data/ruby-yasm.gemspec
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gemspec = YAML.load_file('gemspec.yml')
|
5
|
+
|
6
|
+
gem.name = gemspec.fetch('name')
|
7
|
+
gem.version = gemspec.fetch('version') do
|
8
|
+
lib_dir = File.join(File.dirname(__FILE__),'lib')
|
9
|
+
$LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
|
10
|
+
|
11
|
+
require 'yasm/version'
|
12
|
+
YASM::VERSION
|
13
|
+
end
|
14
|
+
|
15
|
+
gem.summary = gemspec['summary']
|
16
|
+
gem.description = gemspec['description']
|
17
|
+
gem.licenses = Array(gemspec['license'])
|
18
|
+
gem.authors = Array(gemspec['authors'])
|
19
|
+
gem.email = gemspec['email']
|
20
|
+
gem.homepage = gemspec['homepage']
|
21
|
+
gem.metadata = gemspec['metadata'] if gemspec['metadata']
|
22
|
+
|
23
|
+
glob = lambda { |patterns| gem.files & Dir[*patterns] }
|
24
|
+
|
25
|
+
gem.files = if gemspec['files'] then glob[gemspec['files']]
|
26
|
+
else `git ls-files`.split($/)
|
27
|
+
end
|
28
|
+
|
29
|
+
gem.executables = gemspec.fetch('executables') do
|
30
|
+
glob['bin/*'].map { |path| File.basename(path) }
|
31
|
+
end
|
32
|
+
|
33
|
+
gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
|
34
|
+
gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
|
35
|
+
|
36
|
+
gem.require_paths = Array(gemspec.fetch('require_paths') {
|
37
|
+
%w[ext lib].select { |dir| File.directory?(dir) }
|
38
|
+
})
|
39
|
+
|
40
|
+
gem.requirements = gemspec['requirements']
|
41
|
+
gem.required_ruby_version = gemspec['required_ruby_version']
|
42
|
+
gem.required_rubygems_version = gemspec['required_rubygems_version']
|
43
|
+
gem.post_install_message = gemspec['post_install_message']
|
44
|
+
|
45
|
+
split = lambda { |string| string.split(/,\s*/) }
|
46
|
+
|
47
|
+
if gemspec['dependencies']
|
48
|
+
gemspec['dependencies'].each do |name,versions|
|
49
|
+
gem.add_dependency(name,split[versions])
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
if gemspec['development_dependencies']
|
54
|
+
gemspec['development_dependencies'].each do |name,versions|
|
55
|
+
gem.add_development_dependency(name,split[versions])
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'helpers/files'
|
3
|
+
|
4
|
+
require 'yasm/command'
|
5
|
+
require 'tempfile'
|
6
|
+
|
7
|
+
describe YASM::Command do
|
8
|
+
include Helpers::Files
|
9
|
+
|
10
|
+
describe ".run" do
|
11
|
+
subject { described_class }
|
12
|
+
|
13
|
+
it "should be able to assemble a file" do
|
14
|
+
file = Tempfile.new('yasm').path
|
15
|
+
|
16
|
+
subject.run do |yasm|
|
17
|
+
yasm.target = :x86
|
18
|
+
yasm.syntax = :gas
|
19
|
+
yasm.file = assembly_file('gas')
|
20
|
+
yasm.output = file
|
21
|
+
end
|
22
|
+
|
23
|
+
expect(File.size(file)).to be > 0
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#target" do
|
28
|
+
context "when no target has been set" do
|
29
|
+
it "must return nil" do
|
30
|
+
expect(subject.target).to be(nil)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when the target has been set to :x86" do
|
35
|
+
before { subject.target = :x86 }
|
36
|
+
|
37
|
+
it "must return :x86" do
|
38
|
+
expect(subject.target).to eq(:x86)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "when #arch is :x86 and #machine is :x86" do
|
43
|
+
before do
|
44
|
+
subject.arch = :x86
|
45
|
+
subject.machine = :x86
|
46
|
+
end
|
47
|
+
|
48
|
+
it "must return :x86" do
|
49
|
+
expect(subject.target).to eq(:x86)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when the target has been set to :amd64" do
|
54
|
+
before { subject.target = :amd64}
|
55
|
+
|
56
|
+
it "must return :amd64" do
|
57
|
+
expect(subject.target).to eq(:amd64)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when #arch is :x86 and #machine is :amd64" do
|
62
|
+
before do
|
63
|
+
subject.arch = :x86
|
64
|
+
subject.machine = :amd64
|
65
|
+
end
|
66
|
+
|
67
|
+
it "must return :amd64" do
|
68
|
+
expect(subject.target).to eq(:amd64)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when the target has been set to :lc3b" do
|
73
|
+
before { subject.target = :lc3b}
|
74
|
+
|
75
|
+
it "must return :lc3b" do
|
76
|
+
expect(subject.target).to eq(:lc3b)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when #arch is :lc3b and #machine is :lc3b" do
|
81
|
+
before do
|
82
|
+
subject.arch = :lc3b
|
83
|
+
subject.machine = :lc3b
|
84
|
+
end
|
85
|
+
|
86
|
+
it "must return :lc3b" do
|
87
|
+
expect(subject.target).to eq(:lc3b)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/spec/program_spec.rb
CHANGED
@@ -1,38 +1,104 @@
|
|
1
|
-
require 'yasm/program'
|
2
|
-
|
3
1
|
require 'spec_helper'
|
4
2
|
require 'helpers/files'
|
5
3
|
|
6
|
-
|
4
|
+
require 'yasm/program'
|
5
|
+
require 'tempfile'
|
6
|
+
|
7
|
+
describe YASM::Program do
|
7
8
|
include Helpers::Files
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
describe ".assemble" do
|
11
|
+
subject { described_class }
|
12
|
+
|
13
|
+
it "should be able to assemble a file" do
|
14
|
+
file = Tempfile.new('yasm').path
|
15
|
+
|
16
|
+
subject.assemble do |yasm|
|
17
|
+
yasm.target! :x86
|
18
|
+
|
19
|
+
yasm.syntax = :gas
|
20
|
+
yasm.file = assembly_file('gas')
|
21
|
+
yasm.output = file
|
22
|
+
end
|
23
|
+
|
24
|
+
expect(File.size(file)).to be > 0
|
25
|
+
end
|
11
26
|
end
|
12
27
|
|
13
|
-
|
14
|
-
file
|
28
|
+
describe "#assemble" do
|
29
|
+
it "should be able to assemble a file" do
|
30
|
+
file = Tempfile.new('yasm').path
|
31
|
+
|
32
|
+
subject.assemble do |yasm|
|
33
|
+
yasm.target! :x86
|
15
34
|
|
16
|
-
|
17
|
-
|
35
|
+
yasm.syntax = :gas
|
36
|
+
yasm.file = assembly_file('gas')
|
37
|
+
yasm.output = file
|
38
|
+
end
|
18
39
|
|
19
|
-
|
20
|
-
yasm.file = assembly_file('gas')
|
21
|
-
yasm.output = file
|
40
|
+
expect(File.size(file)).to be > 0
|
22
41
|
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#initialize" do
|
45
|
+
subject { described_class.new(target: :amd64) }
|
23
46
|
|
24
|
-
|
47
|
+
it "should support a :target option" do
|
48
|
+
expect(subject.arch).to eq(:x86)
|
49
|
+
expect(subject.machine).to eq(:amd64)
|
50
|
+
end
|
25
51
|
end
|
26
52
|
|
27
|
-
|
28
|
-
|
29
|
-
|
53
|
+
describe "#target!" do
|
54
|
+
it "should return true for valid targets" do
|
55
|
+
expect(subject.target!(:amd64)).to be(true)
|
56
|
+
end
|
57
|
+
|
58
|
+
context "when given an unknown target name" do
|
59
|
+
let(:name) { :lol }
|
30
60
|
|
31
|
-
|
32
|
-
|
61
|
+
it "should raise ArgumentError when passed unknown targets" do
|
62
|
+
expect {
|
63
|
+
subject.target!(name)
|
64
|
+
}.to raise_error(ArgumentError,"unknown YASM target: #{name.inspect}")
|
65
|
+
end
|
33
66
|
end
|
34
67
|
|
35
|
-
|
36
|
-
|
68
|
+
context "when given :x86" do
|
69
|
+
before { subject.target!(:x86) }
|
70
|
+
|
71
|
+
it "should set the #arch value" do
|
72
|
+
expect(subject.arch).to eq(:x86)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should set the #machine value" do
|
76
|
+
expect(subject.machine).to eq(:x86)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when given :amd64" do
|
81
|
+
before { subject.target!(:amd64) }
|
82
|
+
|
83
|
+
it "should set the #arch value" do
|
84
|
+
expect(subject.arch).to eq(:x86)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should set the #machine value" do
|
88
|
+
expect(subject.machine).to eq(:amd64)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context "when given :lc3b" do
|
93
|
+
before { subject.target!(:lc3b) }
|
94
|
+
|
95
|
+
it "should set the #arch value" do
|
96
|
+
expect(subject.arch).to eq(:lc3b)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should set the #machine value" do
|
100
|
+
expect(subject.machine).to eq(:lc3b)
|
101
|
+
end
|
102
|
+
end
|
37
103
|
end
|
38
104
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/yasm_spec.rb
CHANGED
metadata
CHANGED
@@ -1,140 +1,98 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-yasm
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Postmodern
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
W+IhIkANQ7E6uMZIZcdnfadC6lPAtlKkqtd9crvRbFgr6e3kyflmohbRnTEJHoRd
|
21
|
-
7SHHsybE6DSn7oTDs6XBTNrNIn5VfZA0z01eeos/+zBm1zKJOK2+/7xtLLDuDU9G
|
22
|
-
+Rd+ltUBbvxUrMNZmDG29pnmN2xTRH+Q8HxD2AxlvM5SRpK6OeZaHV7PaCCAVZ4L
|
23
|
-
T9BFl1sfMvRlABeGEkSyuQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
24
|
-
sDAdBgNVHQ4EFgQUKwsd+PqEYmBvyaTyoL+uRuk+PhEwDQYJKoZIhvcNAQEFBQAD
|
25
|
-
ggEBAB4TvHsrlbcXcKg6gX5BIb9tI+zGkpzo0Z7jnxMEcNO7NGGwmzafDBI/xZYv
|
26
|
-
xkRH3/HXbGGYDOi6Q6gWt5GujSx0bOImDtYTJTH8jnzN92HzEK5WdScm1QpZKF1e
|
27
|
-
cezArMbxbSPaosxTCtG6LQTkE28lFQsmFZ5xzouugS4h5+LVJiVMmiP+l3EfkjFa
|
28
|
-
GOURU+rNEMPWo8MCWivGW7jes6BMzWHcW7DQ0scNVmIcCIgdyMmpscuAEOSeghy9
|
29
|
-
/fFs57Ey2OXBL55nDOyvN/ZQ2Vab05UH4t+GCxjAPeirzL/29FBtePT6VD44c38j
|
30
|
-
pDj+ws7QjtH/Qcrr1l9jfN0ehDs=
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
|
33
|
-
date: 2009-12-27 00:00:00 -08:00
|
34
|
-
default_executable:
|
35
|
-
dependencies:
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rprogram
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-01-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: command_mapper
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.1'
|
38
20
|
type: :runtime
|
39
|
-
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
requirements:
|
42
|
-
- - "
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 0.1
|
45
|
-
|
46
|
-
|
47
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
48
34
|
type: :development
|
49
|
-
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
56
|
-
|
57
|
-
name: yard
|
58
|
-
type: :development
|
59
|
-
version_requirement:
|
60
|
-
version_requirements: !ruby/object:Gem::Requirement
|
61
|
-
requirements:
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 0.5.2
|
65
|
-
version:
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: hoe
|
68
|
-
type: :development
|
69
|
-
version_requirement:
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 2.4.0
|
75
|
-
version:
|
76
|
-
description: |-
|
77
|
-
A Ruby interface to YASM.
|
78
|
-
|
79
|
-
YASM is a complete rewrite of the NASM assembler, YASM currently supports
|
80
|
-
the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes,
|
81
|
-
outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, RDOFF2, COFF, Win32,
|
82
|
-
and Win64 object formats, and generates source debugging information in
|
83
|
-
STABS, DWARF 2, and CodeView 8 formats.
|
84
|
-
email:
|
85
|
-
- postmodern.mod3@gmail.com
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
41
|
+
description: ruby-yasm provides a Ruby interface to YASM assembler.
|
42
|
+
email: postmodern.mod3@gmail.com
|
86
43
|
executables: []
|
87
|
-
|
88
44
|
extensions: []
|
89
|
-
|
90
|
-
|
91
|
-
-
|
92
|
-
|
93
|
-
|
94
|
-
-
|
95
|
-
-
|
45
|
+
extra_rdoc_files:
|
46
|
+
- ChangeLog.md
|
47
|
+
- LICENSE.txt
|
48
|
+
- README.md
|
49
|
+
files:
|
50
|
+
- ".document"
|
51
|
+
- ".gemtest"
|
52
|
+
- ".github/workflows/ruby.yml"
|
53
|
+
- ".gitignore"
|
54
|
+
- ".rspec"
|
55
|
+
- ".specopts"
|
56
|
+
- ".yardopts"
|
57
|
+
- ChangeLog.md
|
58
|
+
- Gemfile
|
59
|
+
- LICENSE.txt
|
60
|
+
- README.md
|
96
61
|
- Rakefile
|
62
|
+
- gemspec.yml
|
97
63
|
- lib/yasm.rb
|
98
|
-
- lib/yasm/
|
64
|
+
- lib/yasm/command.rb
|
99
65
|
- lib/yasm/program.rb
|
100
|
-
- lib/yasm/yasm.rb
|
101
66
|
- lib/yasm/version.rb
|
102
|
-
-
|
103
|
-
-
|
104
|
-
- spec/spec_helper.rb
|
67
|
+
- ruby-yasm.gemspec
|
68
|
+
- spec/command_spec.rb
|
105
69
|
- spec/helpers/files.rb
|
106
70
|
- spec/helpers/files/gas.S
|
107
|
-
- spec/task_spec.rb
|
108
71
|
- spec/program_spec.rb
|
72
|
+
- spec/spec_helper.rb
|
109
73
|
- spec/yasm_spec.rb
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
post_install_message:
|
115
|
-
rdoc_options:
|
116
|
-
|
117
|
-
- README.rdoc
|
118
|
-
require_paths:
|
74
|
+
homepage: https://github.com/postmodern/ruby-yasm#readme
|
75
|
+
licenses:
|
76
|
+
- MIT
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
119
81
|
- lib
|
120
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
122
84
|
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version:
|
125
|
-
|
126
|
-
|
127
|
-
requirements:
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
128
89
|
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version:
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
specification_version: 3
|
138
|
-
summary: A Ruby interface to YASM
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements:
|
93
|
+
- yasm >= 0.6.0
|
94
|
+
rubygems_version: 3.2.22
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: A Ruby interface to YASM.
|
139
98
|
test_files: []
|
140
|
-
|
data/History.rdoc
DELETED