qb 0.1.23 → 0.1.24

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