logirel 0.0.6

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/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .bundle
2
+ Gemfile.lock
3
+ pkg/*
data/.semver ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ :major: 0
3
+ :minor: 0
4
+ :patch: 6
5
+ :special: ""
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+ source "http://gems.github.com"
3
+
4
+ # Specify your gem's dependencies in logirel.gemspec
5
+ gemspec
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ Let's try and make a gem to create .Net projects easily.
2
+
3
+ My thinking
4
+ ===========
5
+
6
+ Some problems I want to solve with this project;
7
+
8
+ * (bundler/semver/rake/gems) having foundations for semver, rake for builds and nuget for packaging.
9
+ * (logirel) easily adding structure to a solution folder created with Visual Studio `logirel init`
10
+ * (gitflow) using ["a successful branching model"](http://nvie.com/posts/a-successful-git-branching-model/)
11
+ * (logirel/teamcity) continuous integration friendly with 'environments' and transform files for e.g. config files
12
+ * (logirel) easily updating buildscripts from a git repository 'logirel update', which runs `git pull -s subtree logirel master`.
13
+ * ensuring correct versions of build script dependencies
14
+ * (nuget/owrap/symbolserver.org) ensuring correct versions of source code dependencies
15
+ * (gitflow) nicely tagging your source trees corresponding to semver
16
+ * `nuget :nuget do |n|; 'git ls-files'.split("\n").each{ |f| n.file f }; end` create a nuget item with just files
17
+
18
+ TODO list
19
+ =========
20
+
21
+ 1. create gemspec for releases
22
+ 1. learn how to unit test ruby and put some fences around my 'release' f-n
23
+ 1. build a small interactive prompt; it should set project properties when invoked
24
+ 1. specify dependencies with bundler: bundler + bundle, semver, albacore, ruby, rake, nuget
25
+ 1. sample configuration settings for team city to build from github
26
+ 1. build rake tasks invoking semver with ruby that integrate with teamcity
27
+ 1. try the gem out on the transactions, auto tx and nhibernate facility projects
28
+ 1. create some guidance - links mostly on how to set up a gemserver locally
29
+
30
+ A note about aims
31
+ =================
32
+
33
+ The aim is **not** to replace nuget nor owrap. This is will principally be a gem for setting up a great
34
+ rakefile and versioning the package through rake and continuous integration and publishing the artifacts.
35
+
36
+ Nuget and OpenWrap don't integrate with continuous integration environments. They don't assist in creating
37
+ a nice build environment. With them, it's up to yourself to implement a build script that follows semantic
38
+ versioning.
39
+
40
+ Often I encounter .Net open source projects that I want to use. Because I'm increasingly writing SOA code
41
+ where each service is on its own, communicating through events/EDA and commands, I need to quickly
42
+ be able to set up a build environment for those projects and make sure I can version the dependencies
43
+ properly. Right now, hacking build scripts, is taking too much time. For example, it should be very
44
+ easy to create .Sample projects for nuget, so that people can learn about my frameworks, but the overhead
45
+ of managing another build is too large.
46
+
47
+ Shoulders of Giants
48
+ ===================
49
+ * http://madduck.net/blog/2007.07.11:creating-a-git-branch-without-ancestry/
data/Rakefile.rb ADDED
@@ -0,0 +1,35 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+ # Requires Bundler and adds the
4
+ #build, install and release
5
+ #Rake tasks by way of calling Bundler::GemHelper.install_tasks.
6
+ #The build task will build the current version of the gem and
7
+ #store it under the pkg folder, the install task will build
8
+ #and install the gem to our system (just like it would do if we
9
+ #gem install'd it) and release will push the gem to Rubygems for
10
+ #consumption by the public.
11
+
12
+ desc 'Tag the repository in git with gem version number'
13
+ task :tag do
14
+ changed_files = `git diff --cached --name-only`.split("\n") + `git diff --name-only`.split("\n")
15
+ v = SemVer.find
16
+ if changed_files == ['Rakefile.rb'] or changed_files.empty?
17
+ Rake::Task["build"].invoke
18
+
19
+ if `git tag`.split("\n").include?("#{v.to_s}")
20
+ raise "Version #{v.to_s} has already been released"
21
+ end
22
+ puts 'adding'
23
+ `git add #{File.expand_path("logirel.gemspec", __FILE__)}`
24
+ puts 'committing'
25
+ `git commit -m "Released version #{v.to_s}"`
26
+ puts 'tagging'
27
+ `git tag #{v.to_s}`
28
+ puts 'pushing tags'
29
+ `git push --tags`
30
+ puts 'pushing'
31
+ `git push`
32
+ else
33
+ raise "Repository contains uncommitted changes; either commit or stash."
34
+ end
35
+ end
data/TODO.txt ADDED
@@ -0,0 +1,18 @@
1
+ q
2
+
3
+ Path to search
4
+ Ensure create_stucture
5
+ For each item from path/src, ask if include
6
+ For each sln in path/src, ask if setup msbuild task for it
7
+ Create Rakefile.rb
8
+
9
+ For each include:
10
+ concatenate name => { props } to table
11
+ props := interactive questioning
12
+ include environment.rb file
13
+ include paths.rb file
14
+ include utils.rb in gem's code
15
+
16
+ Gem stuff:
17
+
18
+ * Ensude NuGet.exe is included and possible to call from the gem's code.
data/bin/NuGet.exe ADDED
Binary file
data/bin/logirel ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'logirel'
3
+ Logirel::Application.start
@@ -0,0 +1,48 @@
1
+ module Logirel
2
+ require 'semver'
3
+
4
+ class Initer
5
+
6
+ attr_accessor :root_path
7
+
8
+ def initialize(root = '.')
9
+ @root_path = root
10
+ end
11
+
12
+ def get_commands
13
+ cmd ||= []
14
+ cmd << "gem update"
15
+ cmd << "bundle install"
16
+ cmd << "bin\NuGet.exe update"
17
+ end
18
+
19
+ def nuget_from_codeplex(cp_ver, gem_ver)
20
+ (cp_ver <=> gem_ver) > 0
21
+ end
22
+
23
+ def create_structure
24
+ # puts "making dir #{@root_path}"
25
+ ['buildscripts', 'src'].each do |d|
26
+ path = File.join(@root_path, d)
27
+ Dir.mkdir path unless Dir.exists? path
28
+ end
29
+ end
30
+
31
+ def parse_folders
32
+ src = File.join(@root_path, 'src', '*')
33
+ Dir.
34
+ glob(src).
35
+ keep_if{ |i|
36
+ projs = File.join(i, "*.{csproj,vbproj,fsproj}")
37
+ File.directory? i and Dir.glob(projs).length > 0
38
+ }.
39
+ map{|x| File.basename(x) }
40
+ end
41
+
42
+ def init_rakefile
43
+ File.open(File.join(@root_path, "Rakefile.rb"), "w") do |f|
44
+ f.puts "require 'bundler'"
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,8 @@
1
+ module Logirel
2
+ class NuGet
3
+ def remote_ver
4
+ ver = Version.new
5
+ ver.parse_numeric(`gem query -r -n nuget`)
6
+ end
7
+ end
8
+ end
File without changes
File without changes
@@ -0,0 +1,43 @@
1
+ module Logirel
2
+
3
+ class Q
4
+ attr_accessor :question
5
+ end
6
+
7
+ class BoolQ < Q
8
+ attr_accessor :pos_answer, :neg_answer
9
+
10
+ def initialize(question, name)
11
+ @question = question
12
+ #@pos_answer lambda { name }
13
+ #@neg_answer lambda { }
14
+ end
15
+
16
+ def exec
17
+ puts @question
18
+ #a = gets
19
+ #a == 'yes' ? q.pos_answer.call : a == '' ? q.neg_answer.call
20
+ end
21
+ end
22
+
23
+ class StrQ < Q
24
+ attr_accessor :answer, :default
25
+
26
+ def initialize(question, default = '.')
27
+ @question = question
28
+ @default = default
29
+ end
30
+
31
+ def exec
32
+ puts @question
33
+ @answer = gets.chomp || @default
34
+ end
35
+ end
36
+
37
+ class Querier
38
+ def include_package_for(projects)
39
+ projects.
40
+ map{ |p| BoolQ.new("Would you like to include the '#{p}' project, dear Sir?", p) }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,14 @@
1
+ module Logirel
2
+ begin
3
+ require 'semver'
4
+ VERSION = SemVer.find.format "%M.%m.%p"
5
+ class Version < SemVer
6
+ def parse_numeric(str)
7
+ str.scan(/(\d{1,5}).?/).flatten.collect{|x| x.to_i}
8
+ end
9
+ end
10
+ rescue LoadError
11
+ puts 'First time installing, eh? Just run "bundle install"! (unless this is you running it right now!)'
12
+ VERSION = "0.0.0"
13
+ end
14
+ end
data/lib/logirel.rb ADDED
@@ -0,0 +1,97 @@
1
+ require 'logirel/initer'
2
+ require 'logirel/version'
3
+ require 'logirel/q_model'
4
+ require 'uuid'
5
+ require 'thor'
6
+ require 'FileUtils'
7
+
8
+ module Logirel
9
+ class Application < Thor
10
+
11
+ desc "Convert projects to rake", "Convert the current folder's projects (src) into a rake+albacore build"
12
+ def convert
13
+
14
+ puts "Logirel version #{Logirel::VERSION}"
15
+ curr = Dir.pwd
16
+
17
+ puts ""
18
+ puts "Directories Selection"
19
+ puts "---------------------"
20
+
21
+ dir = StrQ.new("Specify src directory (#{Initer.new('./src').parse_folders.inspect})",
22
+ "./src",
23
+ lambda { |dir| !dir.empty? && Dir.exists?(dir) }).exec
24
+
25
+ buildscripts = StrQ.new("Buildscripts Directory", "./buildscripts").exec
26
+ tools = StrQ.new("Tools Directory", "./tools").exec
27
+
28
+ puts "initing semver in folder above #{dir}"
29
+ Dir.chdir File.join(dir, "..")
30
+ sh "semver init" do |ok, err|
31
+ ok || raise "failed to initialize semver"
32
+ end
33
+ Dir.chdir curr
34
+
35
+ puts ""
36
+ puts "Project Selection"
37
+ puts "-----------------"
38
+
39
+ selected_projs = Initer.new(dir).parse_folders.
40
+ map { |f|
41
+ BoolQ.new(f, File.basename(f)).exec # TODO: return bool
42
+ }
43
+
44
+ puts ""
45
+ puts "Project Meta-Data Definitions"
46
+ puts "-----------------------------"
47
+
48
+ metas = selected_projs.map do |p|
49
+
50
+ base = File.basename(p)
51
+ p_dir = File.join(dir, base)
52
+
53
+ {
54
+ :dir => p_dir,
55
+ :title => StrQ.new("Title", base).exec,
56
+ :test_dir => StrQ.new("Test Directory", base + ".Tests").exec,
57
+ :description => StrQ.new("Description", "#{base} at commit #{`git log --pretty-format=%H`}").exec,
58
+ :copyright => StrQ.new("Copyright").exec,
59
+ :authors => StrQ.new("Authors").exec,
60
+ :company => StrQ.new("Company").exec,
61
+ :nuget_key => StrQ.new("NuGet key", base).exec,
62
+ :ruby_key => StrQ.new("Ruby key (e.g. 'autotx')").exec,
63
+ :guid => UUID.new
64
+ }
65
+ end
66
+
67
+ # TODO: test whether buildscripts/project_details.rb exists
68
+ details_path = File.join(buildscripts, "project_details.rb")
69
+ File.new(details_path, "w") do |f|
70
+ f.puts %q{
71
+ Projects = \{
72
+ }
73
+ end
74
+
75
+ metas.each do |m|
76
+ File.open(details_path, "w") do |f|
77
+ k = m.ruby_key
78
+ m.remove('ruby_key')
79
+ f.puts ":#{m.ruby_key} = #{p(m)}"
80
+ f.puts ","
81
+ end
82
+ end
83
+
84
+ File.open(details_path, "w") do |f|
85
+ f.puts %q{
86
+ \}
87
+ }
88
+ end
89
+
90
+ # TODO: paths
91
+
92
+ # TODO: Create rakefile!
93
+
94
+ # TODO: tasks in rakefile.rb
95
+ end
96
+ end
97
+ end
data/logirel.gemspec ADDED
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "logirel/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "logirel"
7
+ s.version = Logirel::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Henrik Feldt"]
10
+ s.email = ["henrik@haf.se"]
11
+ s.homepage = "https://github.com/haf/logirel"
12
+ s.summary = %q{Logirel's a best-shot for scaffolding versioning for a .Net solution.}
13
+ s.description = %q{The gem works by having as its dependencies
14
+ everything you need to get started with OSS and proprietary .Net coding.
15
+ The aim of the gem is to allow developers to get up and running quickly
16
+ and provide a nice way of converting a msbuild/VSS/svn project to github and rake.
17
+ }
18
+
19
+ s.rubyforge_project = "logirel"
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+
26
+ s.add_development_dependency "rspec", "~> 2.6.0"
27
+ s.add_development_dependency "memoize"
28
+ s.add_development_dependency "devver-construct"
29
+ s.add_dependency "albacore", "~> 0.2.5"
30
+ s.add_dependency "semver", "~> 1.0.1"
31
+ s.add_dependency "bundler", "~> 1.0.14"
32
+ s.add_dependency "thor"
33
+ s.add_dependency "uuid"
34
+
35
+ s.requirements << '.Net or Mono installation'
36
+ s.requirements << 'xbuild (on linux) or msbuild (on windows) for csproj files'
37
+ s.requirements << 'Access to the internet w/o a proxy! ;)'
38
+
39
+ end
@@ -0,0 +1,18 @@
1
+ require 'logirel/initer'
2
+ require 'logirel/version'
3
+ require 'logirel/nuget'
4
+ require 'logirel/initer'
5
+ require 'construct'
6
+ require 'FileUtils'
7
+
8
+ describe Logirel::Initer, "when reflecting upon previous project strucure" do
9
+ it "should correctly parse the names of existing projects" do
10
+
11
+ with_sample_projects do |c|
12
+ r = Logirel::Initer.new(c)
13
+
14
+ # initer should parse names:
15
+ r.parse_folders.should =~ ['A', 'C']
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,46 @@
1
+ require 'logirel/initer'
2
+ require 'logirel/version'
3
+ require 'logirel/nuget'
4
+ require 'logirel/initer'
5
+ require 'construct'
6
+ require 'FileUtils'
7
+
8
+ describe Logirel::Initer, "when starting a new project" do
9
+
10
+ before(:each) do
11
+ include Construct::Helpers
12
+ @i = Logirel::Initer.new
13
+ end
14
+
15
+ after(:each) do
16
+ Construct.destroy_all!
17
+ end
18
+
19
+ it "should start by performing an upgrade" do
20
+ @i.get_commands[0].should eql("gem update")
21
+ end
22
+
23
+ it "should then proceed running bundle install" do
24
+ @i.get_commands[1].should eql("bundle install")
25
+ end
26
+
27
+ it "should then update nuget" do
28
+ @i.get_commands[2].include?('update').should == true
29
+ end
30
+
31
+ it "should be able to know when to download from codeplex" do
32
+ @i.nuget_from_codeplex([1,3], [1,1]).should == true
33
+ @i.nuget_from_codeplex([1,3], [1,4]).should == false
34
+ end
35
+
36
+ it "should create the correct folder structure" do
37
+ Construct::within_construct do |c|
38
+ r = Logirel::Initer.new(c)
39
+ Dir.exists?(c+'buildscripts').should == false
40
+ r.create_structure
41
+ Dir.exists?(c+'buildscripts').should == true
42
+ Dir.exists?(c+'src').should == true
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,10 @@
1
+
2
+ # describe Logirel::NuGet, "when determining source" do
3
+ # before(:each) do
4
+ # @ng = Logirel::NuGet.new
5
+ # end
6
+ # it "should be able to get nuget version" do
7
+ # ver = @ng.remote_ver
8
+ # ver.length.should eql(4)
9
+ # end
10
+ # end
@@ -0,0 +1,21 @@
1
+ require 'logirel'
2
+ require 'FileUtils'
3
+
4
+ describe Logirel::Initer, "when initilizing project details" do
5
+
6
+ before(:each) do
7
+ @temp = "buildscripts"
8
+ Dir.mkdir(@temp) unless Dir.exists?(@temp)
9
+ @r = Logirel::Initer.new(@temp)
10
+ end
11
+
12
+ after(:each) do
13
+ FileUtils.rm_rf(@temp) if Dir.exists?(@temp)
14
+ end
15
+
16
+ it "should create project_details.rb" do
17
+ pending("need impl")
18
+ File.exitist?(File.join(@temp, "project_details.rb")).should be_true
19
+ end
20
+
21
+ end
@@ -0,0 +1,41 @@
1
+ require 'logirel/q_model'
2
+ require File.dirname(__FILE__) + '/with_sample_projects'
3
+
4
+ describe Logirel::Querier, "when getting available directories and having querier return the correct data structures" do
5
+
6
+ before(:each) do
7
+ @q = Logirel::Querier.new
8
+ end
9
+
10
+ it "should create a query for every project folder" do
11
+ with_sample_projects do |construct|
12
+ r = Logirel::Initer.new(construct)
13
+ folders = r.parse_folders
14
+ qs = @q.include_package_for(folders)
15
+ qs.length.should >= 2
16
+ qs.each do |q|
17
+ folders.any? do |f|
18
+ q.question.include? "'#{f}'"
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ it "should not create a query for those project folders without *proj files" do
25
+ with_sample_projects do |construct|
26
+ r = Logirel::Initer.new(construct)
27
+ folders = r.parse_folders
28
+ @q.include_package_for(folders).map{|q| q.question }.
29
+ each{ |str| str.include?("'B'").should be_false }
30
+ end
31
+ end
32
+
33
+ it "should return two strings when two questions are asked" do
34
+ with_sample_projects do |construct|
35
+ r = Logirel::Initer.new(construct)
36
+ folders = r.parse_folders
37
+ qs = @q.include_package_for(folders)
38
+ qs.length.should eq(2)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ require 'logirel/initer'
2
+ require 'logirel/version'
3
+ require 'logirel/nuget'
4
+ require 'logirel/initer'
5
+ require 'construct'
6
+ require 'FileUtils'
7
+
8
+ describe Logirel::Initer, "when initilizing rake file" do
9
+
10
+ attr_accessor :tmp, :r
11
+
12
+ before(:each) do
13
+ @tmp = "test-temp"
14
+ Dir.mkdir(@tmp) unless Dir.exists?(@tmp)
15
+ @r = Logirel::Initer.new(@tmp)
16
+ end
17
+
18
+ after(:each) do
19
+ FileUtils.rm_rf(@tmp) if Dir.exists?(@tmp)
20
+ end
21
+
22
+ it "should be created" do
23
+ @r.init_rakefile
24
+ File.exists?(File.join(@tmp, 'Rakefile.rb')).should == true
25
+ end
26
+ end
@@ -0,0 +1,10 @@
1
+
2
+ describe Logirel::Version, "in general" do
3
+ before(:each) do
4
+ @v = Logirel::Version.new
5
+ end
6
+
7
+ it "should be able to parse numerics" do
8
+ @v.parse_numeric("1.3.677.32578").should eql([1,3,677,32578])
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ require 'construct'
2
+
3
+ def with_sample_projects(&block)
4
+ Construct::within_construct do |c|
5
+ # given files
6
+ c.directory('src/A')
7
+ c.directory('src/B')
8
+ c.directory('src/C')
9
+ c.file('src/A/A.csproj') do |f|
10
+ f.puts "cs proj file ... xml in here"
11
+ end
12
+
13
+ c.file('src/C/HelloWorld.vbproj')
14
+ block.call(c)
15
+ end
16
+ end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logirel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Henrik Feldt
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-06-14 00:00:00.000000000 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: &25700928 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 2.6.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *25700928
26
+ - !ruby/object:Gem::Dependency
27
+ name: memoize
28
+ requirement: &25700520 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *25700520
37
+ - !ruby/object:Gem::Dependency
38
+ name: devver-construct
39
+ requirement: &25700052 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *25700052
48
+ - !ruby/object:Gem::Dependency
49
+ name: albacore
50
+ requirement: &25699392 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 0.2.5
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *25699392
59
+ - !ruby/object:Gem::Dependency
60
+ name: semver
61
+ requirement: &25698696 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 1.0.1
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *25698696
70
+ - !ruby/object:Gem::Dependency
71
+ name: bundler
72
+ requirement: &25698084 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.14
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: *25698084
81
+ - !ruby/object:Gem::Dependency
82
+ name: thor
83
+ requirement: &25697544 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: *25697544
92
+ - !ruby/object:Gem::Dependency
93
+ name: uuid
94
+ requirement: &25696932 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: *25696932
103
+ description: ! "The gem works by having as its dependencies \n everything you need
104
+ to get started with OSS and proprietary .Net coding.\n The aim of the gem is to
105
+ allow developers to get up and running quickly\n and provide a nice way of converting
106
+ a msbuild/VSS/svn project to github and rake.\n "
107
+ email:
108
+ - henrik@haf.se
109
+ executables:
110
+ - NuGet.exe
111
+ - logirel
112
+ extensions: []
113
+ extra_rdoc_files: []
114
+ files:
115
+ - .gitignore
116
+ - .semver
117
+ - Gemfile
118
+ - README.md
119
+ - Rakefile.rb
120
+ - TODO.txt
121
+ - bin/NuGet.exe
122
+ - bin/logirel
123
+ - lib/logirel.rb
124
+ - lib/logirel/Initer.rb
125
+ - lib/logirel/NuGet.rb
126
+ - lib/logirel/details_emitter.rb
127
+ - lib/logirel/logirel.rb
128
+ - lib/logirel/q_model.rb
129
+ - lib/logirel/version.rb
130
+ - logirel.gemspec
131
+ - spec/filestructure_spec.rb
132
+ - spec/logirel_spec.rb
133
+ - spec/nuget_spec.rb
134
+ - spec/project_details_spec.rb
135
+ - spec/query_spec.rb
136
+ - spec/rakefile_init_spec.rb
137
+ - spec/version_spec.rb
138
+ - spec/with_sample_projects.rb
139
+ - vendor/cache/albacore-0.2.5.gem
140
+ - vendor/cache/devver-construct-1.1.0.gem
141
+ - vendor/cache/diff-lcs-1.1.2.gem
142
+ - vendor/cache/macaddr-1.0.0.gem
143
+ - vendor/cache/memoize-1.3.1.gem
144
+ - vendor/cache/rspec-2.6.0.gem
145
+ - vendor/cache/rspec-core-2.6.4.gem
146
+ - vendor/cache/rspec-expectations-2.6.0.gem
147
+ - vendor/cache/rspec-mocks-2.6.0.gem
148
+ - vendor/cache/rubyzip-0.9.4.gem
149
+ - vendor/cache/semver-1.0.1.gem
150
+ - vendor/cache/thor-0.14.6.gem
151
+ - vendor/cache/uuid-2.3.2.gem
152
+ has_rdoc: true
153
+ homepage: https://github.com/haf/logirel
154
+ licenses: []
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements:
172
+ - .Net or Mono installation
173
+ - xbuild (on linux) or msbuild (on windows) for csproj files
174
+ - Access to the internet w/o a proxy! ;)
175
+ rubyforge_project: logirel
176
+ rubygems_version: 1.5.2
177
+ signing_key:
178
+ specification_version: 3
179
+ summary: Logirel's a best-shot for scaffolding versioning for a .Net solution.
180
+ test_files: []