qb 0.3.15 → 0.3.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/qb/ansible/module.rb +80 -10
  3. data/lib/qb/package.rb +4 -14
  4. data/lib/qb/path.rb +21 -18
  5. data/lib/qb/repo.rb +5 -15
  6. data/lib/qb/repo/git.rb +69 -53
  7. data/lib/qb/repo/git/github.rb +12 -4
  8. data/lib/qb/repo/git/user.rb +33 -0
  9. data/lib/qb/role.rb +22 -22
  10. data/lib/qb/version.rb +1 -1
  11. data/library/path_facts +0 -90
  12. data/qb.gemspec +2 -2
  13. data/roles/qb/git/check/clean/defaults/main.yml +7 -0
  14. data/roles/qb/git/check/clean/meta/qb.yml +48 -0
  15. data/roles/qb/git/check/clean/tasks/main.yml +26 -10
  16. data/roles/qb/role/meta/qb.yml +3 -3
  17. data/roles/qb/role/qb/templates/qb.yml.j2 +1 -1
  18. data/roles/qb/ruby/dependency/.qb-options.yml +4 -0
  19. data/roles/qb/ruby/dependency/defaults/main.yml +23 -0
  20. data/roles/qb/ruby/dependency/filter_plugins/dependency_filters.py +207 -0
  21. data/roles/qb/ruby/dependency/meta/main.yml +10 -0
  22. data/roles/qb/ruby/dependency/meta/qb.yml +49 -0
  23. data/roles/qb/ruby/dependency/tasks/detect_type.yml +18 -0
  24. data/roles/qb/ruby/dependency/tasks/main.yml +16 -0
  25. data/roles/qb/ruby/dependency/tasks/types/gemfile.yml +6 -0
  26. data/roles/qb/ruby/dependency/tasks/types/gemspec.yml +71 -0
  27. data/roles/qb/{gem → ruby/gem}/bin_stubs/defaults/main.yml +1 -1
  28. data/roles/qb/{gem → ruby/gem}/bin_stubs/meta/main.yml +1 -1
  29. data/roles/qb/{gem → ruby/gem}/bin_stubs/meta/qb.yml +1 -1
  30. data/roles/qb/{gem → ruby/gem}/bin_stubs/tasks/main.yml +1 -1
  31. data/roles/qb/ruby/gem/bin_stubs/templates/console +33 -0
  32. data/roles/qb/{gem → ruby/gem}/bin_stubs/templates/rake +0 -0
  33. data/roles/qb/{gem → ruby/gem}/bin_stubs/templates/rspec +0 -0
  34. data/roles/qb/{gem → ruby/gem}/build/defaults/main.yml +1 -1
  35. data/roles/qb/{gem → ruby/gem}/build/meta/main.yml +0 -0
  36. data/roles/qb/{gem → ruby/gem}/build/meta/qb.yml +1 -1
  37. data/roles/qb/{gem → ruby/gem}/build/tasks/main.yml +1 -1
  38. data/roles/qb/{gem → ruby/gem}/install/defaults/main.yml +0 -0
  39. data/roles/qb/{gem → ruby/gem}/install/meta/main.yml +1 -1
  40. data/roles/qb/{gem → ruby/gem}/install/meta/qb.yml +0 -0
  41. data/roles/qb/{gem → ruby/gem}/install/tasks/main.yml +0 -0
  42. data/roles/qb/{gem → ruby/gem}/new/defaults/main.yml +1 -1
  43. data/roles/qb/{gem → ruby/gem}/new/meta/main.yml +1 -1
  44. data/roles/qb/{gem → ruby/gem}/new/meta/qb.yml +1 -1
  45. data/roles/qb/{gem → ruby/gem}/new/tasks/bundle_gem.yml +0 -0
  46. data/roles/qb/{gem → ruby/gem}/new/tasks/main.yml +1 -1
  47. data/roles/qb/ruby/gem/release/defaults/main.yml +5 -0
  48. data/roles/qb/{gem → ruby/gem}/release/meta/main.yml +1 -1
  49. data/roles/qb/ruby/gem/release/meta/qb.yml +27 -0
  50. data/roles/qb/{gem → ruby/gem}/release/tasks/main.yml +4 -6
  51. data/roles/qb/ruby/gem/release/tasks/release.yml +42 -0
  52. data/roles/qb/ruby/rspec/setup/defaults/main.yml +7 -0
  53. data/roles/qb/ruby/rspec/setup/meta/main.yml +9 -0
  54. data/roles/qb/ruby/rspec/setup/meta/qb.yml +47 -0
  55. data/roles/qb/ruby/rspec/setup/tasks/main.yml +4 -0
  56. data/roles/qb/ruby/rspec/setup/tasks/persistence.yml +0 -0
  57. data/roles/qb/ruby/yard/clean/defaults/main.yml +7 -0
  58. data/roles/qb/ruby/yard/clean/meta/main.yml +9 -0
  59. data/roles/qb/ruby/yard/clean/meta/qb.yml +48 -0
  60. data/roles/qb/ruby/yard/clean/tasks/main.yml +27 -0
  61. data/roles/qb/ruby/yard/config/.qb-options.yml +4 -0
  62. data/roles/qb/ruby/yard/config/defaults/main.yml +15 -0
  63. data/roles/qb/ruby/yard/config/library/yard.get_output_dir +59 -0
  64. data/roles/qb/ruby/yard/config/meta/main.yml +10 -0
  65. data/roles/qb/ruby/yard/config/meta/qb.yml +49 -0
  66. data/roles/qb/ruby/yard/config/tasks/get_yard_output_dir.yml +10 -0
  67. data/roles/qb/ruby/yard/config/tasks/main.yml +4 -0
  68. data/roles/qb/ruby/yard/setup/defaults/main.yml +6 -0
  69. data/roles/qb/ruby/yard/{meta → setup/meta}/main.yml +2 -1
  70. data/roles/qb/ruby/yard/{meta → setup/meta}/qb.yml +5 -5
  71. data/roles/qb/ruby/yard/setup/tasks/main.yml +35 -0
  72. data/roles/qb/ruby/yard/setup/tasks/versions/v0.9.yml +32 -0
  73. data/roles/qb/ruby/yard/setup/tasks/yardopts.yml +59 -0
  74. metadata +65 -35
  75. data/roles/qb/gem/bin_stubs/templates/console +0 -25
  76. data/roles/qb/gem/release/defaults/main.yml +0 -5
  77. data/roles/qb/gem/release/meta/qb.yml +0 -21
  78. data/roles/qb/ruby/yard/defaults/args.yml +0 -2
  79. data/roles/qb/ruby/yard/defaults/main.yml +0 -9
  80. data/roles/qb/ruby/yard/tasks/main.yml +0 -28
