logirel 0.0.8 → 0.0.14
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.
- data/.semver +1 -1
- data/Rakefile.rb +27 -19
- data/lib/logirel/Initer.rb +53 -43
- data/lib/logirel/cli.rb +37 -32
- data/lib/logirel/q_model.rb +29 -27
- data/lib/logirel/version.rb +12 -5
- data/logirel.gemspec +1 -1
- data/vendor/cache/semver-1.0.5.gem +0 -0
- metadata +20 -21
- data/lib/logirel/logirel.rb +0 -0
- data/vendor/cache/semver-1.0.1.gem +0 -0
data/.semver
CHANGED
data/Rakefile.rb
CHANGED
@@ -11,27 +11,35 @@ RSpec::Core::RakeTask.new(:spec)
|
|
11
11
|
#gem install'd it) and release will push the gem to Rubygems for
|
12
12
|
#consumption by the public.
|
13
13
|
|
14
|
-
|
15
|
-
task :tag do
|
14
|
+
task :verify do
|
16
15
|
changed_files = `git diff --cached --name-only`.split("\n") + `git diff --name-only`.split("\n")
|
16
|
+
if !(changed_files == ['Rakefile.rb'] or changed_files.empty?)
|
17
|
+
raise "Repository contains uncommitted changes; either commit or stash."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Tag the repository in git with gem version number'
|
22
|
+
task :tag => :verify do
|
17
23
|
v = SemVer.find
|
18
|
-
|
19
|
-
Rake::Task["build"].invoke
|
24
|
+
Rake::Task["build"].invoke
|
20
25
|
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
puts 'adding'
|
25
|
-
`git add #{File.expand_path("logirel.gemspec", __FILE__)}`
|
26
|
-
puts 'committing'
|
27
|
-
`git commit -m "Released version #{v.to_s}"`
|
28
|
-
puts 'tagging'
|
29
|
-
`git tag #{v.to_s}`
|
30
|
-
puts 'pushing tags'
|
31
|
-
`git push --tags`
|
32
|
-
puts 'pushing'
|
33
|
-
`git push`
|
34
|
-
else
|
35
|
-
raise "Repository contains uncommitted changes; either commit or stash."
|
26
|
+
if `git tag`.split("\n").include?("#{v.to_s}")
|
27
|
+
raise "Version #{v.to_s} has already been released"
|
36
28
|
end
|
29
|
+
puts 'adding'
|
30
|
+
`git add Rakefile.rb`
|
31
|
+
puts 'committing'
|
32
|
+
`git commit -m "Released version #{v.to_s}"`
|
33
|
+
puts 'tagging'
|
34
|
+
`git tag #{v.to_s}`
|
35
|
+
puts 'locally installing'
|
36
|
+
Rake::Task["install"].invoke
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "push data and tags"
|
40
|
+
task :push => :verify do
|
41
|
+
puts 'pushing tags'
|
42
|
+
`git push --tags`
|
43
|
+
puts 'pushing'
|
44
|
+
`git push`
|
37
45
|
end
|
data/lib/logirel/Initer.rb
CHANGED
@@ -4,33 +4,34 @@ require 'net/http'
|
|
4
4
|
|
5
5
|
module Logirel
|
6
6
|
class Initer
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
|
8
|
+
attr_accessor :root_path, :buildscripts_path
|
9
|
+
|
10
|
+
def initialize(root = '.', buildscripts = 'buildscripts');
|
11
|
+
@root_path = root
|
12
|
+
@buildscripts_path = buildscripts
|
13
|
+
end
|
14
|
+
def set_root(root); @root_path = root; end
|
15
|
+
|
15
16
|
def get_commands
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
17
|
+
cmd ||= []
|
18
|
+
cmd << "semver init"
|
19
|
+
end
|
20
|
+
|
21
|
+
def nuget_from_codeplex(cp_ver, gem_ver)
|
22
|
+
(cp_ver <=> gem_ver) > 0
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_structure
|
26
|
+
# puts "making dir #{@root_path}"
|
27
|
+
['buildscripts', 'src'].each do |d|
|
28
|
+
path = File.join(@root_path, d)
|
29
|
+
Dir.mkdir path unless Dir.exists? path
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_path_folders(metas, f)
|
34
|
+
f.puts %q{
|
34
35
|
require File.dirname(__FILE__) + '/project_data'
|
35
36
|
root_folder = File.expand_path("#{File.dirname(__FILE__)}/..")
|
36
37
|
Folders = \{
|
@@ -90,7 +91,8 @@ Folders = \{
|
|
90
91
|
end
|
91
92
|
|
92
93
|
def init_environement_rb
|
93
|
-
|
94
|
+
base_path = ensure_path @buildscripts_path
|
95
|
+
path = File.join base_path, "environment.rb"
|
94
96
|
File.open(path, "w") do |f|
|
95
97
|
f.puts Net::HTTP.get(
|
96
98
|
URI.parse('https://raw.github.com/haf/logirel/master/content/environment.rb'))
|
@@ -109,7 +111,7 @@ Folders = \{
|
|
109
111
|
end
|
110
112
|
|
111
113
|
def init_gemfile
|
112
|
-
File.open(File.join(@root_path, "Gemfile"), "w") do |f|
|
114
|
+
File.open(File.join(@root_path, "Gemfile"), "w+") do |f|
|
113
115
|
f.puts 'source "http://rubygems.org"'
|
114
116
|
f.puts 'gem "albacore"'
|
115
117
|
f.puts 'gem "semver"'
|
@@ -118,7 +120,8 @@ Folders = \{
|
|
118
120
|
end
|
119
121
|
|
120
122
|
def init_utils
|
121
|
-
|
123
|
+
base_path = ensure_path @buildscripts_path
|
124
|
+
path = File.join base_path, "utils.rb"
|
122
125
|
File.open(path, "w") do |f|
|
123
126
|
f.puts Net::HTTP.get(
|
124
127
|
URI.parse('https://raw.github.com/haf/logirel/master/content/utils.rb'))
|
@@ -138,8 +141,8 @@ Folders = \{
|
|
138
141
|
end
|
139
142
|
|
140
143
|
def init_rakefile(metas)
|
141
|
-
|
142
|
-
File.open
|
144
|
+
base_path = ensure_path @buildscripts_path
|
145
|
+
File.open File.join(base_path, "Rakefile.rb"), "w" do |f|
|
143
146
|
f.puts %q{
|
144
147
|
require 'rubygems'
|
145
148
|
require 'bundler'
|
@@ -163,20 +166,27 @@ task :ci => ["env:release", :build, :package]
|
|
163
166
|
end
|
164
167
|
end
|
165
168
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
169
|
+
def init_project_details(metadata)
|
170
|
+
base_path = ensure_path @buildscripts_path
|
171
|
+
File.open(File.join(base_path, "project_details.rb"), "w+") do |f|
|
172
|
+
f.puts "Projects = {"
|
173
|
+
# m = ["my key", value]
|
174
|
+
# projects[m[0]] = value
|
175
|
+
metadata.keys.each_with_index do |key, index|
|
176
|
+
if index == metadata.length-1
|
177
|
+
f.puts ":#{key} = #{p(metadata[key])}"
|
178
|
+
else
|
179
|
+
f.puts ":#{key} = #{p(metadata[key])},"
|
180
|
+
end
|
177
181
|
end
|
178
|
-
|
182
|
+
f.puts "}"
|
179
183
|
end
|
184
|
+
end
|
185
|
+
|
186
|
+
def ensure_path path
|
187
|
+
base_path = File.join @root_path, path
|
188
|
+
Dir.mkdir base_path unless Dir.exists? base_path
|
189
|
+
base_path
|
180
190
|
end
|
181
191
|
end
|
182
192
|
end
|
data/lib/logirel/cli.rb
CHANGED
@@ -11,26 +11,28 @@ module Logirel
|
|
11
11
|
desc "init", "Convert the current folder's projects (src) into a rake+albacore build"
|
12
12
|
def init(root_dir = Dir.pwd)
|
13
13
|
|
14
|
-
puts "
|
15
|
-
|
16
|
-
|
14
|
+
puts "logirel"
|
15
|
+
puts "======="
|
16
|
+
curr = Dir.pwd
|
17
|
+
puts "Current dir: #{curr}"
|
18
|
+
|
17
19
|
puts ""
|
18
20
|
puts "Directories Selection"
|
19
21
|
puts "---------------------"
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
dir = folder.call("Source Directory. Default contains (#{src_folders})", "
|
29
|
-
buildscripts = folder.call("Buildscripts Directory", "
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
|
23
|
+
folder = lambda { |query, default|
|
24
|
+
StrQ.new(query, default, STDIN, lambda { |dir|
|
25
|
+
true # perform validation here if you wish
|
26
|
+
}, STDOUT)
|
27
|
+
}
|
28
|
+
|
29
|
+
src_folders = Initer.new('.').parse_folders.inspect
|
30
|
+
dir = folder.call("Source Directory. Default contains (#{src_folders})", "src").exec
|
31
|
+
buildscripts = folder.call("Buildscripts Directory", "buildscripts").exec
|
32
|
+
tools = folder.call("Tools Directory", "tools").exec
|
33
|
+
initer = Initer.new(".")
|
34
|
+
initer.buildscripts_path = buildscripts
|
35
|
+
|
34
36
|
puts ""
|
35
37
|
puts "Project Selection"
|
36
38
|
puts "-----------------"
|
@@ -38,31 +40,34 @@ module Logirel
|
|
38
40
|
selected_projs = initer.parse_folders.
|
39
41
|
find_all { |f| BoolQ.new(f).exec }
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
+
puts "Selected: #{selected_projs.inspect}"
|
44
|
+
|
45
|
+
|
46
|
+
puts "initing semver in folder #{dir}"
|
47
|
+
`semver init`
|
48
|
+
puts "done..."
|
43
49
|
puts ""
|
44
50
|
puts "Project Meta-Data Definitions"
|
45
51
|
puts "-----------------------------"
|
46
|
-
|
47
|
-
puts "initing semver in folder #{dir}"
|
48
|
-
`semver init`
|
49
|
-
|
52
|
+
puts "Let's set up some meta-data!"
|
50
53
|
metas = selected_projs.map do |p|
|
51
54
|
|
52
55
|
base = File.basename(p)
|
56
|
+
|
57
|
+
puts "META DATA FOR: '#{base}'"
|
53
58
|
p_dir = File.join(dir, base)
|
54
59
|
|
55
60
|
{
|
56
61
|
:dir => p_dir,
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
:title => StrQ.new("Title", base).exec,
|
63
|
+
:test_dir => StrQ.new("Test Directory", base + ".Tests").exec,
|
64
|
+
:description => StrQ.new("Description", "of #{base}").exec,
|
65
|
+
:copyright => StrQ.new("Copyright").exec,
|
66
|
+
:authors => StrQ.new("Authors").exec,
|
67
|
+
:company => StrQ.new("Company").exec,
|
68
|
+
:nuget_key => StrQ.new("NuGet key", base).exec,
|
69
|
+
:ruby_key => StrQ.new("Ruby key (e.g. 'autotx')").exec,
|
70
|
+
:guid => UUID.new
|
66
71
|
}
|
67
72
|
end
|
68
73
|
|
data/lib/logirel/q_model.rb
CHANGED
@@ -6,42 +6,44 @@ module Logirel
|
|
6
6
|
class BoolQ < Q
|
7
7
|
attr_accessor :pos_answer, :neg_answer
|
8
8
|
|
9
|
-
def initialize(question,
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def initialize(question,
|
10
|
+
default = true,
|
11
|
+
io_source = STDIN,
|
12
|
+
io_target = STDOUT)
|
13
13
|
@question = question
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
@default = default
|
15
|
+
@io_source = io_source
|
16
|
+
@io_target = io_target
|
17
|
+
end
|
18
|
+
|
19
|
+
def default_str
|
20
|
+
|
21
|
+
@default ? "[Yn]" : "[yN]"
|
22
|
+
|
17
23
|
end
|
18
|
-
|
19
|
-
def default_str
|
20
|
-
@default ? "[Yn]" : "[yN]"
|
21
|
-
end
|
22
24
|
|
23
25
|
def exec
|
24
26
|
@io_target.print @question + " " + default_str
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
a = ""
|
28
|
+
begin
|
29
|
+
a = @io_source.gets.chomp
|
30
|
+
end while !a.empty? && !['y', 'n'].include?(a.downcase)
|
31
|
+
a.empty? ? @default : (a == 'y')
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
33
35
|
class StrQ < Q
|
34
36
|
def initialize(question,
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
37
|
+
default = nil,
|
38
|
+
io_source = STDIN,
|
39
|
+
validator = nil,
|
40
|
+
io_target = STDOUT)
|
39
41
|
@question = question
|
40
42
|
@default = default
|
41
43
|
@io_source = io_source
|
42
44
|
@validator = validator || lambda { |s| true }
|
43
|
-
|
44
|
-
|
45
|
+
@io_target = io_target
|
46
|
+
@answer = ""
|
45
47
|
end
|
46
48
|
|
47
49
|
def answer
|
@@ -50,12 +52,12 @@ module Logirel
|
|
50
52
|
|
51
53
|
def exec
|
52
54
|
@io_target.print @question + " [#{@default}]: "
|
53
|
-
|
55
|
+
begin
|
54
56
|
@answer = @io_source.gets.chomp
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
end while !@answer.empty? && !@validator.call(@answer)
|
58
|
+
@answer = @answer.empty? ? @default : @answer
|
59
|
+
@io_target.puts "Chose '#{@answer}'."
|
60
|
+
@answer
|
59
61
|
end
|
60
62
|
end
|
61
63
|
end
|
data/lib/logirel/version.rb
CHANGED
@@ -1,14 +1,21 @@
|
|
1
1
|
module Logirel
|
2
2
|
begin
|
3
3
|
require 'semver'
|
4
|
-
|
5
|
-
|
4
|
+
begin
|
5
|
+
VERSION = SemVer.find.format "%M.%m.%p"
|
6
|
+
rescue SemVerMissingError
|
7
|
+
VERSION = "0.0.x"
|
8
|
+
end
|
9
|
+
|
10
|
+
class Version < SemVer
|
6
11
|
def parse_numeric(str)
|
7
|
-
|
8
|
-
|
12
|
+
str.scan(/(\d{1,5}).?/).flatten.collect{|x| x.to_i}
|
13
|
+
end
|
9
14
|
end
|
15
|
+
|
10
16
|
rescue LoadError
|
11
17
|
puts 'First time installing, eh? Just run "bundle install"! (unless this is you running it right now!)'
|
12
|
-
VERSION = "0.0.
|
18
|
+
VERSION = "0.0.x"
|
13
19
|
end
|
20
|
+
|
14
21
|
end
|
data/logirel.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency "memoize"
|
28
28
|
s.add_development_dependency "devver-construct"
|
29
29
|
s.add_dependency "albacore", "~> 0.2.5"
|
30
|
-
s.add_dependency "semver", "~> 1.0.
|
30
|
+
s.add_dependency "semver", "~> 1.0.6"
|
31
31
|
s.add_dependency "bundler", "~> 1.0.14"
|
32
32
|
s.add_dependency "thor"
|
33
33
|
s.add_dependency "uuid"
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logirel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-06-
|
12
|
+
date: 2011-06-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &20363640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.6.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20363640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: memoize
|
27
|
-
requirement: &
|
27
|
+
requirement: &20363364 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20363364
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: devver-construct
|
38
|
-
requirement: &
|
38
|
+
requirement: &20363052 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20363052
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: albacore
|
49
|
-
requirement: &
|
49
|
+
requirement: &20362536 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,21 +54,21 @@ dependencies:
|
|
54
54
|
version: 0.2.5
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *20362536
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: semver
|
60
|
-
requirement: &
|
60
|
+
requirement: &20362056 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 1.0.
|
65
|
+
version: 1.0.6
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *20362056
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &20361588 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.0.14
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *20361588
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: thor
|
82
|
-
requirement: &
|
82
|
+
requirement: &20361192 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *20361192
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: uuid
|
93
|
-
requirement: &
|
93
|
+
requirement: &20360760 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *20360760
|
102
102
|
description: ! "The gem works by having as its dependencies \n everything you need
|
103
103
|
to get started with OSS and proprietary .Net coding.\n The aim of the gem is to
|
104
104
|
allow developers to get up and running quickly\n and provide a nice way of converting
|
@@ -123,7 +123,6 @@ files:
|
|
123
123
|
- lib/logirel/NuGet.rb
|
124
124
|
- lib/logirel/cli.rb
|
125
125
|
- lib/logirel/details_emitter.rb
|
126
|
-
- lib/logirel/logirel.rb
|
127
126
|
- lib/logirel/q_model.rb
|
128
127
|
- lib/logirel/querier.rb
|
129
128
|
- lib/logirel/version.rb
|
@@ -149,7 +148,7 @@ files:
|
|
149
148
|
- vendor/cache/rspec-expectations-2.6.0.gem
|
150
149
|
- vendor/cache/rspec-mocks-2.6.0.gem
|
151
150
|
- vendor/cache/rubyzip-0.9.4.gem
|
152
|
-
- vendor/cache/semver-1.0.
|
151
|
+
- vendor/cache/semver-1.0.5.gem
|
153
152
|
- vendor/cache/thor-0.14.6.gem
|
154
153
|
- vendor/cache/uuid-2.3.2.gem
|
155
154
|
homepage: https://github.com/haf/logirel
|
data/lib/logirel/logirel.rb
DELETED
File without changes
|
Binary file
|