ryb 0.0.0.dev
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 +7 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +19 -0
- data/README.md +1 -0
- data/Rakefile +2 -0
- data/bin/ryb +36 -0
- data/lib/ryb/dsl.rb +19 -0
- data/lib/ryb/toolsets.rb +17 -0
- data/lib/ryb/version.rb +10 -0
- data/lib/ryb.rb +9 -0
- data/ryb.gemspec +24 -0
- metadata +69 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 11238b9bd67d96a08c7072c8466245cb5962a906
|
4
|
+
data.tar.gz: 882540d98d5604fd3c3b3e967483da36ffba608a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 50fd33ff6112e58b1af4e86da90572fad5d10a2e45d9b7e39996c886e2d67d006de5e41e5414013c98883a7243794716fbc3390408c9aa87355ab8357b8973e1
|
7
|
+
data.tar.gz: 1edc20f2bcd3c0038b11940d1ebb8dc2c9db92c528eb81001c5510892180e2f26449a2e042fd983ec7d8f278add66a5f60e0770f671e3c83981267e1f1c893dd
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Rubify Your Builds
|
data/Rakefile
ADDED
data/bin/ryb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.push File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
|
6
|
+
require 'gli'
|
7
|
+
require 'ryb'
|
8
|
+
# TODO(mtwilliams): Refactor into Ryb::CLI/Ryb::Runner.
|
9
|
+
# require 'ryb/cli'
|
10
|
+
|
11
|
+
include GLI::App
|
12
|
+
|
13
|
+
# TODO(mtwilliams): Refactor this ugliness into lib/ryb.rb?
|
14
|
+
spec = Gem::Specification::load(File.expand_path(File.join(File.dirname(__FILE__), '..', 'ryb.gemspec')))
|
15
|
+
# program_name spec.name
|
16
|
+
version spec.version.to_s
|
17
|
+
program_desc spec.summary
|
18
|
+
program_long_desc spec.description
|
19
|
+
|
20
|
+
desc 'Generate project file(s)'
|
21
|
+
# TODO(mtwilliams): Improve command-specific help.
|
22
|
+
long_desc 'Generates project files for a specific toolset based on a Rybfile.'
|
23
|
+
command [:g, :gen, :generate] do |c|
|
24
|
+
c.desc 'Automatically regenerate project file(s)'
|
25
|
+
|
26
|
+
c.action do |global_opts, opts, args|
|
27
|
+
# TODO(mtwilliams): Sanity checks on `args'.
|
28
|
+
toolset = args.shift
|
29
|
+
# TODO(mtwilliams): Custom exception types.
|
30
|
+
raise "Unknown toolset `#{toolset}'!" unless Ryb::Toolsets.available?(toolset)
|
31
|
+
puts "Generating project file(s) for `#{toolset}'..."
|
32
|
+
# ...
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
exit run(ARGV)
|
data/lib/ryb/dsl.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Ryb
|
2
|
+
module DSL
|
3
|
+
# TODO(mtwilliams): Refactor into Ryb::Runner? Ryb::Builder?
|
4
|
+
@_on_project_callbacks = []
|
5
|
+
def on_project(&block); @_on_project_callbacks << block; end
|
6
|
+
|
7
|
+
def project(name=nil, opts={}, &block)
|
8
|
+
# TODO(mtwilliams): Freak out if a name is not specified.
|
9
|
+
# TODO(mtwilliams): Freak out if `opts` is malformed, i.e. an unknown
|
10
|
+
# option is specified or a specified option is invalid.
|
11
|
+
project = Docile.dsl_eval(Ryb::Project::Builder.new, &block).build
|
12
|
+
|
13
|
+
# TODO(mtwilliams): Handle exceptions.
|
14
|
+
@_on_project_callbacks.each {|callback| callback(project)}
|
15
|
+
|
16
|
+
return project
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/ryb/toolsets.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ryb
|
2
|
+
module Toolsets
|
3
|
+
AVAILABLE = %w{gmake vs2008 vs2010 vs2012 vs2013 vs2015}
|
4
|
+
def self.available?(toolset)
|
5
|
+
AVAILABLE.include?(toolset)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.generate_project_files(toolset, projects)
|
10
|
+
# ({:gmake => Ryb::GMake.generate_project_files,
|
11
|
+
# :vs2008 => Ryb::VS2008.generate_project_files,
|
12
|
+
# :vs2010 => Ryb::VS2010.generate_project_files,
|
13
|
+
# :vs2012 => Ryb::VS2012.generate_project_files,
|
14
|
+
# :vs2013 => Ryb::VS2013.generate_project_files,
|
15
|
+
# :vs2015 => Ryb::VS2015.generate_project_files}[toolset](projects))
|
16
|
+
end
|
17
|
+
end
|
data/lib/ryb/version.rb
ADDED
data/lib/ryb.rb
ADDED
data/ryb.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
$:.push File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
|
2
|
+
require 'ryb/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'ryb'
|
6
|
+
s.version = Ryb.version
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.author = 'Michael Williams'
|
9
|
+
s.email = 'm.t.williams@live.com'
|
10
|
+
s.homepage = 'https://RubifyYourBuild.com/'
|
11
|
+
s.summary = 'Rubify Your Build!'
|
12
|
+
s.description = 'Ryb is a clean and extensible Ruby DSL for generating project files.'
|
13
|
+
s.license = 'Public Domain'
|
14
|
+
|
15
|
+
s.required_ruby_version = '>= 1.9.3'
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
# TODO(mtwilliams): Handle this gracefuly in `bin/ryb'.
|
21
|
+
s.require_paths = %w(lib)
|
22
|
+
|
23
|
+
s.add_dependency 'gli'
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ryb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0.dev
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Williams
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gli
|
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: Ryb is a clean and extensible Ruby DSL for generating project files.
|
28
|
+
email: m.t.williams@live.com
|
29
|
+
executables:
|
30
|
+
- ryb
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- Gemfile
|
35
|
+
- Gemfile.lock
|
36
|
+
- README.md
|
37
|
+
- Rakefile
|
38
|
+
- bin/ryb
|
39
|
+
- lib/ryb.rb
|
40
|
+
- lib/ryb/dsl.rb
|
41
|
+
- lib/ryb/toolsets.rb
|
42
|
+
- lib/ryb/version.rb
|
43
|
+
- ryb.gemspec
|
44
|
+
homepage: https://RubifyYourBuild.com/
|
45
|
+
licenses:
|
46
|
+
- Public Domain
|
47
|
+
metadata: {}
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.9.3
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.1
|
62
|
+
requirements: []
|
63
|
+
rubyforge_project:
|
64
|
+
rubygems_version: 2.4.8
|
65
|
+
signing_key:
|
66
|
+
specification_version: 4
|
67
|
+
summary: Rubify Your Build!
|
68
|
+
test_files: []
|
69
|
+
has_rdoc:
|