radon 0.1.2 → 0.1.3

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: 4b5548f1fd48f84404e4e34a57b27dbc5afbe992
4
- data.tar.gz: 91574ca256bc4543cdb9475b06744b81c3baee3f
3
+ metadata.gz: f9c3aac468691c9a99d77ae6bd41ff867f7c5e96
4
+ data.tar.gz: b79fe8d8576585b1a229ea7640c008278d0bd533
5
5
  SHA512:
6
- metadata.gz: 9bc1b7026e02a902b15251d7723631a3ac734bb789173ca9b1747635c5404c194293a1d8e6f18688f0711c384c3152b3e88b19cb14c75940a8b29f15edb39a81
7
- data.tar.gz: a1d757d76624003c129b7583c9f5012ea7037b106c310d79f5fec97b91510a774924775859a6e95049666b85cd8e742212bf9bc4a4dd7cafddbdd9a2b3b94d13
6
+ metadata.gz: 50a7baff438be64075bda22ff6ff8ca202186329b7efa342a5c0d4d1b1879e5c6d5dfecdfc585979007cea1f87d092dd0158c182b715a6b03d317fbc8ee4ee4a
7
+ data.tar.gz: 389c215d16d7552a3c35b8ebdac6ff46f0012b76a6dd5ceb97021a7f0be5e106386c9cdb73b5e71ea33d0b57c77e23058de5a98f11780e19bd6ee3d12ece9ae4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- radon (0.1.1)
4
+ radon (0.1.2)
5
5
  paint
6
6
  rubyzip (~> 1.2)
7
7
 
