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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +78 -78
- data/bin/radon +1 -1
- data/data/crystal_app.b64 +1 -0
- data/data/crystal_app.zip +0 -0
- data/img/radon-readme-header.png +0 -0
- data/lib/core/constants.rb +1 -1
- data/lib/core/environments.rb +4 -1
- data/lib/core/extract.rb +6 -0
- data/lib/core/text.rb +50 -7
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9c3aac468691c9a99d77ae6bd41ff867f7c5e96
|
4
|
+
data.tar.gz: b79fe8d8576585b1a229ea7640c008278d0bd533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a7baff438be64075bda22ff6ff8ca202186329b7efa342a5c0d4d1b1879e5c6d5dfecdfc585979007cea1f87d092dd0158c182b715a6b03d317fbc8ee4ee4a
|
7
|
+
data.tar.gz: 389c215d16d7552a3c35b8ebdac6ff46f0012b76a6dd5ceb97021a7f0be5e106386c9cdb73b5e71ea33d0b57c77e23058de5a98f11780e19bd6ee3d12ece9ae4
|
data/Gemfile.lock
CHANGED
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
@@ -0,0 +1 @@
|
|
1
|
+
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
|
Binary file
|
data/img/radon-readme-header.png
CHANGED
Binary file
|
data/lib/core/constants.rb
CHANGED
data/lib/core/environments.rb
CHANGED
@@ -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
|
-
'
|
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.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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.
|
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-
|
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.
|
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.
|