planaria 0.0.4 → 0.0.5

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: c8e410a2fc4cb3e81d017a2f853df33a04375825
4
- data.tar.gz: 6d60e6b9a33f914b915d80aae2eb956578b1f58d
3
+ metadata.gz: ee21fb03ef5f699dfed302b64f906d0fc062fc79
4
+ data.tar.gz: e7b2dc4378037d6e9a3ab09d5f15cb015eace1a6
5
5
  SHA512:
6
- metadata.gz: 1bf9efc49b91b40f7b5cd7edd8e0c3794389b5c2ee54c6e1de471e2e537d143c8525017710160433c4c962132c1e93437be30fe2365411a8302ece1615937cda
7
- data.tar.gz: 7e8a3b48a010ea38cb998a938dd05f5ae3b3fea2ac73b8f35c2d71b89d0af5de5b95d86fba4172692bc259c461cf294669fbf9190155378f346cfababc21fdfa
6
+ metadata.gz: 46a4319b100c0113fc54b6b67bbb354c30e59d3efb8ac5d785acc22b2b1a9d77991cf757cc07d9414e1b2350933668ccbf183b37874938ebb864bbb932aa0ec4
7
+ data.tar.gz: 3eff8094ffde8170e45edff92c4ac5d7226a942b73a47bcbdfe03cffc094683c42ad5bde577541d75b992d47626a42b8192a8c562490e093cf6592133fc22ad3
data/lib/planaria/cli.rb CHANGED
@@ -4,13 +4,13 @@ module Planaria
4
4
  desc "init", "Create new template directories."
5
5
  option :name, type: :string, aliases: '-n', required: true
6
6
  def init
7
- Generator::Initializer.new(options[:name]).run
7
+ Generator::Initializer::Runner.new(options[:name]).run
8
8
  end
9
9
 
10
10
  desc "build", "Create template."
11
11
  option :name, type: :string, aliases: '-n', required: true
12
12
  def build
13
- Generator::Builder.new(options[:name]).run
13
+ Generator::Builder::Runner.new(options[:name]).run
14
14
  end
15
15
  end
16
16
  end
File without changes
@@ -0,0 +1,34 @@
1
+ module Planaria::Generator
2
+ module Builder
3
+ class Executer
4
+ def initialize(name)
5
+ @name = name
6
+ end
7
+
8
+ def run
9
+ yaml_files.each do |yml|
10
+ file_name = yml.split("/").last.split(".").first
11
+ yaml = ::YAML.load(File.read yml)
12
+
13
+ yaml.each do |k, v|
14
+ instance_variable_set("@#{k}", v)
15
+ end
16
+
17
+ ::File.open "./#{@name}/#{file_name}.html", "w" do |file|
18
+ file.write erb.result(binding)
19
+ end
20
+ end
21
+ end
22
+
23
+ def yaml_files
24
+ ::Dir.glob "./#{@name}/yamls/*.yml"
25
+ end
26
+
27
+ private
28
+
29
+ def erb
30
+ ::ERB.new(File.read "./#{@name}/html/index.html.erb")
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ module Planaria::Generator
2
+ module Builder
3
+ class Message
4
+ def initialize(name)
5
+ @name = name
6
+ @executer = Executer.new(name)
7
+ end
8
+
9
+ def run
10
+ @executer.yaml_files.each do |file|
11
+ puts "Generate #{@name}/#{file.split("/").last.split(".").first}.html"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,24 @@
1
+ module Planaria::Generator
2
+ module Builder
3
+ class Runner
4
+ def initialize(name)
5
+ @name = name
6
+ end
7
+
8
+ def run
9
+ execute
10
+ message
11
+ end
12
+
13
+ private
14
+
15
+ def execute
16
+ Executer.new(@name).run
17
+ end
18
+
19
+ def message
20
+ Message.new(@name).run
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ class Planaria::StopInitializer < StandardError; end
2
+
3
+ module Planaria::Generator
4
+ module Initializer
5
+ class Checker
6
+ def initialize(name)
7
+ @name = name
8
+ end
9
+
10
+ def run
11
+ check if Dir.exist?("./#{@name}")
12
+ end
13
+
14
+ private
15
+
16
+ def check
17
+ puts "#{@name} directory is already exist. Overwrite? (type Y/n)"
18
+ input = STDIN.gets.chomp
19
+
20
+ if input.to_s == "Y"
21
+ FileUtils.rm_rf "./#{@name}"
22
+ else
23
+ raise ::Planaria::StopInitializer
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,52 @@
1
+ module Planaria::Generator
2
+ module Initializer
3
+ class Executer
4
+ def initialize(name)
5
+ @name = name
6
+ end
7
+
8
+ def run
9
+ create_directories
10
+ create_files
11
+ write_files
12
+ end
13
+
14
+ private
15
+
16
+ def mkdir(path)
17
+ FileUtils.mkdir_p("#{path}")
18
+ end
19
+
20
+ def create_directories
21
+ mkdir "./#{@name}"
22
+ mkdir "./#{@name}/html"
23
+ mkdir "./#{@name}/css"
24
+ mkdir "./#{@name}/js"
25
+ mkdir "./#{@name}/img"
26
+ mkdir "./#{@name}/yamls"
27
+ end
28
+
29
+ def create_files
30
+ FileUtils.touch("./#{@name}/css/#{@name}.css")
31
+ FileUtils.touch("./#{@name}/js/#{@name}.js")
32
+ end
33
+
34
+ def write_files
35
+ write_template
36
+ write_yaml
37
+ end
38
+
39
+ def write_template
40
+ ::File.open "./#{@name}/html/index.html.erb", "w" do |file|
41
+ file.write(::Planaria::Templates::Html.index @name)
42
+ end
43
+ end
44
+
45
+ def write_yaml
46
+ ::File.open "./#{@name}/yamls/base.yml", "w" do |file|
47
+ file.write(::Planaria::Templates::Yaml.default @name)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,14 @@
1
+ module Planaria::Generator
2
+ module Initializer
3
+ class Message
4
+ def initialize(name)
5
+ @name = name
6
+ end
7
+
8
+ def run
9
+ puts "Create #{@name} project"
10
+ Planaria::Utils.tree "./#{@name}"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ module Planaria::Generator
2
+ module Initializer
3
+ class Runner
4
+ def initialize(name)
5
+ @name = name
6
+ end
7
+
8
+ def run
9
+ check
10
+ execute
11
+ message
12
+ rescue ::Planaria::StopInitializer
13
+ puts "Stop generate."
14
+ end
15
+
16
+ private
17
+
18
+ def check
19
+ Checker.new(@name).run
20
+ end
21
+
22
+ def execute
23
+ Executer.new(@name).run
24
+ end
25
+
26
+ def message
27
+ Message.new(@name).run
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ module Planaria
2
+ class Utils
3
+ def self.tree(path, pre = nil)
4
+ unless pre
5
+ puts path
6
+ pre = " "
7
+ end
8
+
9
+ directories = Dir.entries(path).reject { |d| d == "." or d == ".." }.sort
10
+
11
+ directories.each do |dir|
12
+ last = dir if dir == directories.last
13
+
14
+ if FileTest.directory?(File.join(path, dir))
15
+ path_dir = File.join(path, dir)
16
+ puts "#{pre}+--#{dir}"
17
+ tree path_dir, pre + (last ? " " : "| ")
18
+ else
19
+ puts pre + (last ? "`" : "|") + "--" + dir
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module Planaria
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/planaria.rb CHANGED
@@ -5,7 +5,15 @@ require "fileutils"
5
5
  require "erb"
6
6
 
7
7
  require "planaria/cli"
8
- require "planaria/generator/initializer"
9
- require "planaria/generator/builder"
8
+ require "planaria/utils"
9
+ require "planaria/generator/initializer/runner"
10
+ require "planaria/generator/initializer/checker"
11
+ require "planaria/generator/initializer/executer"
12
+ require "planaria/generator/initializer/message"
13
+ require "planaria/generator/builder/runner"
14
+ # require "planaria/generator/builder/checker"
15
+ require "planaria/generator/builder/executer"
16
+ require "planaria/generator/builder/message"
17
+
10
18
  require "planaria/templates/html"
11
19
  require "planaria/templates/yaml"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: planaria
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - onigra
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-16 00:00:00.000000000 Z
11
+ date: 2015-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -143,10 +143,17 @@ files:
143
143
  - exe/pln
144
144
  - lib/planaria.rb
145
145
  - lib/planaria/cli.rb
146
- - lib/planaria/generator/builder.rb
147
- - lib/planaria/generator/initializer.rb
146
+ - lib/planaria/generator/builder/checker.rb
147
+ - lib/planaria/generator/builder/executer.rb
148
+ - lib/planaria/generator/builder/message.rb
149
+ - lib/planaria/generator/builder/runner.rb
150
+ - lib/planaria/generator/initializer/checker.rb
151
+ - lib/planaria/generator/initializer/executer.rb
152
+ - lib/planaria/generator/initializer/message.rb
153
+ - lib/planaria/generator/initializer/runner.rb
148
154
  - lib/planaria/templates/html.rb
149
155
  - lib/planaria/templates/yaml.rb
156
+ - lib/planaria/utils.rb
150
157
  - lib/planaria/version.rb
151
158
  - planaria.gemspec
152
159
  - sample/config.yml
@@ -1,27 +0,0 @@
1
- module Planaria::Generator
2
- class Builder
3
- def initialize(name)
4
- @name = name
5
- end
6
-
7
- def run
8
- yaml_files.each do |yml|
9
- erb = ::ERB.new(File.read "./#{@name}/html/index.html.erb")
10
- file_name = yml.split("/").last.split(".").first
11
- yaml = ::YAML.load(File.read yml)
12
-
13
- yaml.each do |k, v|
14
- instance_variable_set("@#{k}", v)
15
- end
16
-
17
- ::File.open "./#{@name}/#{file_name}.html", "w" do |file|
18
- file.write erb.result(binding)
19
- end
20
- end
21
- end
22
-
23
- def yaml_files
24
- Dir.glob "./#{@name}/yamls/*.yml"
25
- end
26
- end
27
- end
@@ -1,43 +0,0 @@
1
- module Planaria::Generator
2
- class Initializer
3
- def initialize(name)
4
- @name = name
5
- end
6
-
7
- def run
8
- create_directories
9
- create_files
10
- write_files
11
- end
12
-
13
- private
14
-
15
- def mkdir(path)
16
- FileUtils.mkdir_p("#{path}")
17
- end
18
-
19
- def create_directories
20
- mkdir "./#{@name}"
21
- mkdir "./#{@name}/html"
22
- mkdir "./#{@name}/css"
23
- mkdir "./#{@name}/js"
24
- mkdir "./#{@name}/img"
25
- mkdir "./#{@name}/yamls"
26
- end
27
-
28
- def create_files
29
- FileUtils.touch("./#{@name}/css/#{@name}.css")
30
- FileUtils.touch("./#{@name}/js/#{@name}.js")
31
- end
32
-
33
- def write_files
34
- ::File.open "./#{@name}/html/index.html.erb", "w" do |file|
35
- file.write(::Planaria::Templates::Html.index @name)
36
- end
37
-
38
- ::File.open "./#{@name}/yamls/base.yml", "w" do |file|
39
- file.write(::Planaria::Templates::Yaml.default @name)
40
- end
41
- end
42
- end
43
- end