qb 0.3.20 → 0.3.21

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: 85f1f3cd75304ea28284a8a7e9cea53dcae4c7f2
4
- data.tar.gz: ccd49744cc2b48260201e38bed1776998ab3b13d
3
+ metadata.gz: 92359f70296e31a7e883ac575c8164ce444c8cab
4
+ data.tar.gz: 8070f79142d4c489a6a7961f0d20e37d88a8ceba
5
5
  SHA512:
6
- metadata.gz: 6a8f68092bb909d9a743c22c76e1a7c3a183105b45da634a19e6d428a6282363299d7d0033ea866e45b870a72f3e47098e1806290b8735d385ccd391a3f382ac
7
- data.tar.gz: 2251cdc6d535d543826906478caa30b277e243695b980f40d18d5c8def5bf9630fe904c3bc046f605224b9e82027981fcc05a86892228941bd06d6901d8eca33
6
+ metadata.gz: 3560b2479fcaeccd06404b3a39fab67c3d14e68c3426e5fa94beab60ba721ff4f62a93feb66f2f64ddf712c56902a64e96144687db3f525dc3ef7aaf89a2c9c6
7
+ data.tar.gz: 81aa54dc74f784127245c3c895bdafdb2874f76f5c4f5a96e351a95acc501e08c75a88bc7d1e30a44acef9d3257f220a41b9bedb0a189e98f4d63063dfd909c5
@@ -4,7 +4,7 @@ module QB
4
4
 
5
5
  GEM_NAME = 'qb'
6
6
 
7
- VERSION = "0.3.20"
7
+ VERSION = '0.3.21'
8
8
 
9
9
  MIN_ANSIBLE_VERSION = Gem::Version.new '2.1.2'
10
10
 
@@ -37,7 +37,16 @@ def main
37
37
  end
38
38
  end
39
39
 
40
- result = b.eval args.fetch('src')
40
+ if args['src'] && args['file']
41
+ raise "Don't provide both src and file!"
42
+ end
43
+
44
+ if !args['src'] && !args['file']
45
+ raise "Must provide one of src or file!"
46
+ end
47
+
48
+ src = args['src'] || File.read( args['file'] )
49
+ result = b.eval src
41
50
 
42
51
  if result.is_a? Hash
43
52
  result = namespace(args['namespace'], result) if args['namespace']
@@ -79,4 +88,4 @@ def main
79
88
  end
80
89
  end
81
90
 