@@ -1,5 +1,5 @@
1
1
  ---
2
- # defaults file for qb/gem/bin_stubs
2
+ # defaults file for qb/ruby/gem/bin_stubs
3
3
 
4
4
  gem_root: >-
5
5
  {{ qb_dir }}
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/gem/bin_stubs
2
+ # meta file for qb/ruby/gem/bin_stubs
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/gem/bin_stubs
2
+ # meta/qb.yml file for qb/ruby/gem/bin_stubs
3
3
  #
4
4
  # qb settings for this role. see README.md for more info.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  ---
2
- # tasks file for qb/gem/bin_stubs
2
+ # tasks file for qb/ruby/gem/bin_stubs
3
3
 
4
4
  # Figure out where they gonna go...
5
5
 
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+
5
+ # Load `nrser` gem and use refinements if it's available
6
+ begin
7
+ require 'nrser'
8
+ rescue LoadError => error
9
+ puts "WARN -- Failed to load `nrser` gem."
10
+ puts "WARN -- Add it do your dependencies or edit #{ __FILE__ }"
11
+ else
12
+ using NRSER
13
+ using NRSER::Types
14
+ end
15
+
16
+ require '{{ qb_gem_info.name }}'
17
+
18
+ # You can add fixtures and/or initialization code here to make experimenting
19
+ # with your gem easier. You can also use a different console, if you like.
20
+
21
+ # Load `pry` if it's available, falling back to `irb`
22
+ begin
23
+ require "pry"
24
+ rescue LoadError => error
25
+ puts "WARN -- Failed to load `pry` gem."
26
+ puts "WARN -- Add it do your dependencies or edit #{ __FILE__ }"
27
+ puts "INFO -- Starting `IRB`..."
28
+
29
+ require "irb"
30
+ IRB.start
31
+ else
32
+ Pry.start
33
+ end
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  ##############################################################################
3
- # Variable defaults for `qb/gem/build` role
3
+ # Variable defaults for `qb/ruby/gem/build` role
4
4
  ##############################################################################
