generic_gem 0.1.0 → 0.1.2

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: 75cf554db010518773c6fcc6526affc7bfd3dce5
4
- data.tar.gz: bf2dd0eabfa2df632a0082338a87d94479b173a8
3
+ metadata.gz: c1c76f691c1a9ae2ee6b63a762ccf11a785f739b
4
+ data.tar.gz: c57d35b69fef136faffd2b4257c623bd65354eb5
5
5
  SHA512:
6
- metadata.gz: 024cca148efc7e0afc2bb0ea358bb18cc861a4a8518911d88780cb8ca3551690a1aa90a4bd76140c25bba7f4a368d97da98c4ea393f6178e8b1de94598b426a5
7
- data.tar.gz: ce82253278060bab6a118694da730a3c597c265d2348b23becf72bc9f7bcfb798e056185f251ef1cc9c36405c92322969301a997208699544f271fe85ad062f1
6
+ metadata.gz: 0fc751dd42b73969dcc018bc424baeff9f7b30471159ded31288b91865472a6f880813a6d29e8b0d39533ce260528ee2ccb2f31ba647eabdaf0aa5857cd6e234
7
+ data.tar.gz: d3ae3a5acbcf0412e2f4da4b3feba36834e8bce28f230b8e3aba3c4ed6d3456453369d1dc9a50ac32183f896ab7ff5115ad8f60c78b6d924946ada58fc376d3e
data/.rubocop.yml CHANGED
@@ -2,6 +2,10 @@ Metrics/AbcSize:
2
2
  Exclude:
3
3
  - lib/generic_gem.rb
4
4
 
5
+ Metrics/BlockLength:
6
+ Exclude:
7
+ - spec/generic_gem_spec.rb
8
+
5
9
  Metrics/LineLength:
6
10
  Exclude:
7
11
  - bin/generic_gem
data/.travis.yml CHANGED
@@ -1,3 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.3
3
+ - 2.4.1
4
+ - 2.3.4
data/code_test.sh CHANGED
@@ -10,9 +10,9 @@ echo 'bundle install'
10
10
  bin/setup >/dev/null
11
11
 
12
12
  echo
13
- echo '-------'
14
- echo 'rubocop'
15
- rubocop
13
+ echo '----------'
14
+ echo 'rubocop -D'
15
+ rubocop -D
16
16
 
17
17
  echo
18
18
  echo '-----------'
data/credentials.sh ADDED
@@ -0,0 +1,53 @@
1
+ #!/bin/bash
2
+
3
+ # Output:
4
+ # First argument if it is not blank
5
+ # Second argument if first argument is blank
6
+ anti_blank () {
7
+ if [ -z "$1" ]; then
8
+ echo "$2"
9
+ else
10
+ echo "$1"
11
+ fi
12
+ }
13
+
14
+ # Setting Git email if necessary
15
+ GIT_EMAIL="$(git config user.email)"
16
+ if [ -z "$GIT_EMAIL" ]; then
17
+ EMAIL_DEF='you@example.com'
18
+ echo
19
+ echo "Default email address: ${EMAIL_DEF}"
20
+ echo
21
+ echo 'Enter your Git email address:'
22
+ read EMAIL_SEL
23
+ EMAIL=$(anti_blank $EMAIL_SEL $EMAIL_DEF)
24
+ echo
25
+
26
+ echo
27
+ echo '------------------------------'
28
+ echo "git config --global user.email"
29
+ echo "$EMAIL"
30
+ git config --global user.email "$EMAIL"
31
+ fi
32
+
33
+ # Setting Git name if necessary
34
+ GIT_NAME="$(git config user.name)"
35
+ if [ -z "$GIT_NAME" ]; then
36
+ NAME_DEF='Your Name'
37
+ echo
38
+ echo "Default name: ${NAME_DEF}"
39
+ echo
40
+ echo 'Enter your Git name:'
41
+ read NAME_SEL
42
+
43
+ # NOTE: The double quotes are needed to avoid truncating the string
44
+ # at the space.
45
+ NAME=$(anti_blank "$NAME_SEL" "$NAME_DEF")
46
+
47
+ echo
48
+ echo '-----------------------------'
49
+ echo "git config --global user.name"
50
+ echo "$NAME"
51
+ git config --global user.name "$NAME"
52
+ echo
53
+ fi
data/generic_gem.gemspec CHANGED
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'generic_gem/version'
@@ -28,9 +29,9 @@ Gem::Specification.new do |spec|
28
29
  spec.add_development_dependency 'gemsurance'
