planaria 0.0.5 → 1.0.0

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