5
5
 
6
6
  # Default the gem root to the DIRECTORY from QB
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  ##############################################################################
3
- # QB metadata for `qb/gem/build` role
3
+ # QB metadata for `qb/ruby/gem/build` role
4
4
  #
5
5
  # qb settings for this role. see README.md for more info.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  ##############################################################################
3
- # Main tasks for `qb/gem/build` role
3
+ # Main tasks for `qb/ruby/gem/build` role
4
4
  ##############################################################################
5
5
 
6
6
  - when: get_root_facts is not defined
@@ -3,7 +3,7 @@
3
3
  allow_duplicates: yes
4
4
 
5
5
  dependencies:
6
- - role: qb/gem/build
6
+ - role: qb/ruby/gem/build
7
7
 
8
8
  - role: nrser.rbenv_gem
9
9
  rbenv_gem_rubies: >-
@@ -1,5 +1,5 @@
1
1
  ---
2
- # defaults file for qb/gem/new
2
+ # defaults file for qb/ruby/gem/new
3
3
 
4
4
  gem_is_project: false
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/gem/new
2
+ # meta file for qb/ruby/gem/new
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/gem/new
2
+ # meta/qb.yml file for qb/ruby/gem/new
3
3
  #
4
4
  # qb settings for this role. see README.md for more info.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  ---
2
- # tasks file for qb/gem/new
2
+ # tasks file for qb/ruby/gem/new
3
3
 
4
4
  - include: >-
5
5
  {{ role_path }}/tasks/bundle_gem.yml
@@ -0,0 +1,5 @@
1
+ ---
2
+ # defaults file for qb/ruby/gem/release
3
+
4
+ gem_root: >-
5
+ {{ qb_dir }}
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/gem/release
2
+ # meta file for qb/ruby/gem/release
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -0,0 +1,27 @@
1
+ ---
2
+ # meta/qb.yml file for qb/ruby/gem/release
3
+ #
4
+ # qb settings for this role. see README.md for more info.
5
+ #
6
+
7
+ description: |
8
+ Release a gem, handling version change, tagging, committing, pushing, etc.
9
+
10
+ Depends on `rake` and `bundler` gems, using the `release` task that
11
+ {Bundler::GemHelpers} provides.
12
+
13
+ # prefix for role variables
14
+ var_prefix: gem_release
15
+
16
+ # how to get a default for `dir` if it's not provided as the
17
+ default_dir: null
18
+
19
+ # Set to false to not save options
20
+ save_options: false
21
+
22
+ options:
23
+ # - name: example
24
+ # description: an example of a variable.
25
+ # required: false
26
+ # type: boolean # boolean (default) | string
27
+ # short: e
@@ -1,5 +1,5 @@
1
1
  ---
2
- # tasks file for qb/gem/release
2
+ # tasks file for qb/ruby/gem/release
3
3
 
4
4
  - name: >-
5
5
  Check that the git repo at {{ gem_root }} is clean.
@@ -147,11 +147,9 @@
147
147
 
148
148
 
149
149
  - name: >-
