architecture-js 0.5.3 → 0.5.4

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.
data/HELP CHANGED
@@ -1,29 +1,34 @@
1
1
  create Creates a new architecture-js application in the
2
2
  current working directory or sub directory within.
3
3
 
4
+ examples:
5
+ architect create myapp
6
+ architect create myapp subdirectory
7
+ architect create myapp -b modjs
8
+
4
9
  Arguments:
5
10
  application name - Name of the architecture-js application
6
11
  subdirectory* - Directory where the application will be
7
- installed (created if nonexistent)
12
+ installed (created if nonexistent)
8
13
 
9
- Options:
14
+ Options:
10
15
  -b, --blueprint - Optional Blueprint framework to create
11
16
 
12
- examples:
13
- architect create myapp
14
- architect create myapp subdirectory
15
- architect create myapp -b modjs
16
-
17
17
  compile Compiles the architecture-js project in the current working directory.
18
18
 
19
- Options:
20
- -c, --compress - Compress output with JsMin
19
+ example:
20
+ architect compile
21
21
 
22
- example:
23
- architect compile
22
+ Options:
23
+ -c, --compress - Compress output with JsMin
24
24
 
25
25
  generate Generates scoffolding from a template.
26
26
 
27
+ examples:
28
+ architect generate mytemplate foo -f (boolean arguments use a single "-")
29
+ architect generate mytemplate foo --test "Hello" (named arguments can be boolean by passing no value `false`)
30
+ architect genreate mytemplate foo -f --test "Hello" (combined to generate complex templates)
31
+
27
32
  Arguments:
28
33
  name - Name of the template to generate
29
34
 
@@ -31,15 +36,10 @@ generate Generates scoffolding from a template.
31
36
  *Options are arbitrary (optional) arguments specific to templates
32
37
  There are two types of options: boolean and named attributes
33
38
 
34
- examples:
35
- architect generate mytemplate foo -f (boolean arguments use a single "-")
36
- architect generate mytemplate foo --test "Hello" (named arguments can be boolean by passing no value `false`)
37
- architect genreate mytemplate foo -f --test "Hello" (combined to generate complex templates)
38
-
39
39
  watch Watches the current working directory for file
40
40
  changes and compiles when changes are detected.
41
41
 
42
- example:
43
- architect watch
42
+ example:
43
+ architect watch
44
44
 
45
45
  * optional argument
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.3
1
+ 0.5.4
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "architecture-js"
8
- s.version = "0.5.3"
8
+ s.version = "0.5.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dayton Nolan"]
@@ -22,6 +22,7 @@ module Architect
22
22
  else
23
23
  @root = File.expand_path(Dir.getwd)
24
24
  end
25
+ @project = ArchitectureJS::Blueprint.new_from_config(@root)
25
26
  end
26
27
 
27
28
  def run
@@ -56,14 +57,11 @@ module Architect
56
57
 
57
58
  require "#{blueprint}-architecture" unless blueprint == 'default'
58
59
 
59
- project = ArchitectureJS::BLUEPRINTS[blueprint].new(config, @root)
60
- project.create
60
+ @project = ArchitectureJS::BLUEPRINTS[blueprint].new(config, @root)
61
+ @project.create
61
62
  end
62
63
 
63
64
  def generate
64
- project_path = File.expand_path(Dir.getwd)
65
- project = ArchitectureJS::Blueprint.new_from_config(project_path)
66
-
67
65
  config = {
68
66
  arguments: @args,
69
67
  template: @args.first,
@@ -71,36 +69,37 @@ module Architect
71
69
  options: @template_options
72
70
  }
73
71
  begin
74
- project.generator.generate config
72
+ @project.generator.generate config
75
73
  rescue Exception => e
76
74
  puts e.message
77
- puts "Be sure you ran the command correctly (architect generate <template> <filename> [options])"
78
- puts "Available templates:"
79
- project.generator.templates.each { |k,v| puts " - #{k}" }
75
+ templates
80
76
  end
81
77
  end
82
78
 
83
79
  def compile
84
- project = ArchitectureJS::Blueprint.new_from_config(File.expand_path(Dir.getwd))
85
- project.config[:output] = 'compressed' if options[:c] || options[:compress]
86
- project.update
80
+ @project.config[:output] = 'compressed' if options[:c] || options[:compress]
81
+ @project.update
87
82
  end
88
- #compile
89
83
 
90
84
  def watch
91
- path ||= Dir.getwd
92
- path = File.expand_path(path)
93
-
94
- project = ArchitectureJS::Blueprint::new_from_config(path)
95
- project.update
96
- watcher = project.watch
85
+ @project.update
86
+ @watcher = @project.watch
97
87
  puts ArchitectureJS::Notification.log "architect is watching for changes. Type 'quit' to stop."
98
- start_interactive_session watcher
88
+ start_interactive_session
89
+ end
90
+
91
+ def templates
92
+ puts "Tempaltes:"
93
+ @project.generator.templates.each { |k,v| puts " - #{k}" }
94
+ end
95
+
96
+ def src_files
97
+ puts "Source files:"
98
+ @project.src_files.each { |f| puts " - #{File.basename f}" }
99
99
  end
