netzke_config 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.markdown +3 -0
  2. data/VERSION +1 -1
  3. data/lib/netzke_config.rb +60 -9
  4. metadata +2 -2
data/README.markdown CHANGED
@@ -48,6 +48,9 @@ Retrieves and places *netzke* modules in <code>../my/place</code>.
48
48
 
49
49
  <code>$ netzke_config --overwrite-all --extjs ~/code/ext-3.2.1/ --download</code>
50
50
 
51
+ +Detailed specifications of each module to include as plugin+
52
+
53
+ <code>$ netzke_config --modules neztke_ar:master@skozlov,netzke_core:rails3@kmandrup</code>
51
54
 
52
55
  ## Copyright ##
53
56
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/lib/netzke_config.rb CHANGED
@@ -21,16 +21,58 @@ class NetzkeConfig < Thor::Group
21
21
  class_option :ext_version, :type => :string, :default => '3.2.1', :desc => 'ExtJS version to download'
22
22
  class_option :download, :type => :boolean, :default => false, :desc => 'Download ExtJS if not found in specified extjs location'
23
23
 
24
+ # class_option :basepack, :type => :string, :desc => 'Github branch and account specification for basepack module, fx rails3@kmandrup'
25
+ # class_option :core, :type => :string, :desc => 'Github branch and account specification for core module, fx master@skozlov'
26
+ class_option :modules, :type => :string, :desc => 'module specifications for each module, fx neztke_ar:master@skozlov,netzke_core:rails3@kmandrup'
27
+
24
28
  GITHUB = 'http://github.com'
25
29
 
26
- def main
30
+ def main
31
+ setup_defaults
32
+ define_modules
27
33
  exit(-1) if !valid_context?
28
34
  configure_modules
29
35
  configure_extjs if options[:extjs]
30
36
  end
31
37
 
32
38
  protected
39
+ attr_accessor :modules_config
40
+
41
+ def default_modules
42
+ ["netzke-core", "netzke-basepack"]
43
+ end
44
+
45
+ def setup_defaults
46
+ @modules_config ||= {}
47
+ default_modules.each do |module_name|
48
+ set_module_config 'netzke-basepack'
49
+ set_module_config 'netzke-core'
50
+ end
51
+ end
52
+
53
+ def define_modules
54
+ @modules_config ||= {}
55
+ return if !options[:modules]
56
+ module_defs = options[:modules].split(",")
57
+
58
+ module_defs.each do |module_spec|
59
+ spec = module_spec.strip.split(":")
60
+ module_name = spec[0]
61
+ branch, account = spec[1].split("@")
62
+ set_module_config module_name.to_sym, :branch => branch, :account => account
63
+ end
64
+ end
65
+
66
+ def set_module_config name, module_options = {}
67
+ mconfig = modules_config[name.to_sym] = {}
68
+ mconfig[:branch] = module_options[:branch] || options[:branch]
69
+ mconfig[:account] = module_options[:account] || options[:account]
70
+ end
33
71
 
72
+ def module_config name
73
+ modules_config[name.to_sym]
74
+ end
75
+
34
76
  def valid_context?
35
77
  if netzke_app? && rails3_app?
36
78
  true
@@ -39,11 +81,15 @@ class NetzkeConfig < Thor::Group
39
81
  false
40
82
  end
41
83
  end
84
+
85
+ def get_module_names
86
+ default_modules | modules_config.keys.map{|k| k.to_s}
87
+ end
42
88
 
43
89
  def configure_modules
44
90
  create_module_container_dir
45
91
  inside "#{location}" do
46
- ["netzke-core", "netzke-basepack"].each do |module_name|
92
+ get_module_names.each do |module_name|
47
93
  get_module module_name
48
94
  config_netzke_plugin module_name
49
95
  end
@@ -67,8 +113,10 @@ class NetzkeConfig < Thor::Group
67
113
  end
68
114
  end
69
115
 
70
- def update_module module_name
71
- inside module_name do
116
+ def update_module module_name
117
+ config = module_config(module_name)
118
+ inside module_name do
119
+ branch = config[:branch]
72
120
  run "git checkout #{branch}"
73
121
  run "git rebase origin/#{branch}"
74
122
  run "git pull"
@@ -76,9 +124,12 @@ class NetzkeConfig < Thor::Group
76
124
  end
77
125
 
78
126
  def create_module module_name
79
- # create dir for module by cloning
80
- run "git clone #{netzke_github}/#{module_name}.git #{module_name}"
81
- inside module_name do
127
+ # create dir for module by cloning
128
+ config = module_config(module_name)
129
+ account = config[:account]
130
+ run "git clone #{netzke_github account}/#{module_name}.git #{module_name}"
131
+ inside module_name do
132
+ branch = config[:branch]
82
133
  run "git checkout #{branch}"
83
134
  end
84
135
  end
@@ -137,8 +188,8 @@ class NetzkeConfig < Thor::Group
137
188
  File.join(extjs_dir, extjs)
138
189
  end
139
190
 
140
- def netzke_github
141
- "#{GITHUB}/#{options[:account]}"
191
+ def netzke_github account
192
+ "#{GITHUB}/#{account}"
142
193
  end
143
194
 
144
195
  def netzke_app?
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 3
9
+ version: 0.1.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup