planaria 0.0.5 → 1.0.0

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: ee21fb03ef5f699dfed302b64f906d0fc062fc79
4
- data.tar.gz: e7b2dc4378037d6e9a3ab09d5f15cb015eace1a6
3
+ metadata.gz: 49519b1d3c6430dfe60a6e0a13254a86c7947dd2
4
+ data.tar.gz: 60c94d086775507ad227639ea8a426f89cbd0991
5
5
  SHA512:
6
- metadata.gz: 46a4319b100c0113fc54b6b67bbb354c30e59d3efb8ac5d785acc22b2b1a9d77991cf757cc07d9414e1b2350933668ccbf183b37874938ebb864bbb932aa0ec4
7
- data.tar.gz: 3eff8094ffde8170e45edff92c4ac5d7226a942b73a47bcbdfe03cffc094683c42ad5bde577541d75b992d47626a42b8192a8c562490e093cf6592133fc22ad3
6
+ metadata.gz: eebd5ea77c5a0fba8ef659f6c97c1923b93611924270082ac622f7fe2478de9229a925111366b14a1e34e3c3eb06547e2f579361e16978206b09d4f1796e27fc
7
+ data.tar.gz: e4c587ec1202e5986b5917490d6d2c71511b340fbf826c2e4088a8fae48a99d73aaf44fc2f075f79911d042326ec848a23df89dd06dbd1a72ee3b8da1f3b60a5
data/lib/planaria/cli.rb CHANGED
@@ -1,16 +1,23 @@
1
1
  module Planaria
2
2
  class CLI < Thor
3
3
 
4
- desc "init", "Create new template directories."
4
+ desc "init", "Create new template directories"
5
5
  option :name, type: :string, aliases: '-n', required: true
6
6
  def init
7
7
  Generator::Initializer::Runner.new(options[:name]).run
8
8
  end
9
9
 
10
- desc "build", "Create template."
10
+ desc "build", "Create template"
11
11
  option :name, type: :string, aliases: '-n', required: true
12
12
  def build
13
13
  Generator::Builder::Runner.new(options[:name]).run
14
14
  end
15
+
16
+ desc "divide", "Divide project"
17
+ option :name, type: :string, aliases: '-n', required: true
18
+ option :base, type: :string, aliases: '-b', required: true
19
+ def divide
20
+ Generator::Divide::Runner.new(options[:name], options[:base]).run
21
+ end
15
22
  end
16
23
  end
@@ -0,0 +1,15 @@
1
+ class Planaria::BuildProjectNotFound < StandardError; end
2
+
3
+ module Planaria::Generator
4
+ module Builder
5
+ class Checker
6
+ def initialize(name)
7
+ @name = name
8
+ end
9
+
10
+ def run
11
+ raise ::Planaria::BuildProjectNotFound unless Dir.exist?("./#{@name}")
12
+ end
13
+ end
14
+ end
15
+ end
@@ -6,12 +6,19 @@ module Planaria::Generator
6
6
  end
7
7
 
8
8
  def run
9
+ check
9
10
  execute
10
11
  message
12
+ rescue ::Planaria::BuildProjectNotFound
13
+ puts "#{@name} not found"
11
14
  end
12
15
 
13
16
  private
14
17
 
18
+ def check
19
+ Checker.new(@name).run
20
+ end
21
+
15
22
  def execute
16
23
  Executer.new(@name).run
17
24
  end
