ruth 0.0.2 → 0.0.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 +4 -4
- data/lib/ruth.rb +1 -0
- data/lib/ruth/gemfile.rb +73 -44
- data/lib/ruth/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 882394a009b84db98c70df750c76e18d6679c25c
|
4
|
+
data.tar.gz: ae53d339ad08d97370af0e2b73cc0a4b299b5b2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34c0adfb864c6c5da10146c35b1b960f68869016c21cdbe629ede6c0022d832fe78af1e04108f00a5a570d3bdcd7e57a5320dbcd05f1f57dd10465a1d5b132c9
|
7
|
+
data.tar.gz: 0338dada8b25384ed1f942847220c317de634921590955d73760ed2b194da27b7f9af5432bbd0bd8df73256e317ff78ed3ce6796e411d30da08fbee514d31b06
|
data/lib/ruth.rb
CHANGED
data/lib/ruth/gemfile.rb
CHANGED
@@ -2,34 +2,35 @@
|
|
2
2
|
module Ruth
|
3
3
|
# Gemfile generator
|
4
4
|
class Gemfile
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :file, :data, :gem, :gemfile
|
6
6
|
|
7
|
-
def initialize
|
8
|
-
@
|
9
|
-
|
7
|
+
def initialize(yaml_file)
|
8
|
+
@gem = []
|
9
|
+
@file = yaml_file
|
10
|
+
@data = parse_yaml_file
|
10
11
|
|
11
|
-
|
12
|
-
#
|
13
|
-
# conf - Array YAML list
|
14
|
-
#
|
15
|
-
# Returns nil
|
16
|
-
def set_conf(conf)
|
17
|
-
@conf = conf
|
12
|
+
parse_gemfile_items
|
18
13
|
end
|
19
14
|
|
20
15
|
# Public - Generate Gemfile
|
21
16
|
#
|
22
17
|
# Returns Array
|
23
|
-
def
|
18
|
+
def final_gemfile
|
19
|
+
@gem.join("\n")
|
20
|
+
end
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
# Public - Write parsed data into a Gemfile
|
23
|
+
#
|
24
|
+
# file - String location fo the file
|
25
|
+
#
|
26
|
+
# Returns nil
|
27
|
+
def write_gemfile
|
28
|
+
begin
|
29
|
+
fd = File.open(@gemfile, 'w')
|
30
|
+
fd.write(final_gemfile)
|
31
|
+
ensure
|
32
|
+
fd.close unless fd.nil?
|
29
33
|
end
|
30
|
-
|
31
|
-
iterate
|
32
|
-
@output
|
33
34
|
end
|
34
35
|
|
35
36
|
private
|
@@ -37,8 +38,8 @@ module Ruth
|
|
37
38
|
# Private - Go trough provided keys and generate output
|
38
39
|
#
|
39
40
|
# Returns nil
|
40
|
-
def
|
41
|
-
@
|
41
|
+
def parse_gemfile_items
|
42
|
+
@data.keys.map do |key|
|
42
43
|
case key
|
43
44
|
when :source
|
44
45
|
sources
|
@@ -52,8 +53,12 @@ module Ruth
|
|
52
53
|
#
|
53
54
|
# Returns nil
|
54
55
|
def sources
|
55
|
-
@
|
56
|
-
@
|
56
|
+
if @data[:source].kind_of?(String)
|
57
|
+
@gem << "source '#{@data[:source]}"
|
58
|
+
elsif @data[:source].kind_of?(Array)
|
59
|
+
@data[:source].each do |h|
|
60
|
+
@gem<< "source '#{h}'"
|
61
|
+
end
|
57
62
|
end
|
58
63
|
end
|
59
64
|
|
@@ -61,9 +66,9 @@ module Ruth
|
|
61
66
|
#
|
62
67
|
# Returns nil
|
63
68
|
def general_list
|
64
|
-
@
|
69
|
+
@data[:general].each do |g|
|
65
70
|
if g.kind_of?(String)
|
66
|
-
@
|
71
|
+
@gem<< "gem '#{g}'"
|
67
72
|
elsif g.kind_of?(Hash)
|
68
73
|
detailed_gem_list(g)
|
69
74
|
end
|
@@ -74,35 +79,59 @@ module Ruth
|
|
74
79
|
#
|
75
80
|
# Returns nil
|
76
81
|
def detailed_gem_list(hash)
|
77
|
-
|
78
|
-
|
82
|
+
items = []
|
79
83
|
hash.keys.map do |key|
|
80
84
|
case key
|
81
85
|
when :name
|
82
|
-
|
86
|
+
items << "gem '#{hash[key]}'"
|
83
87
|
when :git
|
84
|
-
|
88
|
+
items << ":git => '#{hash[key]}'"
|
85
89
|
when :branch
|
86
|
-
|
90
|
+
items << ":branch => '#{hash[key]}'"
|
87
91
|
when :version
|
88
|
-
|
89
|
-
when />=/, /~>/, /</
|
90
|
-
gem << hash[:version]
|
91
|
-
else
|
92
|
-
fail "Please provide correct version: ~> #{hash[:version]} / >= \
|
93
|
-
#{hash[:version]}"
|
94
|
-
end
|
92
|
+
items << verify_version
|
95
93
|
when :require
|
96
|
-
|
94
|
+
items << ":require => #{hash[key]}"
|
97
95
|
when :group
|
98
|
-
|
99
|
-
gem << ":group => #{hash[:group]}"
|
100
|
-
elsif hash[:group].kind_of?(Array)
|
101
|
-
gem << ":group => [#{hash[:group].join(', ')}]"
|
102
|
-
end
|
96
|
+
items << gem_group
|
103
97
|
end
|
104
98
|
end
|
105
|
-
@
|
99
|
+
@gem << items.join(', ')
|
100
|
+
end
|
101
|
+
|
102
|
+
# Private - Check kind of group we hav
|
103
|
+
#
|
104
|
+
# group - Array or String of groups where gem belongs
|
105
|
+
#
|
106
|
+
# Returns String
|
107
|
+
def gem_group(group)
|
108
|
+
if group.kind_of?(String)
|
109
|
+
":group => #{group}"
|
110
|
+
elsif group.kind_of?(Array)
|
111
|
+
":group => [#{group.join(', ')}]"
|
112
|
+
end
|
106
113
|
end
|
114
|
+
|
115
|
+
# Private - Check if version key data syntax is correct
|
116
|
+
#
|
117
|
+
# version - String
|
118
|
+
#
|
119
|
+
# Returns String
|
120
|
+
def verify_version(version)
|
121
|
+
ver = [/>=/, /~>/, /</].any? { |w| w =~ version }
|
122
|
+
if ver
|
123
|
+
gem << version
|
124
|
+
else
|
125
|
+
fail "Please provide correct version: ~> #{hash[:version]} / >= \
|
126
|
+
#{hash[:version]}"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
# Private - Read YAML file
|
130
|
+
#
|
131
|
+
# Return Hash
|
132
|
+
def parse_yaml_file
|
133
|
+
YAML.load_file(@file)
|
134
|
+
end
|
135
|
+
|
107
136
|
end
|
108
137
|
end
|
data/lib/ruth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antun Krasic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|