alfalfa 0.0.1 → 0.1.0

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/alfalfa.rb +9 -65
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5cfedd62bc092bd0e99a712e4f2864f11d386193
4
- data.tar.gz: 8762afc6db93a22f47f067fb4694a952ac605071
3
+ metadata.gz: c04046d3454853b7f27cf2a8d3337b7692fa61cc
4
+ data.tar.gz: 78b3f5671daa421912e8be4ab1cd5f265092e3f4
5
5
  SHA512:
6
- metadata.gz: a77fd2b4c88db1ea48a7491ad1eb75a608c9feb620a901c6af7e84cd9dc0aa7284411f7232c68c150ac51ad93c3d53796c10d469649fe57c4e2cb1157ef2871c
7
- data.tar.gz: 2481cf90b7f29670d67693bfb1dc1c99b06a8de1d4578e576803228664abe65d590bf2c93082185af6374a33070425d9226b08f1713abfc7f165c2c00f53d14a
6
+ metadata.gz: d53303735778df619626f381fb649dad46e8e58d2624c3044d6b1f6229d410276a0f2e2488321b57800d186ed94c6705b4cc48d97ffc6c560a005bcb9186d5ee
7
+ data.tar.gz: a3250779a08e83ff224d0659514b5462d9a91087622cca0923695fec951871e36b29a09ca97868892418bbbb0271f96433cf551a864b95ede9112e069ed921a6
@@ -1,81 +1,25 @@
1
- module Alfalfa
1
+ require_relative "alfalfa/sort/gem.rb"
2
+
3
+ class Alfalfa
4
+
2
5
  PWD_ARR = Dir.entries(Dir.pwd)
3
6
 
4
- module_function
7
+
5
8
  def self.is_gemfile?
9
+ # User may call this to see if the Gemfile is visible.
6
10
  puts Alfalfa::PWD_ARR.include?("Gemfile")
7
11
  end
8
12
 
9
13
  def self.sort_gemfile
14
+ # If the current directory has a Gemfile, set its contents to file and call partition.
10
15
  if Alfalfa::PWD_ARR.include?("Gemfile")
11
16
  file = File.read("Gemfile")
12
17
  File.open("Gemfile")
13
- partition_file(file)
18
+ Alfalfa::Gem.partition_file(file)
14
19
  else
15
20
  puts "No Gemfile found!"
16
21
  end
17
22
  end
18
23
 
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
24
+
81
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alfalfa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Nast
@@ -10,8 +10,7 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-04-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A simple gem to help organize rail model methods and named backbone model
14
- and collection functions
13
+ description: Alfalfa can be used to alphabetize cumbersome gemfiles.
15
14
  email: tommyn@isomedia.com
16
15
  executables: []
17
16
  extensions: []
@@ -41,5 +40,5 @@ rubyforge_project: alfalfa
41
40
  rubygems_version: 2.2.2
42
41
  signing_key:
43
42
  specification_version: 4
44
- summary: Method and function organizer
43
+ summary: gemfile organizer
45
44
  test_files: []