data/README.md CHANGED
@@ -1,78 +1,78 @@
1
- <p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/radon-readme-header.png"></p>
2
- <p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/demo.gif"></p>
3
-
4
- ## Installation
5
-
6
- `radon` is part of the [periodic](https://periodic.now.sh) collection of apps. If you install `periodic-cli`, radon should come with it:
7
-
8
- $ gem install periodic-cli
9
-
10
- Or install just the gem:
11
-
12
- $ gem install radon
13
-
14
- ## Usage
15
-
16
- The basic usage is as follows: `radon [environment] {ProjectName}`.
17
-
18
- A full list of supported environments can be found by running `radon --list-env`
19
-
20
- #### Example:
21
-
22
- Here is radon generating a gradle project called MyGradleProject
23
- ```
24
- $ radon gradle MyGradleProject
25
- Creating project under /mnt/c/Users/Carter/Desktop/projects/MyGradleProject
26
- create MyGradleProject
27
- create MyGradleProject/.gradle/
28
- create MyGradleProject/.gradle/4.5/
29
- create MyGradleProject/.gradle/4.5/fileChanges/
30
- create MyGradleProject/.gradle/4.5/fileChanges/last-build.bin
31
- create MyGradleProject/.gradle/4.5/fileHashes/
32
- create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.bin
33
- create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.lock
34
- create MyGradleProject/.gradle/4.5/taskHistory/
35
- create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.bin
36
- create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.lock
37
- create MyGradleProject/.gradle/buildOutputCleanup/
38
- create MyGradleProject/.gradle/buildOutputCleanup/buildOutputCleanup.lock
39
- create MyGradleProject/.gradle/buildOutputCleanup/cache.properties
40
- create MyGradleProject/.gradle/buildOutputCleanup/outputFiles.bin
41
- create MyGradleProject/build.gradle
42
- create MyGradleProject/gradle/
43
- create MyGradleProject/gradle/wrapper/
44
- create MyGradleProject/gradle/wrapper/gradle-wrapper.jar
45
- create MyGradleProject/gradle/wrapper/gradle-wrapper.properties
46
- create MyGradleProject/gradlew
47
- create MyGradleProject/gradlew.bat
48
- create MyGradleProject/settings.gradle
49
- create MyGradleProject/src/
50
- create MyGradleProject/src/main/
51
- create MyGradleProject/src/main/java/
52
- create MyGradleProject/src/main/test/
53
- Done! Your project is set up in /mnt/c/Users/Carter/Desktop/projects/MyGradleProject.
54
- ```
55
-
56
- ## Development
57
-
58
- #### Adding an environment
59
- If you want to add an environment to radon, here are the steps:
60
- 1. Create the standard directory structure of that environment. This is usually found on the environment's website or just through convention.
61
- 2. Zip all the files into one file (`zip -r env.zip .`)
62
- 3. Save the zip data as base64 (`cat env.zip | base64 -w 0 > env.b64`)
63
- 4. Put both the base64 data and the zip file in radon's `/data` folder.
64
- 5. Add the function(s) in `extract.rb` to extract the _zip_ file to the target (See [here](https://github.com/cbrnrd/radon/blob/7cd141b5a61de6a8abaf0009a1a8cfd090f05e97/lib/core/extract.rb#L5))
65
- 6. Add the environments to `@@all` in `environments.rb`
66
- 7. Open a pull request
67
-
68
- ## Contributing
69
-
70
- Bug reports and pull requests are welcome on GitHub at https://github.com/cbrnrd/radon. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
71
-
72
- ## License
73
-
74
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
75
-
76
- ## Code of Conduct
77
-
78
- Everyone interacting in the Radon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cbrnrd/radon/blob/master/CODE_OF_CONDUCT.md).
1
+ <p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/radon-readme-header.png"></p>
2
+ <p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/demo.gif"></p>
3
+
4
+ ## Installation
5
+
6
+ `radon` is part of the [periodic](https://periodic.now.sh) collection of apps. If you install `periodic-cli`, radon should come with it:
7
+
8
+ $ gem install periodic-cli
9
+
10
+ Or install just the gem:
11
+
12
+ $ gem install radon
13
+
14
+ ## Usage
15
+
16
+ The basic usage is as follows: `radon [environment] {ProjectName}`.
17
+
18
+ A full list of supported environments can be found by running `radon --list-env`
19
+
20
+ #### Example:
21
+
22
+ Here is radon generating a gradle project called MyGradleProject
23
+ ```
24
+ $ radon gradle MyGradleProject
25
+ Creating project under /mnt/c/Users/Carter/Desktop/projects/MyGradleProject
26
+ create MyGradleProject
27
+ create MyGradleProject/.gradle/
28
+ create MyGradleProject/.gradle/4.5/
29
+ create MyGradleProject/.gradle/4.5/fileChanges/
30
+ create MyGradleProject/.gradle/4.5/fileChanges/last-build.bin
31
+ create MyGradleProject/.gradle/4.5/fileHashes/
32
+ create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.bin
33
+ create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.lock
34
+ create MyGradleProject/.gradle/4.5/taskHistory/
35
+ create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.bin
36
+ create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.lock
37
+ create MyGradleProject/.gradle/buildOutputCleanup/
38
+ create MyGradleProject/.gradle/buildOutputCleanup/buildOutputCleanup.lock
39
+ create MyGradleProject/.gradle/buildOutputCleanup/cache.properties
40
+ create MyGradleProject/.gradle/buildOutputCleanup/outputFiles.bin
41
+ create MyGradleProject/build.gradle
42
+ create MyGradleProject/gradle/
43
+ create MyGradleProject/gradle/wrapper/
44
+ create MyGradleProject/gradle/wrapper/gradle-wrapper.jar
45
+ create MyGradleProject/gradle/wrapper/gradle-wrapper.properties
46
+ create MyGradleProject/gradlew
47
+ create MyGradleProject/gradlew.bat
48
+ create MyGradleProject/settings.gradle
49
+ create MyGradleProject/src/
50
+ create MyGradleProject/src/main/
51
+ create MyGradleProject/src/main/java/
52
+ create MyGradleProject/src/main/test/
53
+ Done! Your project is set up in /mnt/c/Users/Carter/Desktop/projects/MyGradleProject.
54
+ ```
55
+
56
+ ## Development
57
+
58
+ #### Adding an environment
59
+ If you want to add an environment to radon, here are the steps:
60
+ 1. Create the standard directory structure of that environment. This is usually found on the environment's website or just through convention.
61
+ 2. Zip all the files into one file (`zip -r env.zip .`)
62
+ 3. Save the zip data as base64 (`cat env.zip | base64 -w 0 > env.b64`)
63
+ 4. Put both the base64 data and the zip file in radon's `/data` folder.
64
+ 5. Add the function(s) in `extract.rb` to extract the _zip_ file to the target (See [here](https://github.com/cbrnrd/radon/blob/7cd141b5a61de6a8abaf0009a1a8cfd090f05e97/lib/core/extract.rb#L5))
65
+ 6. Add the environments to `@@all` in `environments.rb`
66
+ 7. Open a pull request
67
+
68
+ ## Contributing
69
+
70
+ Bug reports and pull requests are welcome on GitHub at https://github.com/cbrnrd/radon. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
71
+
72
+ ## License
73
+
74
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
75
+
76
+ ## Code of Conduct
77
+
78
+ Everyone interacting in the Radon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cbrnrd/radon/blob/master/CODE_OF_CONDUCT.md).
data/bin/radon CHANGED
@@ -51,4 +51,4 @@ while (opt = ARGV.shift) do
51
51
  error "#{opt} is not a supported environment!"
52
52
  exit 1
53
53
  end
54
- end
54
+ end
@@ -0,0 +1 @@
1
+ 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
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- VERSION = "0.1.2"
1
+ VERSION = "0.1.3"
2
2
 
3
3
  PROJECT_ROOT = File.absolute_path(File.join(File.dirname(__FILE__), "..", ".."))
4
4
  DATA_DIR = File.absolute_path(File.join(PROJECT_ROOT, "data"))
@@ -6,8 +6,9 @@ class Environments
6
6
  'java' => File.join(DATA_DIR, "java.zip"),
7
7
  'maven' => File.join(DATA_DIR, "maven.zip"),
8
8
  'python' => File.join(DATA_DIR, "python.zip"),
9
+ 'c' => File.join(DATA_DIR, "c.zip"),
9
10
  'ruby (beta)' => File.join(DATA_DIR, "ruby.zip"),
10
- 'c' => File.join(DATA_DIR, "c.zip")
11
+ 'crystal'=> File.join(DATA_DIR, "crystal_app.zip")
11
12
  }
12
13
 
13
14
  # Gets all environments as an array of strings
@@ -34,6 +35,8 @@ class Environments
34
35
  extract_maven(target)
35
36
  when 'c'
36
37
  extract_c(target)
38
+ when 'crystal'
39
+ extract_crystal(target)
37
40
  else
38
41
  error("#{key} is not a supported environment.\nYou can suggest it be added at https://github.com/cbrnrd/radon/issues")
39
42
  end
data/lib/core/extract.rb CHANGED
@@ -27,6 +27,12 @@ def extract_c(target)
27
27
  extract_zip(Radon::Environments.getTargetOf('c'), target)
28
28
  end
29
29
 
30
+ def extract_crystal(target)
31
+ extract_zip(Radon::Environments.getTargetOf('crystal'), target)
32
+ find_and_replace_all(target, '{{NAME}}', projectify(target))#.split('-').collect(&:capitalize).join)
33
+ find_and_replace_all(target, '{{CAPSNAME}}', classify(target))
34
+ end
35
+
30
36
  # Extracts some zip data to the passed destination
31
37
  def extract_zip(file, destination)
32
38
  puts "Creating project under #{File.expand_path(destination)}" unless $quiet
data/lib/core/text.rb CHANGED
@@ -8,6 +8,35 @@ def error(*args)
8
8
  puts Paint["ERROR", '#e74c3c'] + " - #{args}"
9
9
  end
10
10
 
11
+ def report_error_to_github(trace)
12
+ puts %Q{
13
+ :::::::::::::::::: COPY BELOW ::::::::::::::::::
14
+ ### Ruby version
15
+
16
+ `#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}`
17
+
18
+ ### OS
19
+
20
+ #{Gem::Platform.local.os}
21
+
22
+ ### Radon Version
23
+
24
+ `VERSION`
25
+
26
+ ### Date Found
27
+
28
+ #{Time.now.strftime("%d/%m/%Y %H:%M")}
29
+
30
+ ### Backtrace
31
+ ```
32
+ #{trace}
33
+ ```
34
+ :::::::::::::::::: COPY ABOVE ::::::::::::::::::
35
+ #{Paint["Whoops! Looks like you've found a bug in radon. Please copy the text above and open a new issue at ", '#e74c3c'] + Paint['https://github.com/cbrnrd/radon/issues', :bold, :bright]}
36
+ }
37
+
38
+ end
39
+
11
40
  def create(fname)
12
41
  puts Paint[" create", '#2ecc71'] + " #{fname}" unless $quiet
13
42
  end
@@ -29,13 +58,27 @@ def projectify(name)
29
58
  return name
30
59
  end
31
60
 
61
+ def classify(name)
62
+ name = name.gsub(/-[a-z]/) {|s| s.upcase }
63
+ name.delete!('-')
64
+ return name.slice(0,1).capitalize + name.slice(1..-1)
65
+ end
66
+
32
67
  def find_and_replace_all(target_dir, find, repl)
33
- Dir.foreach(target_dir) do |file_name|
34
- og_fname = file_name
35
- file_name = File.join(target_dir, file_name)
36
- next if og_fname == '.' || og_fname == '..' || File.directory?(file_name)
37
- text = File.read(file_name)
38
- replace = text.gsub!(find, repl)
39
- File.open(file_name, "w") { |file| file.puts replace }
68
+ files = Dir[File.join(target_dir,'**','*')]
69
+ files.each do |file_name|
70
+ next if File.directory?(file_name)
71
+ begin
72
+ text = File.read(file_name)
73
+ # Do the find and replace
74
+ new_contents = text.gsub(find, repl)
75
+ File.open(file_name, 'w') {|f| f.puts new_contents}
76
+ rescue Errno::ENOENT => e
77
+ # Something weird happened (this shouldn't come up)
78
+ error "ERROR GSUBING FILE #{file_name}"
79
+ report_error_to_github(e.backtrace)
80
+ next
81
+ end
40
82
  end
83
+
41
84
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - cbrnrd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-27 00:00:00.000000000 Z
11
+ date: 2018-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: paint
@@ -103,6 +103,8 @@ files:
103
103
  - bin/setup
104
104
  - data/c.b64
105
105
  - data/c.zip
106
+ - data/crystal_app.b64
107
+ - data/crystal_app.zip
106
108
  - data/gradle.b64
107
109
  - data/gradle.zip
108
110
  - data/java.b64
@@ -144,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
146
  version: '0'
145
147
  requirements: []
146
148
  rubyforge_project:
147
- rubygems_version: 2.6.14
149
+ rubygems_version: 2.6.13
148
150
  signing_key:
149
151
  specification_version: 4
150
152
  summary: Radon generates starter code for all kinds of environments.