brick_and_mortar 0.0.1

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 (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +17 -0
  3. data/.gitignore +35 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +22 -0
  6. data/README.md +68 -0
  7. data/Rakefile +18 -0
  8. data/bin/mortar +39 -0
  9. data/brick_and_mortar.gemspec +29 -0
  10. data/docs/Makefile +39 -0
  11. data/docs/html.template.pandoc +61 -0
  12. data/docs/pdf.template.pandoc +206 -0
  13. data/docs/references.bib +9 -0
  14. data/docs/tex.template.pandoc +213 -0
  15. data/lib/brick_and_mortar/brick.rb +150 -0
  16. data/lib/brick_and_mortar/config.rb +131 -0
  17. data/lib/brick_and_mortar/coverage/.last_run.json +5 -0
  18. data/lib/brick_and_mortar/coverage/.resultset.json +7 -0
  19. data/lib/brick_and_mortar/coverage/.resultset.json.lock +0 -0
  20. data/lib/brick_and_mortar/coverage/assets/0.10.0/application.css +799 -0
  21. data/lib/brick_and_mortar/coverage/assets/0.10.0/application.js +1707 -0
  22. data/lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/border.png +0 -0
  23. data/lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  24. data/lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  25. data/lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  26. data/lib/brick_and_mortar/coverage/assets/0.10.0/favicon_green.png +0 -0
  27. data/lib/brick_and_mortar/coverage/assets/0.10.0/favicon_red.png +0 -0
  28. data/lib/brick_and_mortar/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  29. data/lib/brick_and_mortar/coverage/assets/0.10.0/loading.gif +0 -0
  30. data/lib/brick_and_mortar/coverage/assets/0.10.0/magnify.png +0 -0
  31. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  40. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  41. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  42. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  43. data/lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  44. data/lib/brick_and_mortar/coverage/index.html +72 -0
  45. data/lib/brick_and_mortar/download.rb +99 -0
  46. data/lib/brick_and_mortar/git.rb +12 -0
  47. data/lib/brick_and_mortar/project.rb +33 -0
  48. data/lib/brick_and_mortar/svn.rb +19 -0
  49. data/lib/brick_and_mortar/version.rb +3 -0
  50. data/lib/brick_and_mortar.rb +10 -0
  51. data/spec/config_spec.rb +277 -0
  52. data/spec/download_spec.rb +38 -0
  53. data/spec/git_spec.rb +38 -0
  54. data/spec/mortar_spec.rb +6 -0
  55. data/spec/project_spec.rb +34 -0
  56. data/spec/support/mocks.rb +23 -0
  57. data/spec/support/network_mocks.rb +34 -0
  58. data/spec/support/spec_helper.rb +18 -0
  59. data/spec/support/test_files/git_https_brickfile.yml +6 -0
  60. data/spec/support/test_files/git_ssh_brickfile.yml +6 -0
  61. data/spec/support/test_files/hg_brickfile.yml +6 -0
  62. data/spec/support/test_files/local_project/README.md +1 -0
  63. data/spec/support/test_files/local_project_brickfile.yml +4 -0
  64. data/spec/support/test_files/svn_brickfile.yml +6 -0
  65. data/spec/support/test_files/test_project/Brickfile +22 -0
  66. data/spec/support/test_files/url_brickfile.yml +4 -0
  67. data/spec/svn_spec.rb +38 -0
  68. metadata +227 -0
@@ -0,0 +1,34 @@
1
+ require_relative 'support/spec_helper'
2
+
3
+ require_relative '../lib/brick_and_mortar/project'
4
+ require_relative 'support/network_mocks'
5
+
6
+ BRICK_STORE = File.expand_path('../.test_brick_store', __FILE__)
7
+
8
+ describe BrickAndMortar::Project do
9
+ let(:project_root) { File.expand_path('../support/test_files/test_project', __FILE__) }
10
+ let(:project_vendor) { File.join(project_root, 'vendor') }
11
+
12
+ before do
13
+ FileUtils.rm_rf BRICK_STORE
14
+ FileUtils.rm_rf project_vendor
15
+ end
16
+
17
+ after do
18
+ FileUtils.rm_rf BRICK_STORE
19
+ FileUtils.rm_rf project_vendor
20
+ end
21
+
22
+ let(:brickfile) { File.join(project_root, 'Brickfile') }
23
+ let(:patient) { BrickAndMortar::Project.new(brickfile, BRICK_STORE) }
24
+
25
+ it 'creates a vendor directory with all bricks linked' do
26
+ File.exist?(project_vendor).must_equal false
27
+ patient.laid?.must_equal false
28
+ patient.project_root.must_equal project_root
29
+ patient.vendor.must_equal project_vendor
30
+ patient.lay!
31
+ patient.laid?.must_equal true
32
+ File.exist?(project_vendor).must_equal true
33
+ end
34
+ end
@@ -0,0 +1,23 @@
1
+ class MockBrickConfiguration
2
+ attr_accessor :name, :version, :location
3
+
4
+ def initialize(name, version, location)
5
+ @name = name
6
+ @version = version
7
+ @location = location
8
+ end
9
+
10
+ def destination
11
+ "#{@name}-#{@version}"
12
+ end
13
+ end
14
+ class MockBrickLocation
15
+ attr_accessor :method, :path
16
+ alias_method :url, :path
17
+
18
+ def initialize(method, path, format = 'plain')
19
+ @method = method
20
+ @path = path
21
+ @format = format
22
+ end
23
+ end
@@ -0,0 +1,34 @@
1
+ module BrickAndMortar
2
+ def self.create_directory!(url, name = nil)
3
+ unless name
4
+ name = File.basename(url, File.extname(url))
5
+ end
6
+ FileUtils.mkpath name
7
+ end
8
+ module Download
9
+ def self.get_and_unpack_zip(url, name = nil, options = {})
10
+ BrickAndMortar::create_directory! url, name
11
+ end
12
+ def self.get_and_unpack_tar_gz(url, name = nil, options = {})
13
+ BrickAndMortar::create_directory! url, name
14
+ end
15
+ end
16
+ module Git
17
+ def self.clone_repo(url, name = nil, options = {})
18
+ BrickAndMortar::create_directory! url, name
19
+ end
20
+ end
21
+ module Svn
22
+ def self.checkout_repo(url, name = nil, options = {})
23
+ unless name
24
+ split_url = url.split '/'
25
+ name = if split_url.last == 'trunk'
26
+ split_url.last
27
+ else
28
+ split_url[-2]
29
+ end
30
+ end
31
+ FileUtils.mkpath name
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,18 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ require 'minitest/autorun'
5
+ require 'minitest/spec'
6
+
7
+ begin
8
+ require 'awesome_print'
9
+ module Minitest::Assertions
10
+ def mu_pp(obj)
11
+ obj.awesome_inspect
12
+ end
13
+ end
14
+ require "pry"
15
+ rescue LoadError
16
+ end
17
+
18
+ require_relative 'mocks'
@@ -0,0 +1,6 @@
1
+ -
2
+ name: brick_and_mortar
3
+ version: 0.0.1
4
+ location:
5
+ method: git
6
+ url: https://github.com/dmorrill10/brick_and_mortar.git
@@ -0,0 +1,6 @@
1
+ -
2
+ name: brick_and_mortar
3
+ version: 0.0.1
4
+ location:
5
+ method: git
6
+ url: git@github.com:dmorrill10/brick_and_mortar.git
@@ -0,0 +1,6 @@
1
+ -
2
+ name: Eigen
3
+ version: 3.2.5
4
+ location:
5
+ method: hg
6
+ url: https://bitbucket.org/eigen/eigen
@@ -0,0 +1 @@
1
+ Hi, I'm a local project.
@@ -0,0 +1,4 @@
1
+ -
2
+ name: local_project
3
+ version: 1.0
4
+ location: local_project
@@ -0,0 +1,6 @@
1
+ -
2
+ name: brick_and_mortar
3
+ version: 0.0.1
4
+ location:
5
+ method: svn
6
+ url: https://github.com/dmorrill10/brick_and_mortar
@@ -0,0 +1,22 @@
1
+ -
2
+ name: brick_and_mortar
3
+ version: 0.0.1
4
+ location:
5
+ method: git
6
+ url: https://github.com/dmorrill10/brick_and_mortar.git
7
+ -
8
+ name: brick_and_mortar011
9
+ version: 0.1.1
10
+ location:
11
+ method: git
12
+ url: git@github.com:dmorrill10/brick_and_mortar.git
13
+ -
14
+ name: brick_and_mortarsvn
15
+ version: svn
16
+ location:
17
+ method: svn
18
+ url: https://github.com/dmorrill10/brick_and_mortar
19
+ -
20
+ name: brick_and_mortarzip
21
+ version: zip
22
+ location: https://github.com/dmorrill10/brick_and_mortar/archive/master.zip
@@ -0,0 +1,4 @@
1
+ -
2
+ name: brick_and_mortar
3
+ version: 0.0.1
4
+ location: https://github.com/dmorrill10/brick_and_mortar/archive/master.zip
data/spec/svn_spec.rb ADDED
@@ -0,0 +1,38 @@
1
+ require_relative 'support/spec_helper'
2
+
3
+ require_relative '../lib/brick_and_mortar/svn'
4
+
5
+ describe BrickAndMortar::Svn do
6
+ describe 'given svn brick configuration' do
7
+ svn_brick_configruation = MockBrickConfiguration.new(
8
+ 'mock_brick',
9
+ '0.0.1',
10
+ MockBrickLocation.new('svn', 'https://github.com/dmorrill10/brick_and_mortar')
11
+ )
12
+
13
+ it 'downloads the brick with svn' do
14
+ Dir.mktmpdir do |dir|
15
+ Dir.chdir dir do |d|
16
+ BrickAndMortar::Svn.checkout_repo(svn_brick_configruation.location.url, svn_brick_configruation.name)
17
+ File.directory?(File.join(dir, svn_brick_configruation.name)).must_equal true
18
+ end
19
+ end
20
+ end
21
+ end
22
+ describe 'given svn brick configuration' do
23
+ git_https_brick_configruation = MockBrickConfiguration.new(
24
+ 'mock_brick',
25
+ '0.0.1',
26
+ MockBrickLocation.new('svn', 'https://github.com/dmorrill10/brick_and_mortar')
27
+ )
28
+
29
+ it 'downloads the brick with svn' do
30
+ Dir.mktmpdir do |dir|
31
+ Dir.chdir dir do |d|
32
+ BrickAndMortar::Svn.checkout_repo(git_https_brick_configruation.location.url, git_https_brick_configruation.name)
33
+ File.directory?(File.join(dir, git_https_brick_configruation.name)).must_equal true
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,227 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brick_and_mortar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dustin Morrill
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: git
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubyzip
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: contextual_exceptions
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: ''
112
+ email:
113
+ - dmorrill10@gmail.com
114
+ executables:
115
+ - mortar
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitattributes"
120
+ - ".gitignore"
121
+ - Gemfile
122
+ - LICENSE
123
+ - README.md
124
+ - Rakefile
125
+ - bin/mortar
126
+ - brick_and_mortar.gemspec
127
+ - docs/Makefile
128
+ - docs/html.template.pandoc
129
+ - docs/pdf.template.pandoc
130
+ - docs/references.bib
131
+ - docs/tex.template.pandoc
132
+ - lib/brick_and_mortar.rb
133
+ - lib/brick_and_mortar/brick.rb
134
+ - lib/brick_and_mortar/config.rb
135
+ - lib/brick_and_mortar/coverage/.last_run.json
136
+ - lib/brick_and_mortar/coverage/.resultset.json
137
+ - lib/brick_and_mortar/coverage/.resultset.json.lock
138
+ - lib/brick_and_mortar/coverage/assets/0.10.0/application.css
139
+ - lib/brick_and_mortar/coverage/assets/0.10.0/application.js
140
+ - lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/border.png
141
+ - lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/controls.png
142
+ - lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/loading.gif
143
+ - lib/brick_and_mortar/coverage/assets/0.10.0/colorbox/loading_background.png
144
+ - lib/brick_and_mortar/coverage/assets/0.10.0/favicon_green.png
145
+ - lib/brick_and_mortar/coverage/assets/0.10.0/favicon_red.png
146
+ - lib/brick_and_mortar/coverage/assets/0.10.0/favicon_yellow.png
147
+ - lib/brick_and_mortar/coverage/assets/0.10.0/loading.gif
148
+ - lib/brick_and_mortar/coverage/assets/0.10.0/magnify.png
149
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
150
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
151
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
152
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
153
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png
154
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
155
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
156
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
157
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png
158
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png
159
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png
160
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png
161
+ - lib/brick_and_mortar/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png
162
+ - lib/brick_and_mortar/coverage/index.html
163
+ - lib/brick_and_mortar/download.rb
164
+ - lib/brick_and_mortar/git.rb
165
+ - lib/brick_and_mortar/project.rb
166
+ - lib/brick_and_mortar/svn.rb
167
+ - lib/brick_and_mortar/version.rb
168
+ - spec/config_spec.rb
169
+ - spec/download_spec.rb
170
+ - spec/git_spec.rb
171
+ - spec/mortar_spec.rb
172
+ - spec/project_spec.rb
173
+ - spec/support/mocks.rb
174
+ - spec/support/network_mocks.rb
175
+ - spec/support/spec_helper.rb
176
+ - spec/support/test_files/git_https_brickfile.yml
177
+ - spec/support/test_files/git_ssh_brickfile.yml
178
+ - spec/support/test_files/hg_brickfile.yml
179
+ - spec/support/test_files/local_project/README.md
180
+ - spec/support/test_files/local_project_brickfile.yml
181
+ - spec/support/test_files/svn_brickfile.yml
182
+ - spec/support/test_files/test_project/Brickfile
183
+ - spec/support/test_files/url_brickfile.yml
184
+ - spec/svn_spec.rb
185
+ homepage: ''
186
+ licenses:
187
+ - MIT
188
+ metadata: {}
189
+ post_install_message:
190
+ rdoc_options: []
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ requirements: []
204
+ rubyforge_project:
205
+ rubygems_version: 2.2.2
206
+ signing_key:
207
+ specification_version: 4
208
+ summary: 'BrickAndMortar: A Solid Foundation for Software Projects'
209
+ test_files:
210
+ - spec/config_spec.rb
211
+ - spec/download_spec.rb
212
+ - spec/git_spec.rb
213
+ - spec/mortar_spec.rb
214
+ - spec/project_spec.rb
215
+ - spec/support/mocks.rb
216
+ - spec/support/network_mocks.rb
217
+ - spec/support/spec_helper.rb
218
+ - spec/support/test_files/git_https_brickfile.yml
219
+ - spec/support/test_files/git_ssh_brickfile.yml
220
+ - spec/support/test_files/hg_brickfile.yml
221
+ - spec/support/test_files/local_project/README.md
222
+ - spec/support/test_files/local_project_brickfile.yml
223
+ - spec/support/test_files/svn_brickfile.yml
224
+ - spec/support/test_files/test_project/Brickfile
225
+ - spec/support/test_files/url_brickfile.yml
226
+ - spec/svn_spec.rb
227
+ has_rdoc: