alfalfa 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/alfalfa.rb +81 -0
  3. 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: []