crafti 0.0.1 → 0.0.12

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 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)