qb 0.1.23 → 0.1.24

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: 30b0e75719390dfd0ee97d04dee5d35f94ba7c2b
4
- data.tar.gz: 4fe81370e5657c73552b159c025ca61aca44adc5
3
+ metadata.gz: 8dfe61f1565472727bdae6b030b59ef7bdeca300
4
+ data.tar.gz: 75c4ca2512edb66c32d35c4b24c16e2199fa5ca1
5
5
  SHA512:
6
- metadata.gz: 8b6633ad2e732a83ca29707080ce328af5fa617b00bd1261a5bb0fdaf689e0442a5305b1ba0bf9a4a3acfcf929910af8d087611f9c03863e5c7c5865f01a9a40
7
- data.tar.gz: 70985650858f352883521cee66af25b194ec9d48b264b34ca04e9e3015dad60f62ab1b4db8ff9062814467a031850a6f9b9376590aa6a9ed747dbe3f36c09a04
6
+ metadata.gz: 8d20ad6373ec039f0e45cc97a8885ae6e0871fa18a559550b5ea284f2b6af2598d98bad66063c8c74ddc60e5d42ff42636d7627932d15ed6b9d76f35a90e139a
7
+ data.tar.gz: f74ada30a77323db4e41705a9cb57fab452b795c0da82412e9a944c0ba7a5ca430a2825f0d50008dfe2ae4ed7044b23e97d23339fbca5f6b0c8398e4f06bd323
@@ -1,5 +1,6 @@
1
1
  require 'optparse'
2
- require 'weakref'
2
+
3
+ require_relative "options/option"
3
4
 
4
5
  module QB
5
6
  module Options
@@ -30,94 +31,6 @@ module QB
30
31
  option_name.gsub '-', '_'
31
32
  end
32
33
 
33
- #
34
- class Option
35
- # the role that this option is for
36
- # attr_reader :role
37
-
38
- # the entry from the qb metadata for this option
39
- attr_reader :meta
40
-
41
- # array of strings representing how this option was included
42
- # empty for top-level options
43
- attr_reader :include_path
44
-
45
- # the name of the option in the qb metadata, equal to #meta['name']
46
- attr_reader :meta_name
47
-
48
- # the name that this option will be available in the cli as
49
- attr_reader :cli_name
50
-
51
- # the name that the value will be passed to ansible as
52
- attr_reader :var_name
53
-
54
- # the value of the option, or `nil` if we never assign one
55
- attr_accessor :value
56
-
57
- def initialize role, meta, include_path
58
- # @role = WeakRef.new role
59
- @meta = meta
60
- @include_path = include_path
61
-
62
- @meta_name = meta.fetch 'name'
63
-
64
- @cli_name = if @include_path.empty?
65
- Options.cli_ize_name @meta_name
66
- else
67
- Options.cli_ize_name "#{ @include_path.join('-') }-#{ @meta_name }"
68
- end
69
-
70
- @var_name = if role.var_prefix
71
- Options.var_ize_name "#{ role.var_prefix }_#{ @meta_name }"
72
- else
73
- Options.var_ize_name @meta_name
74
- end
75
-
76
- @value = nil
77
- end
78
-
79
- # if the option is required in the cli
80
- def required?
81
- !!meta_or(['required', 'require'], false)
82
- end
83
-
84
- # if we should save the option value in .qb-options.yml
85
- def save?
86
- !!meta_or('save', true)
87
- end
88
-
89
- def description
90
- value = meta_or 'description',
91
- "set the #{ @var_name } role variable"
92
-
93
- if @meta['type'].is_a?(Hash) && @meta['type'].key?('one_of')
94
- line_break = "\n" + "\t" * 5
95
- value += " options:" +
96
- "#{ line_break }#{ @meta['type']['one_of'].join(line_break) }"
97
- end
98
-
99
- value
100
- end
101
-
102
- private
103
-
104
- # get the value at the first found of the keys or the default.
105
- #
106
- # `nil` (`null` in yaml files) are treated like they're not there at
107
- # all. you need to use `false` if you want to tell QB not to do something.
108
- #
109
- def meta_or keys, default
110
- keys = [keys] if keys.is_a? String
111
- keys.each do |key|
112
- if meta.key?(key) && !meta[key].nil?
113
- return meta[key]
114
- end
115
- end
116
- default
117
- end
118
-
119
- end # Option
120
-
121
34
  def self.include_role opts, options, include_meta, include_path
122
35
  role_name = include_meta['include']
123
36
  role = QB::Role.require role_name
@@ -145,7 +58,7 @@ module QB
145
58
  def self.add opts, options, role, include_path = []
146
59
  QB.debug "adding options", "role" => role
147
60
 
148
- role.options.each do |option_meta|
61
+ role.option_metas.each do |option_meta|
149
62
  if option_meta.key? 'include'
150
63
  include_role opts, options, option_meta, include_path
151
64
 
@@ -159,8 +72,8 @@ module QB
159
72
  :OPTIONAL
160
73
  end
161
74
 
162
- # on_args = [arg_style]
163
- on_args = []
75
+ on_args = [arg_style]
76
+ # on_args = []
164
77
 
165
78
  if option.meta['type'] == 'boolean'
166
79
  # don't use short names when included (for now)
@@ -266,7 +179,7 @@ module QB
266
179
 
267
180
  opts.on(
268
181
  '-H',
269
- '---hosts=HOSTS',
182
+ '--HOSTS=HOSTS',
270
183
  Array,
271
184
  "set playbook host",
272
185
  "DEFAULT: localhost"
@@ -276,7 +189,7 @@ module QB
276
189
 
277
190
  opts.on(
278
191
  '-U',
279
- '---user=USER',
192
+ '--USER=USER',
280
193
  String,
281
194
  "ansible become user for the playbook"
282
195
  ) do |value|
@@ -0,0 +1,104 @@
1
+ module QB
2
+ module Options
3
+ class Option
4
+
5
+
6
+ # the role that this option is for
7
+ # attr_reader :role
8
+
9
+ # the entry from the qb metadata for this option
10
+ attr_reader :meta
11
+
12
+ # array of strings representing how this option was included
13
+ # empty for top-level options
14
+ attr_reader :include_path
15
+
16
+ # the name of the option in the qb metadata, equal to #meta['name']
17
+ attr_reader :meta_name
18
+
19
+ # the name that this option will be available in the cli as
20
+ attr_reader :cli_name
21
+
22
+ # the name that the value will be passed to ansible as
23
+ attr_reader :var_name
24
+
25
+ # the value of the option, or `nil` if we never assign one
26
+ attr_accessor :value
27
+
28
+ def initialize role, meta, include_path
29
+ # @role = WeakRef.new role
30
+ @meta = meta
31
+ @include_path = include_path
32
+
33
+ @meta_name = meta.fetch 'name'
34
+
35
+ @cli_name = if @include_path.empty?
36
+ Options.cli_ize_name @meta_name
37
+ else
38
+ Options.cli_ize_name "#{ @include_path.join('-') }-#{ @meta_name }"
39
+ end
40
+
41
+ @var_name = if role.var_prefix
42
+ Options.var_ize_name "#{ role.var_prefix }_#{ @meta_name }"
43
+ else
44
+ Options.var_ize_name @meta_name
45
+ end
46
+
47
+ @value = nil
48
+ end
49
+
50
+ # if the option is required in the cli
51
+ def required?
52
+ !!meta_or(['required', 'require'], false)
53
+ end
54
+
55
+ # if we should save the option value in .qb-options.yml
56
+ def save?
57
+ !!meta_or('save', true)
58
+ end
59
+
60
+ def description
61
+ value = meta_or 'description',
62
+ "set the #{ @var_name } role variable"
63
+
64
+ if @meta['type'].is_a?(Hash) && @meta['type'].key?('one_of')
65
+ line_break = "\n" + "\t" * 5
66
+ value += " options:" +
67
+ "#{ line_break }#{ @meta['type']['one_of'].join(line_break) }"
68
+ end
69
+
70
+ value
71
+ end
72
+
73
+ def boolean?
74
+ ['boolean', 'bool'].include? meta['type'].downcase
75
+ end
76
+
77
+ def usage
78
+ if boolean?
79
+ "--[no-]#{ option.cli_name }"
80
+ else
81
+ "--#{ cli_name }=#{ meta_name.upcase }"
82
+ end
83
+ end
84
+
85
+ private
86
+
87
+ # get the value at the first found of the keys or the default.
88
+ #
89
+ # `nil` (`null` in yaml files) are treated like they're not there at
90
+ # all. you need to use `false` if you want to tell QB not to do something.
91
+ #
92
+ def meta_or keys, default
93
+ keys = [keys] if keys.is_a? String
94
+ keys.each do |key|
95
+ if meta.key?(key) && !meta[key].nil?
96
+ return meta[key]
97
+ end
98
+ end
99
+ default
100
+ end
101
+
102
+ end # Option
103
+ end # Options
104
+ end # QB
@@ -113,6 +113,38 @@ module QB
113
113
  role
114
114
  end
115
115
 
116
+ # get the include path for an included role based on the
117
+ # option metadata that defines the include and the current
118
+ # include path.
119
+ #
120
+ # @param role [Role]
121
+ # the role to include.
122
+ #
123
+ # @param option_meta [Hash]
124
+ # the entry for the option in qb.yml
125
+ #
126
+ # @param current_include_path [Array<string>]
127
+ #
128
+ # @return [Array<string>]
129
+ # include path for the included role.
130
+ #
131
+ def self.get_include_path role, option_meta, current_include_path
132
+ new_include_path = if option_meta.key? 'as'
133
+ case option_meta['as']
134
+ when nil, false
135
+ # include it in with the parent role's options
136
+ current_include_path
137
+ when String
138
+ current_include_path + [option_meta['as']]
139
+ else
140
+ raise MetadataError.new,
141
+ "bad 'as' value: #{ option_meta.inspect }"
142
+ end
143
+ else
144
+ current_include_path + [role.namespaceless]
145
+ end
146
+ end
147
+
116
148
  # instance methods
117
149
  # ================
118
150
 
@@ -187,12 +219,22 @@ module QB
187
219
  end
188
220
 
189
221
  # get the options from the metadata, defaulting to [] if none defined
190
- def options
222
+ def option_metas
191
223
  meta_or ['options', 'opts', 'vars'], []
192
224
  end
193
225
 
194
- # old name
195
- alias_method :vars, :options
226
+ # get an array of Option for the role, including any included roles
227
+ def options include_path = []
228
+ option_metas.map {|option_meta|
229
+ if option_meta.key? 'include'
230
+ role_name = option_meta['include']
231
+ role = QB::Role.require role_name
232
+ role.options Role.get_include_path(role, option_meta, include_path)
233
+ else
234
+ QB::Options::Option.new self, option_meta, include_path
235
+ end
236
+ }.flatten
237
+ end
196
238
 
197
239
  # loads the defaults from vars/main.yml and defaults/main.yml,
198
240
  # caching by default. vars override defaults values.
@@ -235,6 +277,17 @@ module QB
235
277
  !!meta_or('mkdir', true)
236
278
  end
237
279
 
280
+ def usage
281
+ parts = ['qb', name]
282
+ options.each {|option|
283
+ if option.required?
284
+ parts << option.usage
285
+ end
286
+ }
287
+ parts << '[OPTIONS] DIRECTORY'
288
+ parts.join(' ')
289
+ end
290
+
238
291
  # get the CLI banner for the role
239
292
  def banner
240
293
  lines = []
@@ -248,7 +301,8 @@ module QB
248
301
  lines << ''
249
302
  end
250
303
  lines << 'usage:'
251
- lines << " qb #{ name } [OPTIONS] DIRECTORY"
304
+ # lines << " qb #{ name } [OPTIONS] DIRECTORY"
305
+ lines << " #{ usage }"
252
306
  lines << ''
253
307
  lines << 'options:'
254
308
 
@@ -270,6 +324,6 @@ module QB
270
324
  end
271
325
  end
272
326
  default
273
- end
274
- end
275
- end
327
+ end # meta_or
328
+ end # Role
329
+ end # QB
@@ -1,7 +1,7 @@
1
1
  module QB
2
2
  GEM_NAME = 'qb'
3
3
 
4
- VERSION = "0.1.23"
4
+ VERSION = "0.1.24"
5
5
 
6
6
  def self.gemspec
7
7
  Gem.loaded_specs[GEM_NAME]
@@ -29,17 +29,6 @@ options:
29
29
  description: the repo owner
30
30
  short: o
31
31
 
32
- - name: dest_dir
33
- type: string
34
- description: qb_dir relative dir to put the submodule in under it's name.
35
- short: d
36
-
37
- - name: dest_path
38
- type: string
39
- description: >
40
- qb_dir relative path to put the submodule at. supercedes dest_dir.
41
- short: p
42
-
43
32
  - name: create
44
33
  type: boolean
45
34
  description: create a new npm package to hack
@@ -5,7 +5,7 @@
5
5
  args:
6
6
  chdir: "{{ qb_dir }}"
7
7
 
8
- - name: add commit everything
8
+ - name: commit everything
9
9
  command: git commit -m "init"
10
10
  args:
11
11
  chdir: "{{ qb_dir }}"
@@ -16,7 +16,7 @@
16
16
 
17
17
  vars = {}
18
18
 
19
- # get the root of the git repot that we're operating from
19
+ # get the root of the git repo that we're operating from
20
20
  Dir.chdir qb_cwd do
21
21
  begin
22
22
  vars['repo_root'] = Cmds.out!('git rev-parse --show-toplevel').strip
@@ -38,6 +38,14 @@
38
38
 
39
39
  vars
40
40
 
41
+ # - debug:
42
+ # msg:
43
+ # repo_root: "{{ hack_npm_repo_root }}"
44
+ # rel_dir: "{{ hack_npm_rel_dir }}"
45
+ #
46
+ # - fail:
47
+ # msg: HERE
48
+
41
49
  - include: create.yml
42
50
  when: hack_npm_create
43
51
 
@@ -47,28 +55,28 @@
47
55
  git@github.com:{{ hack_npm_owner }}/{{ hack_npm_name }}.git
48
56
  {{ hack_npm_rel_dir }}
49
57
  args:
50
- chdir: "{{ qb_cwd }}"
58
+ chdir: "{{ hack_npm_repo_root }}"
51
59
  creates: "{{ qb_dir }}"
52
60
 
53
- - name: add linking to dev/setup.yml
54
- # - name: npm link nrser.js for jash so it can build
55
- # tags:
56
- # - npm-link
57
- # command: npm link ../nrser.js
58
- # args:
59
- # chdir: "{{ dev_setup_project_root }}/packages/{{ item }}"
60
- # with_items:
61
- # - jash
62
- state:
63
- debug: w
64
- yaml:
65
- key: "{{ qb_cwd }}/dev/setup.yml:0:tasks"
66
- array_contains:
67
- name: "npm link {{ hack_npm_rel_dir }}"
68
- tags:
69
- - npm-link
70
- command: "npm link {{ hack_npm_rel_dir }}"
71
- args:
72
- chdir: "{{ '{{ dev_setup_project_root }}' }}"
73
- create: true
61
+ # - name: add linking to dev/setup.yml
62
+ # # - name: npm link nrser.js for jash so it can build
63
+ # # tags:
64
+ # # - npm-link
65
+ # # command: npm link ../nrser.js
66
+ # # args:
67
+ # # chdir: "{{ dev_setup_project_root }}/packages/{{ item }}"
68
+ # # with_items:
69
+ # # - jash
70
+ # state:
71
+ # debug: w
72
+ # yaml:
73
+ # key: "{{ qb_cwd }}/dev/setup.yml:0:tasks"
74
+ # array_contains:
75
+ # name: "npm link {{ hack_npm_rel_dir }}"
76
+ # tags:
77
+ # - npm-link
78
+ # command: "npm link {{ hack_npm_rel_dir }}"
79
+ # args:
80
+ # chdir: "{{ '{{ dev_setup_project_root }}' }}"
81
+ # create: true
74
82
 
@@ -2,8 +2,6 @@
2
2
  # vars file for qb.hack_npm
3
3
  hack_npm_name: "{{ qb_dir | basename }}"
4
4
  hack_npm_owner: "{{ git_user_name }}"
5
- # hack_npm_dest_dir: "{{ qb_dir }}/dev/packages"
6
- # hack_npm_dest_path: "{{ hack_npm_dest_dir }}/{{ hack_npm_name }}"
7
5
  hack_npm_create: false
8
6
 
9
7
  # overrides
@@ -13,5 +13,6 @@ npm_package_main: "index.js"
13
13
  npm_package_keywords: []
14
14
  npm_package_license: "{{ 'UNLICENSED' if npm_package_private else 'ISC' }}"
15
15
  npm_package_author: "{{ npm_package_scope if npm_package_scope else git_user_name }}"
16
+ npm_package_scripts: {}
16
17
 
17
18
  npm_package_project: false
@@ -24,4 +24,12 @@
24
24
  main: "{{ npm_package_main }}"
25
25
  keywords: "{{ npm_package_keywords | to_json }}"
26
26
  license: "{{ npm_package_license }}"
27
- author: "{{ npm_package_author }}"
27
+ author: "{{ npm_package_author }}"
28
+
29
+ - name: set package.json scripts
30
+ state:
31
+ json:
32
+ key: "{{ npm_package_json_path }}:scripts:{{ item.key }}"
33
+ set: "{{ item.value }}"
34
+ create: true
35
+ with_dict: "{{ npm_package_scripts }}"
@@ -0,0 +1,6 @@
1
+ ---
2
+ qb.qb_role:
3
+ defaults: false
4
+ files: true
5
+ templates: false
6
+ vars: true
@@ -0,0 +1,69 @@
1
+ {
2
+ "passPerPreset": true,
3
+
4
+ "presets": [
5
+ "stage-2",
6
+ "react",
7
+ "es2015"
8
+ ],
9
+
10
+ "env": {
11
+ "development": {
12
+ "plugins": [
13
+ ["metalog", {
14
+ "strip": {
15
+ "labels": {
16
+ "trace": false
17
+ }
18
+ },
19
+ "extraLabels": [
20
+ "errorRefs",
21
+ "warnRefs",
22
+ "infoRefs",
23
+ "debugRefs",
24
+ "traceRefs",
25
+ "notif",
26
+ "errorNotif",
27
+ "warnNotif",
28
+ "infoNotif",
29
+ "debugNotif",
30
+ "traceNotif"
31
+ ]
32
+ }],
33
+ "syntax-flow",
34
+ "transform-export-extensions",
35
+ ["tcomb", {
36
+ "skipAsserts": true
37
+ }],
38
+ "transform-flow-strip-types"
39
+ ]
40
+ },
41
+
42
+ "production": {
43
+ "plugins": [
44
+ ["metalog", {
45
+ "strip": true,
46
+ "extraLabels": [
47
+ "errorRefs",
48
+ "warnRefs",
49
+ "infoRefs",
50
+ "debugRefs",
51
+ "traceRefs",
52
+ "notif",
53
+ "errorNotif",
54
+ "warnNotif",
55
+ "infoNotif",
56
+ "debugNotif",
57
+ "traceNotif"
58
+ ]
59
+ }],
60
+ "syntax-flow",
61
+ "transform-export-extensions",
62
+ ["tcomb", {
63
+ "skipAsserts": true
64
+ }],
65
+ "transform-flow-strip-types"
66
+ ]
67
+ }
68
+ }
69
+ }
File without changes
@@ -0,0 +1,4 @@
1
+ const gulp = require('gulp');
2
+ const ugh = require('./ughfile');
3
+
4
+ ugh.createGulpTasks(gulp);
@@ -0,0 +1,7 @@
1
+ const Ugh = require('nrser/lib/ugh').Ugh;
2
+
3
+ const ugh = new Ugh({packageDir: __dirname});
4
+
5
+ ugh.autoTasks();
6
+
7
+ module.exports = ugh;
@@ -0,0 +1,17 @@
1
+ ---
2
+ # meta file for nrser.js
3
+
4
+ allow_duplicates: yes
5
+
6
+ dependencies:
7
+ - role: nrser.state_mate
8
+
9
+ - role: qb.npm_package
10
+
11
+ - role: qb.npm_package
12
+ npm_package_main: lib/index.js
13
+ npm_package_scripts:
14
+ clean: gulp clean
15
+ build: "npm run clean && gulp babel"
16
+ test: "npm run build && gulp mocha"
17
+ watch: "npm run clean && gulp babel && gulp watch"
@@ -0,0 +1,47 @@
1
+ ---
2
+ # meta/qb.yml file for nrser.js
3
+ #
4
+ # qb settings for this role. see README.md for more info.
5
+ #
6
+
7
+ # description of the role to show in it's help output.
8
+ description: null
9
+
10
+ # prefix for role variables
11
+ var_prefix: null
12
+
13
+ # how to get a default for `dir` if it's not provided as the only
14
+ # positional argument. if a positional argument is provided it will
15
+ # override the method defined here.
16
+ #
17
+ # options:
18
+ #
19
+ # - null
20
+ # - require the value on the command line.
21
+ # - git_root
22
+ # - use the git root fof the directory that the `qb` command is invoked
23
+ # from. useful for 'project-centric' commands so they can be invoked
24
+ # from anywhere in the repo.
25
+ # - cwd
26
+ # - use the directory the `qb` command is invoked form.
27
+ # - {exe: PATH}
28
+ # - invoke an execuable, passing a JSON serialization of the options
29
+ # mapping their CLI names to values. path can be relative to role
30
+ # directory.
31
+ default_dir: null
32
+
33
+ # default user to become for play
34
+ default_user: null
35
+
36
+ # set to false to not save options in .qb-options.yml files
37
+ save_options: true
38
+
39
+ options:
40
+ # - name: example
41
+ # description: an example of a variable.
42
+ # required: false
43
+ # type: boolean # boolean (default) | string
44
+ # short: e
45
+
46
+ - include: qb.npm_package
47
+ as: package
@@ -0,0 +1,63 @@
1
+ ---
2
+ # tasks file for nrser.js
3
+
4
+ - name: add deps to package.json
5
+ state:
6
+ json:
7
+ key: "{{ npm_package_json_path }}:dependencies:{{ item.key }}"
8
+ set: "{{ item.value }}"
9
+ create: true
10
+ with_dict: "{{ nrser_js_deps }}"
11
+
12
+ - name: add dev deps to package.json
13
+ state:
14
+ json:
15
+ key: "{{ npm_package_json_path }}:devDependencies:{{ item.key }}"
16
+ set: "{{ item.value }}"
17
+ create: true
18
+ with_dict: "{{ nrser_js_dev_deps }}"
19
+
20
+ - name: "create {{ item }} dir"
21
+ file:
22
+ dest: "{{ qb_dir }}/{{ item }}"
23
+ state: directory
24
+ with_items:
25
+ - src
26
+ - test/src
27
+
28
+ - name: "create {{ item }} file"
29
+ copy:
30
+ dest: "{{ qb_dir }}/{{ item }}"
31
+ content: ''
32
+ with_items:
33
+ - src/index.js
34
+ - test/src/index.tests.js
35
+
36
+ - name: add .babelrc
37
+ copy:
38
+ src: .babelrc
39
+ dest: "{{ qb_dir }}/.babelrc"
40
+
41
+ - name: add ughfile.js
42
+ copy:
43
+ src: ughfile.js
44
+ dest: "{{ qb_dir }}/ughfile.js"
45
+
46
+ - name: add gulpfile.js
47
+ copy:
48
+ src: gulpfile.js
49
+ dest: "{{ qb_dir }}/gulpfile.js"
50
+
51
+ - name: flow init
52
+ command: node_modules/.bin/flow init
53
+ args:
54
+ chdir: "{{ qb_dir }}"
55
+ creates: "{{ qb_dir }}/.flowconfig"
56
+
57
+ - name: "ignore {{ item }}"
58
+ lineinfile:
59
+ line: "{{ item }}"
60
+ dest: "{{ qb_dir }}/.gitignore"
61
+ with_items:
62
+ - /lib
63
+ - /test/lib
@@ -0,0 +1,28 @@
1
+ ---
2
+ # vars file for nrser.js
3
+
4
+ nrser_js_deps:
5
+ lodash: "^3.1.0"
6
+ nrser: "^0.2.1"
7
+ tcomb: "^3.2.13"
8
+
9
+ nrser_js_dev_deps:
10
+ babel-cli: "^6.14.0"
11
+ babel-core: "^6.14.0"
12
+ babel-plugin-metalog: "^0.1.0"
13
+ babel-plugin-tcomb: "^0.3.13"
14
+ babel-plugin-transform-export-extensions: "^6.8.0"
15
+ babel-polyfill: "^6.13.0"
16
+ babel-preset-es2015: "^6.14.0"
17
+ babel-preset-react: "^6.11.1"
18
+ babel-preset-stage-2: "^6.17.0"
19
+ chai: "^3.5.0"
20
+ flow-bin: "^0.32.0"
21
+ gulp: "^3.9.1"
22
+ gulp-babel: "^6.1.2"
23
+ gulp-spawn-mocha: "^3.1.0"
24
+ gulp-util: "^3.0.7"
25
+ istanbul: "^0.4.5"
26
+ kexec: "^3.0.0"
27
+ mocha: "^3.1.2"
28
+ node-notifier: "^4.6.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.23
4
+ version: 0.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-26 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,6 +142,7 @@ files:
142
142
  - exe/qb
143
143
  - lib/qb.rb
144
144
  - lib/qb/options.rb
145
+ - lib/qb/options/option.rb
145
146
  - lib/qb/role.rb
146
147
  - lib/qb/version.rb
147
148
  - library/git_mkdir.py
@@ -478,6 +479,15 @@ files:
478
479
  - roles/qb.npm_package/meta/main.yml
479
480
  - roles/qb.npm_package/meta/qb.yml
480
481
  - roles/qb.npm_package/tasks/main.yml
482
+ - roles/qb.nrser_js/.qb-options.yml
483
+ - roles/qb.nrser_js/files/.babelrc
484
+ - roles/qb.nrser_js/files/.gitkeep
485
+ - roles/qb.nrser_js/files/gulpfile.js
486
+ - roles/qb.nrser_js/files/ughfile.js
487
+ - roles/qb.nrser_js/meta/main.yml
488
+ - roles/qb.nrser_js/meta/qb.yml
489
+ - roles/qb.nrser_js/tasks/main.yml
490
+ - roles/qb.nrser_js/vars/main.yml
481
491
  - roles/qb.project/.qb-options.yml
482
492
  - roles/qb.project/defaults/main.yml
483
493
  - roles/qb.project/files/ansible.cfg