@@ -0,0 +1,35 @@
1
+ class Planaria::StopDivide < StandardError; end
2
+ class Planaria::BaseProjectNotFound < StandardError; end
3
+
4
+ module Planaria::Generator
5
+ module Divide
6
+ class Checker
7
+ def initialize(name, base)
8
+ @name = name
9
+ @base = base
10
+ end
11
+
12
+ def run
13
+ base_check
14
+ check if Dir.exist?("./#{@name}")
15
+ end
16
+
17
+ def base_check
18
+ raise ::Planaria::BaseProjectNotFound unless Dir.exist?("./#{@base}")
19
+ end
20
+
21
+ private
22
+
23
+ def check
24
+ puts "#{@name} directory is already exist. Overwrite? (type Y/n)"
25
+ input = STDIN.gets.chomp
26
+
27
+ if input.to_s == "Y"
28
+ FileUtils.rm_rf "./#{@name}"
29
+ else
30
+ raise ::Planaria::StopDivide
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ module Planaria::Generator
2
+ module Divide
3
+ class Executer
4
+ include ::Planaria::Utils
5
+
6
+ def initialize(name, base)
7
+ @name = name
8
+ @base = base
9
+ end
10
+
11
+ def run
12
+ create_directories
13
+ copy_static_files
14
+ copy_yamls
15
+ end
16
+
17
+ private
18
+
19
+ def copy_static_files
20
+ FileUtils.copy_file("./#{@base}/html/index.html.erb", "./#{@name}/html/index.html.erb")
21
+ FileUtils.copy_file("./#{@base}/css/#{@base}.css","./#{@name}/css/#{@name}.css")
22
+ FileUtils.copy_file("./#{@base}/js/#{@base}.js", "./#{@name}/js/#{@name}.js")
23
+ end
24
+
25
+ def copy_yamls
26
+ FileUtils.cp(Dir.glob("./#{@base}/yamls/*.yml"), "./#{@name}/yamls/")
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ module Planaria::Generator
2
+ module Divide
3
+ class Message
4
+ def initialize(name, base)
5
+ @name = name
6
+ @base = base
7
+ end
8
+
9
+ def run
10
+ puts "Divide #{@name} project from #{@base}"
11
+ Planaria::Utils.tree "./#{@name}"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ module Planaria::Generator
2
+ module Divide
3
+ class Runner
4
+ def initialize(name, base)
5
+ @name = name
6
+ @base = base
7
+ end
8
+
9
+ def run
10
+ check
11
+ execute
12
+ message
13
+ rescue ::Planaria::BaseProjectNotFound
14
+ puts "Base project not found."
15
+ rescue ::Planaria::StopDivide
16
+ puts "Stop divide."
17
+ end
18
+
19
+ private
20
+
21
+ def check
22
+ Checker.new(@name, @base).run
23
+ end
24
+
25
+ def execute
26
+ Executer.new(@name, @base).run
27
+ end
28
+
29
+ def message
30
+ Message.new(@name, @base).run
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,6 +1,8 @@
1
1
  module Planaria::Generator
2
2
  module Initializer
3
3
  class Executer
4
+ include ::Planaria::Utils
5
+
4
6
  def initialize(name)
5
7
  @name = name
6
8
  end
@@ -13,19 +15,6 @@ module Planaria::Generator
13
15
 
14
16
  private
15
17
 
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
18
  def create_files
30
19
  FileUtils.touch("./#{@name}/css/#{@name}.css")
31
20
  FileUtils.touch("./#{@name}/js/#{@name}.js")
@@ -1,5 +1,5 @@
1
1
  module Planaria
2
- class Utils
2
+ module Utils
3
3
  def self.tree(path, pre = nil)
4
4
  unless pre
5
5
  puts path
@@ -20,5 +20,18 @@ module Planaria
20
20
  end
21
21
  end
22
22
  end
23
+
24
+ def mkdir(path)
25
+ FileUtils.mkdir_p("#{path}")
26
+ end
27
+
28
+ def create_directories
29
+ mkdir "./#{@name}"
30
+ mkdir "./#{@name}/html"
31
+ mkdir "./#{@name}/css"
32
+ mkdir "./#{@name}/js"
33
+ mkdir "./#{@name}/img"
34
+ mkdir "./#{@name}/yamls"
35
+ end
23
36
  end
24
37
  end
@@ -1,3 +1,3 @@
1
1
  module Planaria
2
- VERSION = "0.0.5"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/planaria.rb CHANGED
@@ -6,14 +6,21 @@ require "erb"
6
6
 
7
7
  require "planaria/cli"
8
8
  require "planaria/utils"
9
+
9
10
  require "planaria/generator/initializer/runner"
10
11
  require "planaria/generator/initializer/checker"
11
12
  require "planaria/generator/initializer/executer"
12
13
  require "planaria/generator/initializer/message"
14
+
13
15
  require "planaria/generator/builder/runner"
14
- # require "planaria/generator/builder/checker"
16
+ require "planaria/generator/builder/checker"
15
17
  require "planaria/generator/builder/executer"
16
18
  require "planaria/generator/builder/message"
17
19
 
20
+ require "planaria/generator/divide/runner"
21
+ require "planaria/generator/divide/checker"
22
+ require "planaria/generator/divide/executer"
23
+ require "planaria/generator/divide/message"
24
+
18
25
  require "planaria/templates/html"
19
26
  require "planaria/templates/yaml"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: planaria
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - onigra
@@ -147,6 +147,10 @@ files:
147
147
  - lib/planaria/generator/builder/executer.rb
148
148
  - lib/planaria/generator/builder/message.rb
149
149
  - lib/planaria/generator/builder/runner.rb
150
+ - lib/planaria/generator/divide/checker.rb
151
+ - lib/planaria/generator/divide/executer.rb
152
+ - lib/planaria/generator/divide/message.rb
153
+ - lib/planaria/generator/divide/runner.rb
150
154
  - lib/planaria/generator/initializer/checker.rb
151
155
  - lib/planaria/generator/initializer/executer.rb
152
156
  - lib/planaria/generator/initializer/message.rb