29
30
  spec.add_development_dependency 'ruby-graphviz'
30
31
 
31
- spec.add_development_dependency 'codeclimate-test-reporter'
32
32
  spec.add_development_dependency 'simplecov'
33
33
 
34
34
  spec.add_runtime_dependency 'string_in_file'
35
35
  spec.add_runtime_dependency 'replace_quotes'
36
+ spec.add_runtime_dependency 'line_containing'
36
37
  end
@@ -10,9 +10,9 @@ echo 'bundle install'
10
10
  bin/setup >/dev/null
11
11
 
12
12
  echo
13
- echo '-------'
14
- echo 'rubocop'
15
- rubocop
13
+ echo '----------'
14
+ echo 'rubocop -D'
15
+ rubocop -D
16
16
 
17
17
  echo
18
18
  echo '-----------'
@@ -1,3 +1,7 @@
1
- Metrics/LineLength:
1
+ Metrics/BlockLength:
2
2
  Exclude:
3
3
  - gemspec_file
4
+
5
+ Metrics/LineLength:
6
+ Exclude:
7
+ - gemspec_file
data/lib/generic_gem.rb CHANGED
@@ -1,22 +1,22 @@
1
1
  require 'generic_gem/version'
2
2
  require 'string_in_file'
3
3
  require 'replace_quotes'
4
+ require 'line_containing'
4
5
 
5
6
  #
6
7
  module GenericGem
7
- def self.create(gem_name, your_name, your_email)
8
+ def self.create(gem_name)
8
9
  puts '**********************'
9
10
  puts 'Welcome to Generic Gem'
10
11
  puts "GEM NAME: #{gem_name}"
11
- puts "YOUR NAME: #{your_name}"
12
- puts "YOUR EMAIL: #{your_email}"
13
12
  ENV['DIR_MAIN'] = File.expand_path('../../', __FILE__)
14
13
 
15
14
  bundle_config
16
15
  bundle_gem(gem_name)
16
+ copy_credentials_sh(gem_name)
17
+ enter_credentials_sh(gem_name)
17
18
  update_version(gem_name)
18
- add_name(gem_name, your_name)
19
- update_gemspec(gem_name, your_email)
19
+ update_gemspec(gem_name)
20
20
  add_gem_dep(gem_name, 'rubocop')
21
21
  add_gem_dep(gem_name, 'sandi_meter')
22
22
  add_gem_dep(gem_name, 'bundler-audit')
@@ -55,27 +55,30 @@ module GenericGem
55
55
  t1.join
56
56
  end
57
57
 
58
+ def self.copy_credentials_sh(gem_name)
59
+ puts '----------------------'
60
+ puts 'Copying credentials.sh'
61
+ system("cp #{ENV['DIR_MAIN']}/credentials.sh #{gem_name}")
62
+ end
63
+
64
+ def self.enter_credentials_sh(gem_name)
65
+ puts '-----------------------------------'
66
+ puts 'Entering credentials (if necessary)'
67
+
68
+ # Skip this step in Travis
69
+ system("sh #{gem_name}/credentials.sh") if ENV['TRAVIS'] != 'true'
70
+ end
71
+
58
72
  def self.update_version(gem_name)
59
73
  puts '----------------------'
60
74
  puts 'Initial version: 0.0.0'
61
75
  StringInFile.replace('0.1.0', '0.0.0', "#{gem_name}/lib/#{gem_name}/version.rb")
62
76
  ReplaceQuotes.update("#{gem_name}/lib/#{gem_name}/version.rb")
63
77
  StringInFile.replace('module', "#\nmodule", "#{gem_name}/lib/#{gem_name}/version.rb")
78
+ StringInFile.replace("'0.0.0'", "'0.0.0'.freeze", "#{gem_name}/lib/#{gem_name}/version.rb")
64
79
  end
65
80
 
66
- def self.add_name(gem_name, your_name)
67
- puts '-----------------------------------------------------------'
68
- puts "Filling in your name in LICENSE.txt and #{gem_name}.gemspec"
69
- puts "Your name: #{your_name}"
70
- StringInFile.replace('TODO: Write your name', your_name, "#{gem_name}/LICENSE.txt")
71
- StringInFile.replace('TODO: Write your name', your_name, "#{gem_name}/#{gem_name}.gemspec")
72
- end
73
-
74
- def self.update_gemspec(gem_name, your_email)
75
- puts '----------------------------------------------------'
76
- puts "Filling in your email address in #{gem_name}.gemspec"
77
- StringInFile.replace('TODO: Write your email address', your_email, "#{gem_name}/#{gem_name}.gemspec")
78
-
81
+ def self.update_gemspec(gem_name)
79
82
  puts '-----------------------------------------------------'
80
83
  puts "Filling in the gem description in #{gem_name}.gemspec"
81
84
  StringInFile.replace('TODO: Write a longer description or delete this line.', 'GENERIC DESCRIPTION', "#{gem_name}/#{gem_name}.gemspec")
@@ -91,9 +94,15 @@ module GenericGem
91
94
  ReplaceQuotes.update("#{gem_name}/#{gem_name}.gemspec")
92
95
  StringInFile.replace("'\\x0'", '"\\x0"', "#{gem_name}/#{gem_name}.gemspec")
93
96
 
94
- puts '--------------------------------------------------------------'
95
- puts "Replace 'raise' in #{gem_name}/#{gem_name}.gemspec with 'fail'"
96
- StringInFile.replace("raise 'RubyGems", "fail 'RubyGems", "#{gem_name}/#{gem_name}.gemspec")
97
+ puts '----------------------------------------------------'
98
+ puts "Updating #{gem_name}.gemspec to remove excess spaces"
99
+ while StringInFile.present(' =', "#{gem_name}/#{gem_name}.gemspec")
100
+ StringInFile.replace(' =', ' =', "#{gem_name}/#{gem_name}.gemspec")
101
+ end
102
+
103
+ puts '------------------------------------------------------------------'
104
+ puts "Updating #{gem_name}.gemspec to add empty line after magic comment"
105
+ LineContaining.add_after('# coding: utf-8', '', "#{gem_name}/#{gem_name}.gemspec")
97
106
  end
98
107
 
99
108
  def self.add_gem_dep(gem_name, gem_dep)
@@ -101,8 +110,7 @@ module GenericGem
101
110
  puts "Adding #{gem_dep} development dependency"
102
111
  str1 = "spec.add_development_dependency 'rspec'"
103
112
  str2 = "\n spec.add_development_dependency '#{gem_dep}'"
104
- str3 = "#{str1}#{str2}"
105
- StringInFile.replace(str1, str3, "#{gem_name}/#{gem_name}.gemspec")
113
+ LineContaining.add_after(str1, str2, "#{gem_name}/#{gem_name}.gemspec")
106
114
  end
107
115
 
108
116
  def self.update_spec_helper(gem_name)
@@ -116,12 +124,16 @@ module GenericGem
116
124
  f << File.read(file_old)
117
125
  end
118
126
  system("mv #{file_new} #{file_old}")
127
+ ReplaceQuotes.update(file_old)
119
128
  end
120
129
 
121
130
  def self.update_tests(gem_name)
122
131
  puts '--------------------------------'
123
132
  puts 'Revising the initial rspec tests'
124
133
  StringInFile.replace('expect(false).to eq(true)', 'expect(true).to eq(true)', "#{gem_name}/spec/#{gem_name}_spec.rb")
134
+ puts '----------------------------------------'
135
+ puts 'Convering double quotes to single quotes'
136
+ ReplaceQuotes.update("#{gem_name}/spec/#{gem_name}_spec.rb")
125
137
  end
126
138
 
127
139
  def self.update_bin_scripts(gem_name)
@@ -1,4 +1,4 @@
1
1
  #
2
2
  module GenericGem
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.2'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generic_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Hsu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-24 00:00:00.000000000 Z
11
+ date: 2017-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: codeclimate-test-reporter
126
+ name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,13 +137,13 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: simplecov
140
+ name: string_in_file
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
- type: :development
146
+ type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: string_in_file
154
+ name: replace_quotes
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: replace_quotes
168
+ name: line_containing
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
@@ -200,6 +200,7 @@ files:
200
200
  - bin/generic_gem
201
201
  - bin/setup
202
202
  - code_test.sh
203
+ - credentials.sh
203
204
  - gem_console.sh
204
205
  - gem_install.sh
205
206
  - gem_test.sh
@@ -236,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
237
  version: '0'
237
238
  requirements: []
238
239
  rubyforge_project:
239
- rubygems_version: 2.4.5.1
240
+ rubygems_version: 2.6.10
240
241
  signing_key:
241
242
  specification_version: 4
242
243
  summary: GenericGem streamlines the process of starting a new Ruby gem.