ruby-traveler 0.0.1
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/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/travel +28 -0
- data/lib/generators/project.rb +37 -0
- data/lib/ruby-traveler.rb +5 -0
- data/lib/ruby-traveler/version.rb +3 -0
- data/lib/templates/project/Gemfile.erb +7 -0
- data/lib/templates/project/Rakefile.erb +78 -0
- data/lib/templates/project/app.rb.erb +3 -0
- data/lib/templates/project/bundler-config.erb +3 -0
- data/lib/templates/project/wrapper.sh.erb +13 -0
- metadata +126 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5a96af732a35fc59869600cec67624e7e28a0393
|
4
|
+
data.tar.gz: f649bd8aca31b7c2745c6857690bbc8964c95f52
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a873546f84b2b33c59d3f0bb27ed3d7bafb36f68670f6ea51ec27e668d741007618d4d12027d9b2cf9df34b4576a5e82ed9b7fc1455ebd3e056a9ae9770c4a14
|
7
|
+
data.tar.gz: 35d4e2cd91c10809b5366f429e991bf9b89e1d4a1fe15983dd9fc17531ecf369f421867aba544911f105890df71f2bc8654fb6816893449c84412e35d61b351f
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "ruby-traveler"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/bin/travel
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../lib/ruby-traveler'
|
4
|
+
require_relative '../lib/generators/project'
|
5
|
+
|
6
|
+
module RubyTraveler
|
7
|
+
require 'thor'
|
8
|
+
|
9
|
+
class Cli < Thor
|
10
|
+
|
11
|
+
desc "version", "Show version info"
|
12
|
+
def version
|
13
|
+
puts "RubyTraveler - #{RubyTraveler::VERSION}"
|
14
|
+
end
|
15
|
+
|
16
|
+
register(Project, 'new', 'new NAME', 'Generate a new traveling ruby project.')
|
17
|
+
tasks["new"].options = Project.class_options
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def self.source_root
|
22
|
+
File.expand_path File.join(File.dirname(__FILE__), "../lib/templates/")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
RubyTraveler::Cli.start(ARGV)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module RubyTraveler
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
class Project < Thor::Group
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
argument :name, type: :string, desc: "Project name"
|
8
|
+
|
9
|
+
# class_option :platforms, type: :array, desc: "Build platforms", default: ['osx','linux-x86','linux-x86_64']
|
10
|
+
|
11
|
+
def vars
|
12
|
+
@name = name
|
13
|
+
end
|
14
|
+
|
15
|
+
def structure
|
16
|
+
empty_directory "#{@name}/packaging"
|
17
|
+
template "app.rb.erb", "#{@name}/lib/app/app.rb"
|
18
|
+
template "Rakefile.erb", "#{@name}/Rakefile"
|
19
|
+
template "Gemfile.erb", "#{@name}/Gemfile"
|
20
|
+
template "wrapper.sh.erb", "#{@name}/packaging/wrapper.sh"
|
21
|
+
template "bundler-config.erb", "#{@name}/packaging/bundler-config"
|
22
|
+
chmod "#{@name}/packaging/wrapper.sh", "+x"
|
23
|
+
end
|
24
|
+
|
25
|
+
def install
|
26
|
+
inside @name do
|
27
|
+
run "bundle"
|
28
|
+
run "rake package DIR_ONLY=1"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def self.source_root
|
34
|
+
File.expand_path File.join(File.dirname(__FILE__), "../templates/project/")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# For Bundler.with_clean_env
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
PACKAGE_NAME = "<%= @name %>"
|
5
|
+
VERSION = "1.0.0"
|
6
|
+
TRAVELING_RUBY_VERSION = "20150210-2.1.5"
|
7
|
+
|
8
|
+
desc "Package your app"
|
9
|
+
task :package => ['package:linux:x86', 'package:linux:x86_64', 'package:osx']
|
10
|
+
|
11
|
+
namespace :package do
|
12
|
+
namespace :linux do
|
13
|
+
desc "Package your app for Linux x86"
|
14
|
+
task :x86 => [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86.tar.gz"] do
|
15
|
+
create_package("linux-x86")
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Package your app for Linux x86_64"
|
19
|
+
task :x86_64 => [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86_64.tar.gz"] do
|
20
|
+
create_package("linux-x86_64")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "Package your app for OS X"
|
25
|
+
task :osx => [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-osx.tar.gz"] do
|
26
|
+
create_package("osx")
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "Install gems to local directory"
|
30
|
+
task :bundle_install do
|
31
|
+
if RUBY_VERSION !~ /^2\.1\./
|
32
|
+
abort "You can only 'bundle install' using Ruby 2.1, because that's what Traveling Ruby uses."
|
33
|
+
end
|
34
|
+
sh "rm -rf packaging/tmp"
|
35
|
+
sh "mkdir packaging/tmp"
|
36
|
+
sh "cp Gemfile Gemfile.lock packaging/tmp/"
|
37
|
+
Bundler.with_clean_env do
|
38
|
+
sh "cd packaging/tmp && env BUNDLE_IGNORE_CONFIG=1 bundle install --path ../vendor --without development"
|
39
|
+
end
|
40
|
+
sh "rm -rf packaging/tmp"
|
41
|
+
sh "rm -f packaging/vendor/*/*/cache/*"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86.tar.gz" do
|
46
|
+
download_runtime("linux-x86")
|
47
|
+
end
|
48
|
+
|
49
|
+
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86_64.tar.gz" do
|
50
|
+
download_runtime("linux-x86_64")
|
51
|
+
end
|
52
|
+
|
53
|
+
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-osx.tar.gz" do
|
54
|
+
download_runtime("osx")
|
55
|
+
end
|
56
|
+
|
57
|
+
def create_package(target)
|
58
|
+
package_dir = "#{PACKAGE_NAME}-#{VERSION}-#{target}"
|
59
|
+
sh "rm -rf #{package_dir}"
|
60
|
+
sh "mkdir #{package_dir}"
|
61
|
+
sh "cp -r lib #{package_dir}/"
|
62
|
+
sh "mkdir -p #{package_dir}/lib/ruby"
|
63
|
+
sh "tar -xzf packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-#{target}.tar.gz -C #{package_dir}/lib/ruby"
|
64
|
+
sh "cp packaging/wrapper.sh #{package_dir}/<%= @name %>"
|
65
|
+
sh "cp -pR packaging/vendor #{package_dir}/lib/"
|
66
|
+
sh "cp Gemfile Gemfile.lock #{package_dir}/lib/vendor/"
|
67
|
+
sh "mkdir #{package_dir}/lib/vendor/.bundle"
|
68
|
+
sh "cp packaging/bundler-config #{package_dir}/lib/vendor/.bundle/config"
|
69
|
+
if !ENV['DIR_ONLY']
|
70
|
+
sh "tar -czf #{package_dir}.tar.gz #{package_dir}"
|
71
|
+
sh "rm -rf #{package_dir}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def download_runtime(target)
|
76
|
+
url = "https://d6r77u77i8pq3.cloudfront.net/releases"
|
77
|
+
sh "cd packaging && curl -L -O --fail #{url}/traveling-ruby-#{TRAVELING_RUBY_VERSION}-#{target}.tar.gz"
|
78
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -e
|
3
|
+
|
4
|
+
# Figure out where this script is located.
|
5
|
+
SELFDIR="`dirname \"$0\"`"
|
6
|
+
SELFDIR="`cd \"$SELFDIR\" && pwd`"
|
7
|
+
|
8
|
+
# Tell Bundler where the Gemfile and gems are.
|
9
|
+
export BUNDLE_GEMFILE="$SELFDIR/lib/vendor/Gemfile"
|
10
|
+
unset BUNDLE_IGNORE_CONFIG
|
11
|
+
|
12
|
+
# Run the actual app using the bundled Ruby interpreter, with Bundler activated.
|
13
|
+
exec "$SELFDIR/lib/ruby/bin/ruby" -rbundler/setup "$SELFDIR/lib/app/app.rb"
|
metadata
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-traveler
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alex Clink
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activesupport
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.2'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thor
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.19.1
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.19.1
|
83
|
+
description: Generates the scaffolding for a new traveling ruby project
|
84
|
+
email:
|
85
|
+
- code@alexclink.com
|
86
|
+
executables:
|
87
|
+
- travel
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- bin/console
|
92
|
+
- bin/setup
|
93
|
+
- bin/travel
|
94
|
+
- lib/generators/project.rb
|
95
|
+
- lib/ruby-traveler.rb
|
96
|
+
- lib/ruby-traveler/version.rb
|
97
|
+
- lib/templates/project/Gemfile.erb
|
98
|
+
- lib/templates/project/Rakefile.erb
|
99
|
+
- lib/templates/project/app.rb.erb
|
100
|
+
- lib/templates/project/bundler-config.erb
|
101
|
+
- lib/templates/project/wrapper.sh.erb
|
102
|
+
homepage:
|
103
|
+
licenses:
|
104
|
+
- MIT
|
105
|
+
metadata: {}
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options: []
|
108
|
+
require_paths:
|
109
|
+
- lib
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
requirements: []
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 2.4.8
|
123
|
+
signing_key:
|
124
|
+
specification_version: 4
|
125
|
+
summary: Traveling ruby project generator
|
126
|
+
test_files: []
|