class Arethusa::CLI::Generator

Constants

DIRECTORIES

Public Class Methods

source_root() click to toggle source
# File lib/arethusa/cli/generator.rb, line 7
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

add_to_gruntfile() click to toggle source
# File lib/arethusa/cli/generator.rb, line 81
def add_to_gruntfile
  insert_into_file(gruntfile, after: /var arethusaModules.*?\n/, force: false) do
    %[  "#{namespaced_name}",\n]
  end
end
add_to_index() click to toggle source
# File lib/arethusa/cli/generator.rb, line 91
def add_to_index
  insert_into_file(index_file, after: /script.*?core.*?script>\n/) do
    %{  <script src="../dist/#{namespaced_name}.min.js"></script>\n}
  end
end
commit_changes(spec = false) click to toggle source
# File lib/arethusa/cli/generator.rb, line 114
def commit_changes(spec = false)
  sp = spec ? "spec " : ""

  message = %{"Add #{sp}skeleton for #{namespaced_name}"}
  `git add -A`
  `git commit -m #{message}`
  sha = `git rev-parse --short HEAD`.chomp
  puts
  say_status(:commited, %(#{sha} #{message}))
end
create_directories() click to toggle source
# File lib/arethusa/cli/generator.rb, line 71
def create_directories
  DIRECTORIES.each { |dir| empty_directory(send(dir)) }
end
create_files() click to toggle source
# File lib/arethusa/cli/generator.rb, line 75
def create_files
  create_module
  create_service
  create_html_template
end
give_conf_instructions() click to toggle source
# File lib/arethusa/cli/generator.rb, line 101
      def give_conf_instructions
        text = <<-EOF
Now add your new #{name} plugin to a conf file and add a configuration for it.
It could look like this:

 "#{name(true)}" : {
   "name" : "#{name(true)}",
   "template" : "#{html_template_file.slice(/template.*/)}"
 }
        EOF
        puts text.lines.map { |line| "\t#{line}" }.join
      end
gruntfile() click to toggle source
# File lib/arethusa/cli/generator.rb, line 87
def gruntfile
  File.join(destination_root, 'Gruntfile.js')
end
index_file() click to toggle source
# File lib/arethusa/cli/generator.rb, line 97
def index_file
  File.join(destination_root, 'app', 'index.html')
end
plugin(name) click to toggle source
# File lib/arethusa/cli/generator.rb, line 18
def plugin(name)
  @name = name
  @namespace = options[:namespace]

  create_directories
  create_files

  try('add to Gruntfile', :add_to_gruntfile)
  try('add module to index.html', :add_to_index)

  commit_changes if options[:commit]

  puts
  say_status(:success, "Created #{namespaced_name}")
  #give_conf_instructions
end
retriever(mod, name) click to toggle source
# File lib/arethusa/cli/generator.rb, line 52
def retriever(mod, name)
  @module = mod
  @name = name

  create_retriever
  create_retriever_spec
end
spec(name) click to toggle source
# File lib/arethusa/cli/generator.rb, line 40
def spec(name)
  @name = name
  @namespace = options[:namespace]

  empty_directory(spec_dir)
  create_spec

  commit_changes if options[:commit]
  say_status(:success, "Created spec file for #{namespaced_name}")
end
try(message, method) click to toggle source
# File lib/arethusa/cli/generator.rb, line 64
def try(message, method)
  puts
  say_status('trying', "to #{message}...", :yellow)
  send(method)
end