radon 0.1.2 → 0.1.3

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: 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.