82
- main if __FILE__ == $0
91
+ main if __FILE__ == $0
@@ -0,0 +1,78 @@
1
+
2
+ # 1. Find the gemspec path
3
+
4
+ spec_pattern = "#{ gem_root }/*.gemspec"
5
+ spec_path = Dir.glob(spec_pattern)[0]
6
+
7
+ if spec_path.nil?
8
+ raise "No gemspec found for pattern #{ spec_pattern }"
9
+ end
10
+
11
+
12
+ # 2. Get the gem name and version
13
+ #
14
+ # The gem *may already be loaded*, which would break the standard gemspec
15
+ # approach because the `require` will be a no-op, resulting in the
16
+ # already loaded version number being used instead of the one in the
17
+ # file.
18
+ #
19
+ # This is only a problem for NRSER, which is loaded in vars.rb.rb, but
20
+ # this fix should work for any module without worrying about what is
21
+ # currently loaded... grab the info we need in a clean child process.
22
+ #
23
+ code = <<-END
24
+ require 'json'
25
+ spec = Gem::Specification.load(#{ JSON.dump spec_path })
26
+ puts JSON.dump({
27
+ 'version' => spec.version.version,
28
+ 'name' => spec.name,
29
+ })
30
+ END
31
+
32
+ obj = JSON.load `ruby -e #{ code.shellescape }`
33
+ version = Gem::Version.new obj['version']
34
+ name = obj['name']
35
+
36
+
37
+ # 3. Figure out what the next version will be
38
+
39
+ segments = version.segments.dup
40
+ segments.pop while segments.any? {|s| s.is_a? String}
41
+
42
+ segments[-1] = segments[-1].succ
43
+ segments << 'dev'
44
+
45
+ next_version = segments.join('.')
46
+
47
+
48
+ # 4. Figure out what file the version definition lives in
49
+
50
+ version_path = if version_file.nil?
51
+ bare_path = File.join( gem_root, 'VERSION' )
52
+
53
+ if File.file?( bare_path )
54
+ bare_path
55
+ else
56
+ # quick hack to deal with `a-b => a/b` gem names
57
+ name_path = name.gsub '-', '/'
58
+
59
+ File.join gem_root, 'lib', name_path, 'version.rb'
60
+ end
61
+ else
62
+ File.expand_path version_file, cwd
63
+ end
64
+
65
+ unless File.file?( version_path )
66
+ raise "Version file not found at #{ version_path }"
67
+ end
68
+
69
+ # 5. Return the facts
70
+
71
+ {
72
+ 'name' => name,
73
+ 'current_version' => version.version,
74
+ 'release_version' => version.release,
75
+ 'next_version' => next_version,
76
+ 'version_path' => version_path,
77
+ 'spec_path' => spec_path,
78
+ }
@@ -0,0 +1,43 @@
1
+ # Set the gem version in either a `VERSION` constant in a Ruby source file
2
+ # or as the sole contents of a `<gem_root>/VERSION` file.
3
+
4
+ # Handle Ruby file
5
+ - when: (gem_version_path | basename) != 'VERSION'
6
+ name: >-
7
+ Replace version string with '{{ version }}' in `{{ gem_version_path }}`
8
+ replace:
9
+ dest: >-
10
+ {{ gem_version_path }}
11
+ regexp: >-
12
+ VERSION\s*=\s*["'][^"']+["']
13
+ replace: >-
14
+ VERSION = '{{ version }}'
15
+
16
+
17
+ # Handle VERSION file
18
+ - when: (gem_version_path | basename) == 'VERSION'
19
+ name: >-
20
+ Overwrite VERSION file at `{{ gem_version_path }}` with '{{ version }}'
21
+ copy:
22
+ dest: >-
23
+ {{ gem_version_path }}
24
+ content: >-
25
+ {{ version }}
26
+
27
+
28
+ - name: >-
29
+ Add version file `{{ gem_version_path }}` to Git
30
+ command: >-
31
+ git add {{ gem_version_path | quote }}
32
+ args:
33
+ chdir: >-
34
+ {{ gem_root }}
35
+
36
+
37
+ - name: >-
38
+ Commit version file `{{ gem_version_path }}` in Git
39
+ command: >-
40
+ git commit -m {{ commit_message | quote }}
41
+ args:
42
+ chdir: >-
43
+ {{ gem_root }}
@@ -63,64 +63,15 @@
63
63
  gem_root: "{{ gem_root }}"
64
64
  version_file: "{{ gem_version_file }}"
65
65
  cwd: "{{ qb_cwd }}"
66
- src: |
67
- spec_pattern = "#{ gem_root }/*.gemspec"
68
- spec_path = Dir.glob(spec_pattern)[0]
69
-
70
- if spec_path.nil?
71
- raise "No gemspec found for pattern #{ spec_pattern }"
72
- end
73
-
74
- # The gem *may already be loaded*, which would break the standard gemspec
75
- # approach because the `require` will be a no-op, resulting in the
76
- # already loaded version number being used instead of the one in the
77
- # file.
78
- #
79
- # This is only a problem for NRSER, which is loaded in vars.rb.rb, but
80
- # this fix should work for any module without worrying about what is
81
- # currently loaded... grab the info we need in a clean child process.
82
- #
83
- code = <<-END
84
- require 'json'
85
- spec = Gem::Specification.load(#{ JSON.dump spec_path })
86
- puts JSON.dump({
87
- 'version' => spec.version.version,
88
- 'name' => spec.name,
89
- })
90
- END
91
- obj = JSON.load `ruby -e #{ code.shellescape }`
92
- version = Gem::Version.new obj['version']
93
- name = obj['name']
94
-
95
- segments = version.segments.dup
96
- segments.pop while segments.any? {|s| s.is_a? String}
97
-
98
- segments[-1] = segments[-1].succ
99
- segments << 'dev'
100
-
101
- next_version = segments.join('.')
102
-
103
- version_path = if version_file.nil?
104
- # quick hack to deal with `a-b => a/b` gem names
105
- name_path = name.gsub '-', '/'
106
-
107
- File.join gem_root, 'lib', name_path, 'version.rb'
108
- else
109
- File.expand_path version_file, cwd
110
- end
111
-
112
- unless File.file?( version_path )
113
- raise "Version file not found at #{ version_path }"
114
- end
115
-
116
- {
117
- 'name' => name,
118
- 'current_version' => version.version,
119
- 'release_version' => version.release,
120
- 'next_version' => next_version,
121
- 'version_path' => version_path,
122
- 'spec_path' => spec_path,
123
- }
66
+ file: >-
67
+ {{ role_path }}/scripts/gem_and_version_info.rb
68
+ provides:
69
+ gem_name: non_empty_str
70
+ gem_current_version: non_empty_str
71
+ gem_release_version: non_empty_str
72
+ gem_next_version: non_empty_str
73
+ gem_version_path: abs_path
74
+ gem_spec_path: abs_path
124
75
 
125
76
 
126
77
  - debug:
@@ -131,46 +82,23 @@
131
82
  {{ gem_release_version }}
132
83
  - next: >-
133
84
  {{ gem_next_version }}
134
- # - spec_path: >-
135
- # {{ gem_spec_path }}
136
- # - version_path: >-
137
- # {{ gem_version_path }
85
+ - spec_path: >-
86
+ {{ gem_spec_path }}
87
+ - version_path: >-
88
+ {{ gem_version_path }}
138
89
 
139
90
 
140
91
  - when: gem_current_version != gem_release_version
141
92
  name: >-
142
93
  Change version in `{{ gem_version_path }}` from current
143
- `{{ gem_current_version }}` to `{{ gem_release_version }}`.
144
- block:
145
- - name: >-
146
- Change version to release version `{{ gem_release_version }}`.
147
- replace:
148
- dest: >-
149
- {{ gem_version_path }}
150
- regexp: >-
151
- VERSION\s*=\s*["']{{ gem_current_version }}["']
152
- replace: >-
153
- VERSION = "{{ gem_release_version }}"
154
-
155
-
156
- - when: gem_current_version != gem_release_version
157
- name: >-
158
- Add version file `{{ gem_version_path }}` to Git.
159
- command: >-
160
- git add {{ gem_version_path }}
161
- args:
162
- chdir: >-
163
- {{ gem_root }}
164
-
165
-
166
- - name: >-
167
- Commit version file `{{ gem_version_path }}` in Git.
168
- command: git commit -m "bump to v{{ gem_release_version }}"
169
- args:
170
- chdir: >-
171
- {{ gem_root }}
172
- when: gem_current_version != gem_release_version
173
- # /block
94
+ `{{ gem_current_version }}` to release `{{ gem_release_version }}`.
95
+ include_tasks: >-
96
+ {{ role_path }}/tasks/_set_version.yml
97
+ vars:
98
+ version: >-
99
+ {{ gem_release_version }}
100
+ commit_message: >-
101
+ bump to v{{ gem_release_version }}
174
102
 
175
103
 
176
104
  - name: >-
@@ -181,31 +109,13 @@
181
109
 
182
110
  - name: >-
183
111
  Change version to next version `{{ gem_next_version }}`.
184
- replace:
185
- dest: >-
186
- {{ gem_version_path }}
187
- regexp: >-
188
- VERSION\s*=\s*["']{{ gem_release_version }}["']
189
- replace: >-
190
- VERSION = "{{ gem_next_version }}"
191
-
192
-
193
- - name: >-
194
- Add next dev version to git.
195
- command: >-
196
- git add {{ gem_version_path }}
197
- args:
198
- chdir: >-
199
- {{ gem_root }}
200
-
201
-
202
- - name: >-
203
- Commit next dev version.
204
- command: >-
205
- git commit -m "start {{ gem_next_version }}"
206
- args:
207
- chdir: >-
208
- {{ gem_root }}
112
+ include_tasks: >-
113
+ {{ role_path }}/tasks/_set_version.yml
114
+ vars:
115
+ version: >-
116
+ {{ gem_next_version }}
117
+ commit_message: >-
118
+ start {{ gem_next_version }}
209
119
 
210
120
 
211
121
  - name: >-
@@ -1,5 +1,5 @@
1
1
  ---
2
- # defaults file for qb/rspex/generate
2
+ # defaults file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  gem_root: >-
5
5
  {{ qb_dir }}
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/rspex/generate
2
+ # meta file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/rspex/generate
2
+ # meta/qb.yml file for qb/ruby/nrser/rspex/generate
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/rspex/generate
2
+ # tasks file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  - include_tasks: >-
5
5
  {{ role_path }}/tasks/helpers.yml
@@ -0,0 +1,2 @@
1
+ ---
2
+ # defaults file for qb/ruby/nrser/rspex/issue
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/rspex/issue
2
+ # meta file for qb/ruby/nrser/rspex/issue
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/rspex/issue
2
+ # meta/qb.yml file for qb/ruby/nrser/rspex/issue
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/rspex/issue
2
+ # tasks file for qb/ruby/nrser/rspex/issue
3
3
 
4
4
  - set_fact:
5
5
  issue: >-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.20
4
+ version: 0.3.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
@@ -696,17 +696,6 @@ files:
696
696
  - roles/qb/role/templates/tasks/main.yml.j2
697
697
  - roles/qb/role/templates/vars/main.yml.j2
698
698
  - roles/qb/role/vars/main.yml
699
- - roles/qb/rspex/generate/defaults/main.yml
700
- - roles/qb/rspex/generate/meta/main.yml
701
- - roles/qb/rspex/generate/meta/qb.yml
702
- - roles/qb/rspex/generate/tasks/class.yml
703
- - roles/qb/rspex/generate/tasks/helpers.yml
704
- - roles/qb/rspex/generate/tasks/main.yml
705
- - roles/qb/rspex/generate/templates/class_spec.rb.j2
706
- - roles/qb/rspex/issue/defaults/main.yml
707
- - roles/qb/rspex/issue/meta/main.yml
708
- - roles/qb/rspex/issue/meta/qb.yml
709
- - roles/qb/rspex/issue/tasks/main.yml
710
699
  - roles/qb/ruby/bundler/.qb-options.yml
711
700
  - roles/qb/ruby/bundler/defaults/main.yml
712
701
  - roles/qb/ruby/bundler/filter_plugins/bundler_filters.py
@@ -747,6 +736,8 @@ files:
747
736
  - roles/qb/ruby/gem/release/defaults/main.yml
748
737
  - roles/qb/ruby/gem/release/meta/main.yml
749
738
  - roles/qb/ruby/gem/release/meta/qb.yml
739
+ - roles/qb/ruby/gem/release/scripts/gem_and_version_info.rb
740
+ - roles/qb/ruby/gem/release/tasks/_set_version.yml
750
741
  - roles/qb/ruby/gem/release/tasks/main.yml
751
742
  - roles/qb/ruby/gem/release/tasks/release.yml
752
743
  - roles/qb/ruby/gem/unhack/README.md
@@ -754,6 +745,17 @@ files:
754
745
  - roles/qb/ruby/gem/unhack/meta/main.yml
755
746
  - roles/qb/ruby/gem/unhack/meta/qb.yml
756
747
  - roles/qb/ruby/gem/unhack/tasks/main.yml
748
+ - roles/qb/ruby/nrser/rspex/generate/defaults/main.yml
749
+ - roles/qb/ruby/nrser/rspex/generate/meta/main.yml
750
+ - roles/qb/ruby/nrser/rspex/generate/meta/qb.yml
751
+ - roles/qb/ruby/nrser/rspex/generate/tasks/class.yml
752
+ - roles/qb/ruby/nrser/rspex/generate/tasks/helpers.yml
753
+ - roles/qb/ruby/nrser/rspex/generate/tasks/main.yml
754
+ - roles/qb/ruby/nrser/rspex/generate/templates/class_spec.rb.j2
755
+ - roles/qb/ruby/nrser/rspex/issue/defaults/main.yml
756
+ - roles/qb/ruby/nrser/rspex/issue/meta/main.yml
757
+ - roles/qb/ruby/nrser/rspex/issue/meta/qb.yml
758
+ - roles/qb/ruby/nrser/rspex/issue/tasks/main.yml
757
759
  - roles/qb/ruby/rspec/setup/defaults/main.yml
758
760
  - roles/qb/ruby/rspec/setup/meta/main.yml
759
761
  - roles/qb/ruby/rspec/setup/meta/qb.yml
@@ -1,2 +0,0 @@
1
- ---
2
- # defaults file for qb/rspex/issue