learn_create 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -4
  3. data/lib/learn_create.rb +47 -10
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0632a9b6828b2a51708d93d57a9003c1f54681efcfd85257862e576da10653a
4
- data.tar.gz: 7275c70220e8e6d76944a5055315e19fe7f35ffd18b4b64ddc55a7c56b2649aa
3
+ metadata.gz: 1bf2afcfb843f978d89391f3a4b434c0b6c384eee625dd4638905d7a832c5f10
4
+ data.tar.gz: 8fff4925d8a1fc5250766e0ab6d3a7d5d76f6b6360af8d1734cd1e8bfe8662bb
5
5
  SHA512:
6
- metadata.gz: 792350be3024c1fd3287e997aca6d60b447ecfd1bccfbe44a720b92b16239d5c28a76a083f69014b9d56824a5e4c1bb6b71f59f3ee482913898c3530c25f05dc
7
- data.tar.gz: 95bdcad9486e72f1619824d68b8362eb84d3bb4a8f0eb75113b00ef577123c7337700540ec12fff71f7f27d1fd0c7b44800a4f36944a17fe55811bff3069ce68
6
+ metadata.gz: 927c820585f1ead5f3b0e4a6de0b6f1ad53d69a5ed642a2254ee57a10e91834a1e7c17c910842997d22065701bfe3a1b86900280917a18be3af59c60d21fc6e4
7
+ data.tar.gz: 9e2338fdfa1041061ef983211a1176446731246d4bd04d7a9b9b431cb3a47e8e527704261f92b527bfd5abc1d96f3d63da7c0dd1bc5f75c48a372a66e9322ed5
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This gem is designed to aid in the creation of learn lessons.
4
4
 
5
- ## Installation
5
+ ## Installation and Setup
6
6
 
7
7
  Before using `learn_create`, you must install `hub`, GitHub's extended CLI API.
8
8
 
@@ -10,8 +10,18 @@ Before using `learn_create`, you must install `hub`, GitHub's extended CLI API.
10
10
  $ brew install hub
11
11
  ```
12
12
 
13
- Once `hub` is installed, you when it is first run, it will require your GitHub
14
- credentials. Install the `learn_create` gem:
13
+ Once `hub` is installed, you'll need to get it configured before running
14
+ `learn_create`. The best way to do this is to use `hub` once to create a
15
+ repository on learn-co-curriculum. In the shell:
16
+
17
+ - Create a new, empty folder and navigate into it
18
+ - Run `hub create learn-co-curriculum/<whatever name you've chosen>`
19
+ - You should be prompted to sign into GitHub
20
+ - If everything works as expected you should now have an empty
21
+ learn-co-curriculum repo
22
+ - Delete the repo. Everything should be set up now.
23
+
24
+ Install the `learn_create` gem:
15
25
 
16
26
  ```sh
17
27
  $ gem install learn_create
@@ -27,4 +37,11 @@ learn_create
27
37
  ```
28
38
 
29
39
  Follow the command line prompts for setting up and naming your repository. The
30
- repo will be created locally and pushed to GitHub.
40
+ repo will be created locally and pushed to GitHub. When finished, you can `cd`
41
+ into the local folder or open it on github to start working.
42
+
43
+ ## Resources
44
+
45
+ - [Hub]
46
+
47
+ [hub]: https://hub.github.com/hub.1.html
data/lib/learn_create.rb CHANGED
@@ -11,7 +11,7 @@ class LearnCreate
11
11
 
12
12
  loop do
13
13
  puts 'What is the name of the repository you would like to create?'
14
- @repo_name = gets.chomp
14
+ @repo_name = gets.strip.gsub(/\s+/, '-').downcase
15
15
  url = 'https://api.github.com/repos/learn-co-curriculum/' + @repo_name
16
16
  encoded_url = URI.encode(url).slice(0, url.length)
17
17
 
@@ -42,7 +42,6 @@ class LearnCreate
42
42
  case language
43
43
  when /^ru/
44
44
  create_local_lesson('lab', 'Ruby')
45
-
46
45
  when /^j/
47
46
  create_local_lesson('lab', 'JavaScript')
48
47
 
@@ -90,6 +89,7 @@ class LearnCreate
90
89
  template_path = File.expand_path(gem_template_location) + template_folder
91
90
 
92
91
  copy_template(template_path)
92
+ create_dot_learn_file(type, language)
93
93
  end
94
94
 
95
95
  def copy_template(template_path)
@@ -98,33 +98,70 @@ class LearnCreate
98
98
  `#{cmd}`
99
99
  end
100
100
 
101
+ def create_dot_learn_file(type = 'undefined', language = 'undefined')
102
+ `
103
+ cd #{@repo_name}
104
+ cat > .learn <<EOL
105
+ tags:
106
+ - #{type}
107
+ languages:
108
+ - #{language}
109
+ `
110
+ end
111
+
112
+ def cd_into_and(command)
113
+ "cd #{@repo_name} && #{command}"
114
+ end
115
+
101
116
  def git_init
102
- 'git init'
117
+ cmd = cd_into_and('git init')
118
+ `#{cmd}`
103
119
  end
104
120
 
105
121
  def git_add
106
- 'git add .'
122
+ cmd = cd_into_and('git add .')
123
+ `#{cmd}`
107
124
  end
108
125
 
109
126
  def git_commit
110
- 'git commit -m "automated initial commit"'
127
+ cmd = cd_into_and('git commit -m "automated initial commit"')
128
+ `#{cmd}`
111
129
  end
112
130
 
113
131
  def git_create
114
- "hub create learn-co-curriculum/#{@repo_name}"
132
+ cmd = cd_into_and("hub create learn-co-curriculum/#{@repo_name}")
133
+ `#{cmd}`
115
134
  end
116
135
 
117
136
  def git_set_remote
118
- "git remote set-url origin https://github.com/learn-co-curriculum/#{@repo_name}"
137
+ cmd = cd_into_and("git remote set-url origin https://github.com/learn-co-curriculum/#{@repo_name}")
138
+ `#{cmd}`
119
139
  end
120
140
 
121
141
  def git_push
122
- 'git push -u origin master'
142
+ cmd = cd_into_and('git push -u origin master')
143
+ `#{cmd}`
123
144
  end
124
145
 
125
146
  def create_new_repo
126
147
  # must be in a single chain. 'cd' doesn't work the way it would in the shell
127
- cmd = "cd #{@repo_name} && #{git_init} && #{git_add} && #{git_commit} && #{git_create} && #{git_set_remote} && #{git_push} && cd .."
128
- `#{cmd}`
148
+ puts ''
149
+ puts 'Initializing git repository'
150
+ git_init
151
+ puts ''
152
+ puts 'Staging content for commit'
153
+ git_add
154
+ puts ''
155
+ puts 'Creating initial commit'
156
+ git_commit
157
+ puts ''
158
+ puts 'Creating remote learn-co-curriculum repository'
159
+ git_create
160
+ puts ''
161
+ puts 'Setting git remote'
162
+ git_set_remote
163
+ puts ''
164
+ puts 'Pushing to remote'
165
+ git_push
129
166
  end
130
167
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: learn_create
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - flatironschool