alfalfa 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/alfalfa.rb +81 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5cfedd62bc092bd0e99a712e4f2864f11d386193
|
4
|
+
data.tar.gz: 8762afc6db93a22f47f067fb4694a952ac605071
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a77fd2b4c88db1ea48a7491ad1eb75a608c9feb620a901c6af7e84cd9dc0aa7284411f7232c68c150ac51ad93c3d53796c10d469649fe57c4e2cb1157ef2871c
|
7
|
+
data.tar.gz: 2481cf90b7f29670d67693bfb1dc1c99b06a8de1d4578e576803228664abe65d590bf2c93082185af6374a33070425d9226b08f1713abfc7f165c2c00f53d14a
|
data/lib/alfalfa.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
module Alfalfa
|
2
|
+
PWD_ARR = Dir.entries(Dir.pwd)
|
3
|
+
|
4
|
+
module_function
|
5
|
+
def self.is_gemfile?
|
6
|
+
puts Alfalfa::PWD_ARR.include?("Gemfile")
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.sort_gemfile
|
10
|
+
if Alfalfa::PWD_ARR.include?("Gemfile")
|
11
|
+
file = File.read("Gemfile")
|
12
|
+
File.open("Gemfile")
|
13
|
+
partition_file(file)
|
14
|
+
else
|
15
|
+
puts "No Gemfile found!"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def partition_file(file)
|
20
|
+
sg = segment_groups(file)
|
21
|
+
sng = segment_non_groups(file)
|
22
|
+
ss = segment_source(file)
|
23
|
+
rewrite_gemfile(sg,sng,ss)
|
24
|
+
end
|
25
|
+
|
26
|
+
def rewrite_gemfile(sg,sng,ss)
|
27
|
+
File.open("Gemfile", 'w') do |f|
|
28
|
+
f.puts ss
|
29
|
+
f.puts "\n"
|
30
|
+
f.puts sng
|
31
|
+
f.puts "\n"
|
32
|
+
f.puts sg
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def segment_groups(file)
|
37
|
+
groups = file.to_enum(:scan, /(^(group).{0,}(do)$)(\n(.+)){0,}\nend/).map{ Regexp.last_match(0) }
|
38
|
+
ordered_groups = []
|
39
|
+
|
40
|
+
segmented_groups = []
|
41
|
+
|
42
|
+
for i in 0...groups.length
|
43
|
+
segmented_groups[i] = groups[i].split("\n")
|
44
|
+
end
|
45
|
+
|
46
|
+
for i in 0...segmented_groups.length
|
47
|
+
ordered_groups[i] = segmented_groups[i][1,segmented_groups[i].length-2]
|
48
|
+
ordered_groups[i].sort!
|
49
|
+
ordered_groups[i].unshift(segmented_groups[i][0])
|
50
|
+
ordered_groups[i].push(segmented_groups[i].last)
|
51
|
+
ordered_groups[i].push("\n")
|
52
|
+
end
|
53
|
+
return ordered_groups
|
54
|
+
end
|
55
|
+
|
56
|
+
def segment_non_groups(file)
|
57
|
+
non_groups = file.to_enum(:scan, /^((?!(^(group|\t|\s|end|Source).{0,})(\n(.*)){0,}\n).)*$/).map{ Regexp.last_match(0) }
|
58
|
+
sort_segmented_non_groups(non_groups)
|
59
|
+
end
|
60
|
+
|
61
|
+
def segment_source(file)
|
62
|
+
source_group = file.match(/^Source.{0,}/i)
|
63
|
+
end
|
64
|
+
|
65
|
+
def sort_segmented_groups(segmented_groups)
|
66
|
+
ordered_groups = []
|
67
|
+
segmented_groups.each do |segmented_group|
|
68
|
+
temp_arr = segmented_group[1,segmented_group.length-2]
|
69
|
+
temp_arr.sort!
|
70
|
+
sorted << segmented_group[0].split + temp_arr + segmented_group.last.split
|
71
|
+
end
|
72
|
+
return sorted
|
73
|
+
end
|
74
|
+
|
75
|
+
def sort_segmented_non_groups(non_groups)
|
76
|
+
non_groups.sort!
|
77
|
+
non_groups.uniq!
|
78
|
+
non_groups.keep_if{ |el| el != "" && el != "end"}
|
79
|
+
return non_groups
|
80
|
+
end
|
81
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: alfalfa
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Thomas Nast
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-14 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple gem to help organize rail model methods and named backbone model
|
14
|
+
and collection functions
|
15
|
+
email: tommyn@isomedia.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/alfalfa.rb
|
21
|
+
homepage: http://rubygems.org/gems/alfalfa
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project: alfalfa
|
41
|
+
rubygems_version: 2.2.2
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Method and function organizer
|
45
|
+
test_files: []
|