150
- Release with Bundler via `bundle exec rake release`.
151
- shell: bundle exec rake release
152
- args:
153
- chdir: >-
154
- {{ gem_root }}
150
+ Do the actual release via Rake and Bundler's gem helper tasks
151
+ include_tasks: >-
152
+ {{ role_path }}/tasks/release.yml
155
153
 
156
154
 
157
155
  - name: >-
@@ -0,0 +1,42 @@
1
+ ##
2
+ # Do the release by invoking `rake release` if there's a `Rakefile`, and
3
+ # otherwise by executing a small script that manually loads up the
4
+ # {Bundler::GemHelper} tasks and execute the `release` task.
5
+ #
6
+ # NOTE This will *still* fail if the `rake` gem isn't present at all, but
7
+ # it's installed by default in all generated gems, so it seems like a
8
+ # decent bet it will be there.
9
+ #
10
+ ##
11
+
12
+ - name: >-
13
+ See if there is a `Rakefile` in `{{ gem_root }}`
14
+ stat:
15
+ path: >-
16
+ {{ gem_root }}/Rakefile
17
+ register: gem_rakefile_stat_res
18
+
19
+
20
+ - when: gem_rakefile_stat_res.stat.exists
21
+ name: >-
22
+ Release via `bundle exec rake release` task
23
+ stream:
24
+ log: true
25
+ chdir: >-
26
+ {{ gem_root }}
27
+ cmd: bundle exec rake release
28
+
29
+
30
+ - when: not gem_rakefile_stat_res.stat.exists
31
+ name: >-
32
+ Release by executing a small script that calls the Rake release task
33
+ stream:
34
+ chdir: >-
35
+ {{ gem_root }}
36
+ stream:
37
+ log: true
38
+ cmd: bundle exec ruby -e <%= script %>
39
+ kwds:
40
+ script: |
41
+ Bundler::GemHelper.install_tasks
42
+ Rake::Task['release'].execute
@@ -0,0 +1,7 @@
1
+ ---
2
+ ##############################################################################
3
+ # Variable defaults for `qb/ruby/rspec/setup` role
4
+ #
5
+ # @see http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-default-variables
6
+ #
7
+ ##############################################################################
@@ -0,0 +1,9 @@
1
+ ---
2
+ ##############################################################################
3
+ # Ansible metadata for `qb/ruby/rspec/setup` role
4
+ ##############################################################################
5
+
6
+ allow_duplicates: no
7
+
8
+ dependencies: []
9
+ # - role: role-name
@@ -0,0 +1,47 @@
1
+ ---
2
+ ##############################################################################
3
+ # QB metadata for `qb/ruby/rspec/setup` role.
4
+ #
5
+ # QB settings for this role.
6
+ #
7
+ # @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata.md
8
+ #
9
+ ##############################################################################
10
+
11
+ # Shown in help output, etc.
12
+ description: >-
13
+ TODO describe qb/ruby/rspec/setup role
14
+
15
+ # Gemspec-style requirements. Right now only `.gems.qb` is used.
16
+ requirements:
17
+ gems:
18
+ qb: ~> 0.3.0
19
+
20
+ # Prefix for role variables
21
+ var_prefix: setup
22
+
23
+ # How to get a default for `DIRECTORY` arg if not provided by user.
24
+ #
25
+ # @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata/default_dir.md
26
+ #
27
+ default_dir: null # means use *must* provide `DIRECTORY` arg
28
+
29
+ # If `true`, QB will ensure `DIRECTORY` exists before starting the play.
30
+ mkdir: false
31
+
32
+ # Default user to become for play
33
+ default_user: null
34
+
35
+ # Save options in `.qb-options.yml` files
36
+ save_options: true
37
+
38
+ # Options to pass to `ansible-playbook`
39
+ ansible_options: {}
40
+
41
+ # Role CLI options that become Ansible vars
42
+ options: []
43
+ # - name: example
44
+ # description: an example of a variable.
45
+ # required: false
46
+ # type: boolean # boolean (default) | string
47
+ # short: e
@@ -0,0 +1,4 @@
1
+ ---
2
+ ##############################################################################
3
+ # Main tasks for `qb/ruby/rspec/setup` role
4
+ ##############################################################################
@@ -0,0 +1,7 @@
1
+ ---
2
+ ##############################################################################
3
+ # Variable defaults for `qb/ruby/yard/clean` role
4
+ #
5
+ # @see http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-default-variables
6
+ #
7
+ ##############################################################################
@@ -0,0 +1,9 @@
1
+ ---
2
+ ##############################################################################
3
+ # Ansible metadata for `qb/ruby/yard/clean` role
4
+ ##############################################################################
5
+
6
+ allow_duplicates: yes
7
+
8
+ dependencies:
9
+ - role: qb/ruby/yard/config
@@ -0,0 +1,48 @@
1
+ ---
2
+ ##############################################################################
3
+ # QB metadata for `qb/ruby/yard/clean` role.
4
+ #
5
+ # QB settings for this role.
6
+ #
7
+ # @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata.md
8
+ #
9
+ ##############################################################################
10
+
11
+ # Shown in help output, etc.
12
+ description: >-
13
+ TODO describe qb/ruby/yard/clean role
14
+
15
+ # Gemspec-style requirements. Right now only `.gems.qb` is used.
16
+ requirements:
17
+ gems:
18
+ qb: ~> 0.3.0
19
+
20
+ # Prefix for role variables
21
+ var_prefix: clean
22
+
23
+ # How to get a default for `DIRECTORY` arg if not provided by user.
24
+ #
25
+ # @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata/default_dir.md
26
+ #
27
+ default_dir:
28
+ from_role: qb/ruby/yard/config
29
+
30
+ # If `true`, QB will ensure `DIRECTORY` exists before starting the play.
31
+ mkdir: false
32
+
33
+ # Default user to become for play
34
+ default_user: null
35
+
36
+ # Save options in `.qb-options.yml` files
37
+ save_options: true
38
+
39
+ # Options to pass to `ansible-playbook`
40
+ ansible_options: {}
41
+
42
+ # Role CLI options that become Ansible vars
43
+ options: []
44
+ # - name: example
45
+ # description: an example of a variable.
46
+ # required: false
47
+ # type: boolean # boolean (default) | string
48
+ # short: e
@@ -0,0 +1,27 @@
1
+ ---
2
+ ##############################################################################
3
+ # Main tasks for `qb/ruby/yard/clean` role
4
+ ##############################################################################
5
+
6
+ - name: >-
7
+ Remove `{{ bundle_root }}/.yardoc`
8
+ file:
9
+ path: >-
10
+ {{ bundle_root }}/.yardoc
11
+ state: absent
12
+
13
+ - when: yard_output_abs_dir is not defined
14
+ yard.get_output_dir:
15
+ bundle_root: >-
16
+ {{ bundle_root }}
17
+
18
+ - name: >-
19
+ Remove generated documents
20
+ stream:
21
+ cmd: git clean -fdX <%= path %>
22
+ kwds:
23
+ path: >-
24
+ {{ yard_output_dir }}
25
+ chdir: >-
26
+ {{ bundle_root }}
27
+ log: true
@@ -0,0 +1,4 @@
1
+ ---
2
+ qb/role/qb:
3
+ modules:
4
+ - yard.get_output_dir
@@ -0,0 +1,15 @@
1
+ ---
2
+ ##############################################################################
3
+ # Variable defaults for `qb/ruby/yard/config` role
4
+ #
5
+ # @see http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-default-variables
6
+ #
7
+ ##############################################################################
8
+
9
+ bundle_root: >-
10
+ {{ qb_dir }}
11
+
12
+ yard_opts_file_rel_path: .yardopts
13
+
14
+ yard_opts_file_path: >-
15
+ {{ bundle_root | path_join( yard_opts_file_rel_path ) }}