100
- #watch
101
100
 
102
101
  private
103
- def start_interactive_session(watcher)
102
+ def start_interactive_session
104
103
  begin
105
104
  command = ''
106
105
  while not command =~ /^quit$/
@@ -108,17 +107,16 @@ module Architect
108
107
  command = gets.chomp
109
108
  case command
110
109
  when /^quit$/
111
- watcher.stop
110
+ @watcher.stop
112
111
  when /src_files/
113
- puts watcher.project.src_files.join("\n")
112
+ src_files
114
113
  when /templates/
115
- watcher.project.generator.templates.each { |k,v| puts k }
114
+ templates
116
115
  when /compile/
117
116
  begin
118
- watcher.project.update
117
+ @project.update
119
118
  rescue Exception => e
120
119
  puts e.message
121
- ArchitectureJS::Notification.prompt
122
120
  end
123
121
  when /generate/
124
122
  begin
@@ -130,8 +128,7 @@ module Architect
130
128
  rescue Exception => e
131
129
  puts e.message
132
130
  puts "Available templates:"
133
- watcher.project.generator.templates.each { |k,v| puts " - #{k}" }
134
- ArchitectureJS::Notification.prompt
131
+ @project.generator.templates.each { |k,v| puts " - #{k}" }
135
132
  end
136
133
  when /help/
137
134
  puts 'Interactive commands:'
@@ -140,11 +137,14 @@ module Architect
140
137
  puts ' templates - list available templates to generate'
141
138
  puts ' src_files - list source files to be compiled into the build_dir'
142
139
  puts ' help - show this menu'
140
+ puts ' quit - stop watching for changes'
141
+ else
142
+ puts ArchitectureJS::Notification.error "Unrecognized command `#{command}`. Try `help` or `quit`."
143
143
  end
144
144
  end
145
145
  rescue SystemExit, Interrupt
146
146
  puts
147
- watcher.stop
147
+ @watcher.stop
148
148
  end
149
149
  end
150
150
 
@@ -31,7 +31,6 @@ module ArchitectureJS
31
31
  @root = File.expand_path(root)
32
32
  @template_directories = ["#{ArchitectureJS::base_directory}/templates", "#{@root}/templates"]
33
33
  @directories = ['lib', 'src']
34
- @src_files = []
35
34
  @config = {
36
35
  blueprint: 'default',
37
36
  src_dir: 'src',
@@ -40,6 +39,7 @@ module ArchitectureJS
40
39
  output: 'compressed'
41
40
  }
42
41
  @config.merge! config unless config.nil?
42
+ get_src_files
43
43
  @generator = ArchitectureJS::Generator.new self
44
44
  end
45
45
 
@@ -40,9 +40,10 @@ module ArchitectureJS
40
40
  end
41
41
 
42
42
  def generate(config)
43
- template = config[:template]
44
- raise "There is no template named #{template} in the #{@blueprint[:name]} project" if @templates[template].nil?
43
+ raise "You must provide a template to generate:\n - architect generate <template>" unless config[:template]
44
+ raise "There is no template named '#{template}' in the #{@blueprint[:name]} project" unless @templates[config[:template]]
45
45
 
46
+ template = config[:template]
46
47
  options = config[:options]
47
48
  arguments = config[:arguments]
48
49
  filename = "#{config[:filename]}#{@templates[template][:ext]}"
@@ -9,9 +9,9 @@ module ArchitectureJS
9
9
  @listener.ignore(/#{@project.config[:build_dir]}|spec|test/)
10
10
  .filter(/\.jst?$/)
11
11
  .change do |modified, added, removed|
12
- update_files(modified, "was modified") if modified.length > 0
13
- update_files(added, "was added") if added.length > 0
14
- update_files(removed, "was deleted") if removed.length > 0
12
+ update_files(modified, "modified") if modified.length > 0
13
+ update_files(added, "added") if added.length > 0
14
+ update_files(removed, "deleted") if removed.length > 0
15
15
  end
16
16
  end
17
17
 
@@ -26,11 +26,15 @@ module ArchitectureJS
26
26
 
27
27
  private
28
28
 
29
- def update_files(files, message)
29
+ def update_files(files, action)
30
30
  files.each do |f|
31
31
  f = File.basename f
32
+ if action == "deleted"
33
+ FileUtils.rm_rf("#{@project.root}/#{f}")
34
+ puts "remove #{@project.root}/#{f}"
35
+ end
32
36
 
33
- puts "\n" << ArchitectureJS::Notification.event("#{f} #{message}")
37
+ puts "\n" << ArchitectureJS::Notification.event("#{f} was #{action}")
34
38
  end
35
39
 
36
40
  @project.read_config
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: architecture-js
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -242,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
242
242
  version: '0'
243
243
  segments:
244
244
  - 0
245
- hash: 2753947263902784198
245
+ hash: -1429009403293119997
246
246
  required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  none: false
248
248
  requirements: