crafti 0.0.1 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8299ece2f642e270e5b6c4b01439c77588fc809a
4
- data.tar.gz: 604abfbcf1bb50eb6ed5c97b97a59a2133d67fbd
3
+ metadata.gz: 22c3ba1c7923cb40af5cebe34396d0a0a7ccb9c2
4
+ data.tar.gz: 99c8e9dc8640937722e6670201415e78488a3646
5
5
  SHA512:
6
- metadata.gz: 948efff771bb9bf32ba10f6e9aa07b86248df6f0136b2612231dfc08fb371cf4bc2aa09baadfe3fc59b56a5abb62907df7edaac4faf8f1615e58901aadae496f
7
- data.tar.gz: 8ef0627c439ab35a87e23e2c989d3678348960e803f900d706909478738f29f556f846763967710ad1ed20b315b3b0834f3c0e194693de6b56e78325a1c1931b
6
+ metadata.gz: 540cc1b56feb6ee3b42813ac1e6c2539ef8ae18e05f40c335e79516802d46526c0ae7e10eacee6dcebcdc1c737dd5766ab3101c93397fb1629cf7ee4574d1346
7
+ data.tar.gz: 62bb4ed855af1b8e26db6ecd73afcb3e5ef6e9fde4f615e4ee4e77bc373211f18efa2d8615eebac176c1ae0ccff1d1379d492859a0a106a8b802e20c12877cde
data/bin/crafti ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'crafti'
5
+
6
+ options = Crafti::CLI.parse(ARGV)
7
+ if options.event == "generate"
8
+ Crafti::FileReader.new(options.template_path).evaluate
9
+ else
10
+ puts "That command is not supported."
11
+ exit
12
+ end
@@ -1,11 +1,11 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'craft/version'
4
+ require 'crafti/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "crafti"
8
- spec.version = Craft.version
8
+ spec.version = Crafti.version
9
9
  spec.authors = ["Robert Evans"]
10
10
  spec.email = ["robert@codewranglers.org"]
11
11
  spec.summary = %q{Generate directories and files with/out templates.}
data/lib/crafti/cli.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'ostruct'
2
+ require 'optparse'
3
+
4
+ module Crafti
5
+ class CLI
6
+ def self.parse(args)
7
+ options = OpenStruct.new
8
+ options.event = args.reverse.pop
9
+
10
+ opt_parser = OptionParser.new do |opts|
11
+ opts.banner = "Usage: crafti generate -m ~/path/to/template.rb"
12
+ opts.separator ""
13
+
14
+ opts.on("-m", "--template", "Path to the application template") do |template|
15
+ options.template_path = template
16
+ end
17
+
18
+ opts.on_tail("-h", "--help", "Help message") do
19
+ puts opts
20
+ exit
21
+ end
22
+
23
+ opts.on_tail("-v", "--version", "Show version number") do
24
+ puts "Crafti Version #{Crafti.version}"
25
+ exit
26
+ end
27
+ end
28
+
29
+ opt_parser.parse!(args)
30
+ options
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,3 @@
1
+ require_relative '../crafti'
2
+
3
+ Kernel.extend(Crafti::KernelExtension)
@@ -1,11 +1,11 @@
1
- module Craft
1
+ module Crafti
2
2
  MAJOR = 0
3
3
  MINOR = 0
4
- PATCH = 1
4
+ PATCH = 12
5
5
 
6
6
  def self.version
7
7
  [
8
8
  MAJOR, MINOR, PATCH
9
9
  ].join('.')
10
10
  end
11
- end
11
+ end
@@ -1,16 +1,17 @@
1
- require "craft/version"
1
+ require "crafti/version"
2
+ require "crafti/cli"
2
3
 
3
4
  require 'fileutils'
4
5
  require 'pathname'
5
6
  require 'erb'
6
7
  require 'ostruct'
7
8
 
