xing-framework 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/xing +8 -0
- data/lib/xing.rb +4 -0
- data/lib/xing/cli.rb +55 -0
- data/lib/xing/cli/generators.rb +1 -0
- data/lib/xing/cli/generators/new_project.rb +30 -0
- data/spec/null_spec.rb +7 -0
- data/spec_help/gem_test_suite.rb +17 -0
- data/spec_help/spec_helper.rb +23 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: addc27df560e0f0aed4ccfe54fa7840a6a4af6d0
|
4
|
+
data.tar.gz: d395393a30e21f2a1125c8f868c14f551e4d6ba9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 60304c5cc7a007f7e90c2a6eefe5d875bea53134870fd92870432179f3b3e31455eeec8d55ef77e6f9001d8c1df30452f19bde2b61188902eff3278edf5f6865
|
7
|
+
data.tar.gz: 8d662f73c833321248963beb49c828beffec7ac3623ffc68092a6c673ae81d3474b20773bd0a0a6bdb72eec14b84909a0581c6c11437613cf41f6cc3f213a209
|
data/bin/xing
ADDED
data/lib/xing.rb
ADDED
data/lib/xing/cli.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'byebug'
|
2
|
+
|
3
|
+
module Xing
|
4
|
+
class CLI
|
5
|
+
SUPPORTED_VERBS = %w{new}
|
6
|
+
#SUPPORTED_VERBS = %w{new scaffold}
|
7
|
+
require 'trollop'
|
8
|
+
|
9
|
+
BANNER = <<-EOS
|
10
|
+
Xing Framework new project and code generator. See http://github.com/XingFramework/xing-framework for platform info.
|
11
|
+
|
12
|
+
Usage:
|
13
|
+
xing [options] <command> [command options]
|
14
|
+
|
15
|
+
Supported commands currently include: #{SUPPORTED_VERBS.join(", ")}
|
16
|
+
|
17
|
+
Examples:
|
18
|
+
xing new fabulous # Generates a new Xing Framework project called 'fabulous'
|
19
|
+
|
20
|
+
Global Options:
|
21
|
+
EOS
|
22
|
+
|
23
|
+
def handle_cli
|
24
|
+
Trollop::options do
|
25
|
+
banner BANNER
|
26
|
+
framework_version =
|
27
|
+
begin
|
28
|
+
Gem::Specification.find_by_name("xing-framework").version
|
29
|
+
rescue Gem::LoadError
|
30
|
+
"<developement-version>"
|
31
|
+
end
|
32
|
+
version "Xing CLI #{framework_version} (c) 2015 Logical Reality Design, Inc."
|
33
|
+
stop_on SUPPORTED_VERBS
|
34
|
+
end
|
35
|
+
|
36
|
+
command = ARGV.shift
|
37
|
+
case command
|
38
|
+
when 'new'
|
39
|
+
opts = Trollop::options do
|
40
|
+
opt :cms, "Include content management architecture. (coming soon)"
|
41
|
+
stop_on ['name']
|
42
|
+
end
|
43
|
+
name = ARGV.shift
|
44
|
+
Trollop::die "Please specify a project name with 'xing new <name>'" unless name
|
45
|
+
Trollop::die "The CMS option is not yet implemented." if opts[:cms]
|
46
|
+
Xing::CLI::Generators::NewProject.new.generate(opts.merge({:name => name}))
|
47
|
+
else
|
48
|
+
Trollop::die "Unknown command. Supported commands are [" + SUPPORTED_VERBS.join(" ") + "]"
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
require 'xing/cli/generators'
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'xing/cli/generators/new_project'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'caliph'
|
2
|
+
|
3
|
+
module Xing::CLI::Generators
|
4
|
+
class NewProject
|
5
|
+
include Caliph::CommandLineDSL
|
6
|
+
|
7
|
+
BASE_PROJECT_URL = "git@github.com:XingFramework/xing-application-base.git"
|
8
|
+
|
9
|
+
# For the moment, this is the simplest thing that can work. Zero templating is done
|
10
|
+
# so the project will still have the default module names etc.
|
11
|
+
def generate(options)
|
12
|
+
shell = Caliph.new()
|
13
|
+
command = cmd('git', 'clone', '--depth=1', '--branch=master', BASE_PROJECT_URL, options[:name])
|
14
|
+
result = shell.run(command)
|
15
|
+
|
16
|
+
if result.succeeded?
|
17
|
+
remove_git_directory(options[:name], shell)
|
18
|
+
else
|
19
|
+
raise "Attempt to clone base git repository failed!"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_git_directory(name, shell)
|
24
|
+
git_dir = File.join("#{name}", ".git")
|
25
|
+
if File.exists?(git_dir)
|
26
|
+
shell.run(cmd('rm -rf', git_dir))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/null_spec.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
puts Dir::pwd
|
2
|
+
require 'test/unit'
|
3
|
+
begin
|
4
|
+
require 'spec'
|
5
|
+
rescue LoadError
|
6
|
+
false
|
7
|
+
end
|
8
|
+
|
9
|
+
class RSpecTest < Test::Unit::TestCase
|
10
|
+
def test_that_rspec_is_available
|
11
|
+
assert_nothing_raised("\n\n * RSpec isn't available - please run: gem install rspec *\n\n"){ ::Spec }
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_that_specs_pass
|
15
|
+
assert(system(*%w{spec -f e -p **/*.rb spec}),"\n\n * Specs failed *\n\n")
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'codeclimate-test-reporter'
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
SimpleCov.start
|
4
|
+
|
5
|
+
require 'rspec'
|
6
|
+
require 'rspec/core/formatters/base_formatter'
|
7
|
+
require 'cadre/rspec3'
|
8
|
+
|
9
|
+
ENV["RAILS_ENV"] ||= 'test'
|
10
|
+
|
11
|
+
|
12
|
+
ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
|
13
|
+
Dir[File.join(ENGINE_RAILS_ROOT, "spec_help/support/**/*.rb")].each {|f| require f }
|
14
|
+
|
15
|
+
RSpec.configure do |config|
|
16
|
+
config.run_all_when_everything_filtered = true
|
17
|
+
config.add_formatter(Cadre::RSpec3::NotifyOnCompleteFormatter)
|
18
|
+
config.add_formatter(Cadre::RSpec3::QuickfixFormatter)
|
19
|
+
|
20
|
+
config.around(:type => :deprecation) do |example|
|
21
|
+
ActiveSupport::Deprecation.silence(&example)
|
22
|
+
end
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xing-framework
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Evan Dorn
|
8
|
+
- Judson Lester
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-10-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: trollop
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 2.1.0
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.1.0
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: caliph
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.3.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.3.0
|
42
|
+
description: |2
|
43
|
+
The Xing Framework is a hypermedia-enabled Rails + AngularJS web and mobile development platform.
|
44
|
+
This gem contains the generator for initializing a new Xing project.
|
45
|
+
email:
|
46
|
+
- evan@lrdesign.com
|
47
|
+
- judson@lrdesign.com
|
48
|
+
executables:
|
49
|
+
- xing
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- bin/xing
|
54
|
+
- lib/xing.rb
|
55
|
+
- lib/xing/cli.rb
|
56
|
+
- lib/xing/cli/generators.rb
|
57
|
+
- lib/xing/cli/generators/new_project.rb
|
58
|
+
- spec/null_spec.rb
|
59
|
+
- spec_help/gem_test_suite.rb
|
60
|
+
- spec_help/spec_helper.rb
|
61
|
+
homepage: ''
|
62
|
+
licenses:
|
63
|
+
- MIT
|
64
|
+
metadata: {}
|
65
|
+
post_install_message: Welcome to the exciting new world of Xing web development!
|
66
|
+
rdoc_options:
|
67
|
+
- "--inline-source"
|
68
|
+
- "--main"
|
69
|
+
- doc/README
|
70
|
+
- "--title"
|
71
|
+
- xing-framework-0.0.1 Documentation
|
72
|
+
require_paths:
|
73
|
+
- lib/
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project: xing-framework
|
86
|
+
rubygems_version: 2.4.8
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Code generator tools for the Xing Framework.
|
90
|
+
test_files:
|
91
|
+
- spec_help/gem_test_suite.rb
|