8
- module Craft
9
+ module Crafti
9
10
  module KernelExtension
10
11
  def self.extended(mod)
11
12
  mod.module_eval do
12
13
  def root(name, &block)
13
- ::Craft::Root.root(name, &block)
14
+ ::Crafti::Root.root(name, &block)
14
15
  end
15
16
  end
16
17
  end
@@ -82,6 +83,28 @@ module Craft
82
83
  end
83
84
  end
84
85
 
86
+ class FileReader
87
+ def self.read(file)
88
+ app = new(file)
89
+ end
90
+
91
+ attr_reader :content
92
+ def initialize(file)
93
+ @content = ::Pathname.new(file).expand_path.read
94
+ end
95
+
96
+ def evaluate
97
+ klass = Class.new do
98
+ Kernel.extend(Crafti::KernelExtension)
99
+ def self.execute(string)
100
+ eval string
101
+ end
102
+ end
103
+
104
+ klass.execute(content)
105
+ end
106
+ end
107
+
85
108
  class Root
86
109
  include FileUtilsExtension
87
110
 
@@ -107,4 +130,4 @@ module Craft
107
130
  end
108
131
 
109
132
  end
110
- end
133
+ end
@@ -0,0 +1,24 @@
1
+ require 'test_helper'
2
+ require_relative '../../lib/crafti'
3
+
4
+ CONTENT = <<-RUBY
5
+ root "appname" do
6
+ mkdir "log"
7
+ mkdir "test"
8
+ mkdir "config"
9
+ touch "Rakefile"
10
+ touch "Guardfile"
11
+ touch "test/test_helper.rb"
12
+ end
13
+ RUBY
14
+
15
+ class DSLTest < Minitest::Test
16
+ def test_file_evaluation
17
+ file = Crafti::FileReader.new(CONTENT)
18
+ file.evaluate
19
+
20
+ assert File.exists?("appname")
21
+ FileUtils.rm_rf("appname")
22
+ refute File.exists?("appname")
23
+ end
24
+ end
@@ -1,12 +1,12 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/pride'
3
3
 
4
- require_relative '../lib/craft'
4
+ require_relative '../lib/crafti'
5
5
 
6
- module Craft
6
+ module Crafti
7
7
  class RootTest < ::Minitest::Test
8
8
  def test_create_root_directory
9
- ::Craft::Root.root("appname")
9
+ ::Crafti::Root.root("appname")
10
10
 
11
11
  assert ::File.exists?("appname")
12
12
 
@@ -15,7 +15,7 @@ module Craft
15
15
  end
16
16
 
17
17
  def test_creating_subdirectories
18
- ::Craft::Root.root("appname") do
18
+ ::Crafti::Root.root("appname") do
19
19
  mkdir "config"
20
20
  mkdir "log"
21
21
  mkdir "test"
@@ -31,7 +31,7 @@ module Craft
31
31
  end
32
32
 
33
33
  def test_creating_multiple_subdirectories
34
- ::Craft::Root.root("appname") do
34
+ ::Crafti::Root.root("appname") do
35
35
  mkdirs "config", "log", "test", mode: 0700
36
36
  end
37
37
 
@@ -45,7 +45,7 @@ module Craft
45
45
  end
46
46
 
47
47
  def test_touching_a_file
48
- ::Craft::Root.root("appname") do
48
+ ::Crafti::Root.root("appname") do
49
49
  touch "Readme.mkd"
50
50
  end
51
51
 
@@ -57,7 +57,7 @@ module Craft
57
57
  end
58
58
 
59
59
  def test_touching_files
60
- ::Craft::Root.root("appname") do
60
+ ::Crafti::Root.root("appname") do
61
61
  touch "Readme.mkd", "Rakefile", "Guardfile"
62
62
  end
63
63
 
@@ -71,7 +71,7 @@ module Craft
71
71
  end
72
72
 
73
73
  def test_copying_files
74
- ::Craft::Root.root("appname") do
74
+ ::Crafti::Root.root("appname") do
75
75
  mkdir "test"
76
76
  copy Pathname.new(__dir__).join("test_helper.rb"), "test"
77
77
  end
@@ -85,7 +85,7 @@ module Craft
85
85
  end
86
86
 
87
87
  def test_chmod
88
- ::Craft::Root.root("appname") do
88
+ ::Crafti::Root.root("appname") do
89
89
  mkdir "test"
90
90
  copy ::Pathname.new(__dir__).join("test_helper.rb"), "test"
91
91
  chmod 0777, "test/test_helper.rb"
@@ -104,7 +104,7 @@ module Craft
104
104
  end
105
105
 
106
106
  def test_chmod_r
107
- ::Craft::Root.root("appname") do
107
+ ::Crafti::Root.root("appname") do
108
108
  mkdir "test"
109
109
  copy ::Pathname.new(__dir__).join("test_helper.rb"), "test"
110
110
  chmod_r 0777, "test"
@@ -123,7 +123,7 @@ module Craft
123
123
  end
124
124
 
125
125
  def test_run
126
- ::Craft::Root.root("appname") do
126
+ ::Crafti::Root.root("appname") do
127
127
  run "mkdir foobar"
128
128
  end
129
129
 
@@ -138,7 +138,7 @@ module Craft
138
138
  # I'm keeping this here though, so we can test it when we want to.
139
139
  #
140
140
  # def test_sudo
141
- # ::Craft::Root.root("appname") do
141
+ # ::Crafti::Root.root("appname") do
142
142
  # sudo "echo 'RACK_ENV=development' > .env"
143
143
  # end
144
144
 
@@ -151,7 +151,7 @@ module Craft
151
151
  # end
152
152
 
153
153
  def test_template
154
- ::Craft::Root.root("appname") do
154
+ ::Crafti::Root.root("appname") do
155
155
  mkdir "test"
156
156
  template "test/test_helper.rb",
157
157
  ::Pathname.new(__dir__).
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crafti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2014-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,7 +56,7 @@ description: Generate directories and files with/out templates.
56
56
  email:
57
57
  - robert@codewranglers.org
58
58
  executables:
59
- - craft
59
+ - crafti
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
@@ -65,14 +65,16 @@ files:
65
65
  - LICENSE.txt
66
66
  - README.md
67
67
  - Rakefile
68
- - bin/craft
69
- - craft.gemspec
70
- - lib/craft.rb
71
- - lib/craft/project.rb
72
- - lib/craft/version.rb
68
+ - bin/crafti
69
+ - crafti.gemspec
70
+ - lib/crafti.rb
71
+ - lib/crafti/cli.rb
72
+ - lib/crafti/project.rb
73
+ - lib/crafti/version.rb
73
74
  - spike.rb
75
+ - test/assets/dsl_test.rb
74
76
  - test/assets/test_helper.rb.erb
75
- - test/craft_test.rb
77
+ - test/crafti_test.rb
76
78
  - test/test_helper.rb
77
79
  homepage: ''
78
80
  licenses:
@@ -99,6 +101,7 @@ signing_key:
99
101
  specification_version: 4
100
102
  summary: Generate directories and files with/out templates.
101
103
  test_files:
104
+ - test/assets/dsl_test.rb
102
105
  - test/assets/test_helper.rb.erb
103
- - test/craft_test.rb
106
+ - test/crafti_test.rb
104
107
  - test/test_helper.rb
data/bin/craft DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # require 'rubygems'
4
- # require 'craft'
5
-
6
- case ARGV.first
7
- when "template"
8
- # generate a root app_template
9
- else
10
- puts "That command is not supported."
11
- end
data/lib/craft/project.rb DELETED
@@ -1,3 +0,0 @@
1
- require_relative '../craft'
2
-
3
- Kernel.extend(Craft::KernelExtension)