architecture 1.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: abd87b7135ee8dfdb645b2a611c57b3962b78d04
4
+ data.tar.gz: 2ea7d41cd060d2fbb1f0a2a5598edf6c8ba61fd5
5
+ SHA512:
6
+ metadata.gz: a13127394c2fafe79f77f0c5774b6fdc79ee0b5048200a2fe010b787bd8fc52e7d4a4c538325e818369b35e3ffb6fb7e5da28905d23880393c5d116575edc37a
7
+ data.tar.gz: 736bc77ed665561a7b4244d01f3f60aea3156fed2c37a9c25745bae790fd1b52fddd02938372d3a247594d07d30856ad029b52c51c6cdacfb9e7fb52ad8673b5
@@ -0,0 +1,16 @@
1
+ require "mustache"
2
+
3
+ module Architecture
4
+ require_relative "architecture/contentable"
5
+ require_relative "architecture/entityable"
6
+ require_relative "architecture/replicatable"
7
+ require_relative "architecture/append"
8
+ require_relative "architecture/copy"
9
+ require_relative "architecture/delete"
10
+ require_relative "architecture/entity"
11
+ require_relative "architecture/move"
12
+ require_relative "architecture/overwrite"
13
+ require_relative "architecture/prepend"
14
+ require_relative "architecture/replace"
15
+ require_relative "architecture/version"
16
+ end
@@ -0,0 +1,24 @@
1
+ module Architecture
2
+ class Append
3
+ include Entityable
4
+ include Contentable
5
+
6
+ def initialize(source:, content: "", context: {})
7
+ @entity = Entity.new(path: source)
8
+ @content = content
9
+ @context = context
10
+ end
11
+
12
+ def call
13
+ if entity.file?
14
+ entity.write(text: data)
15
+ else
16
+ raise ArgumentError, "Source wasn't a file"
17
+ end
18
+ end
19
+
20
+ private def content
21
+ entity.content + @content
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ module Architecture
2
+ module Contentable
3
+ private def data
4
+ ::Mustache.render(content, context)
5
+ end
6
+
7
+ private def content
8
+ @content
9
+ end
10
+
11
+ private def context
12
+ @context
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,24 @@
1
+ module Architecture
2
+ class Copy
3
+ include Replicatable
4
+ include Contentable
5
+
6
+ def initialize(source:, destination:, context: {})
7
+ @origin = Entity.new(path: source)
8
+ @clone = Entity.new(path: destination)
9
+ @context = context
10
+ end
11
+
12
+ def call
13
+ if origin.file? && context.any?
14
+ clone.write(text: data)
15
+ else
16
+ origin.copy(entity: clone)
17
+ end
18
+ end
19
+
20
+ private def content
21
+ origin.content
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ module Architecture
2
+ class Delete
3
+ include Entityable
4
+
5
+ def initialize(source:)
6
+ @entity = Entity.new(path: source)
7
+ end
8
+
9
+ def call
10
+ entity.delete
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,64 @@
1
+ require "architecture"
2
+
3
+ module Architecture
4
+ class DSL
5
+ def initialize(source:, destination:)
6
+ @source = source
7
+ @destination = destination
8
+
9
+ yield
10
+ end
11
+
12
+ private def copy(name:, as: name, context: {})
13
+ ::Architecture::Copy.new(source: source(name), destination: destination(as), context: context).call
14
+ end
15
+
16
+ private def move(name:, as:)
17
+ ::Architecture::Move.new(source: path, destination: as).call
18
+ end
19
+
20
+ private def create(path:, content:, context: {})
21
+ ::Architecture::Create.new(source: path, content: content, context: context).call
22
+ end
23
+
24
+ private def delete(path:)
25
+ ::Architecture::Delete.new(source: path).call
26
+ end
27
+
28
+ private def replace(path:, search:, content:)
29
+ ::Architecture::Replace.new(source: path, search: search, content: content).call
30
+ end
31
+
32
+ private def prepend(path:, content:, context: {})
33
+ ::Architecture::Prepend.new(source: path, content: content, context: context).call
34
+ end
35
+
36
+ private def append(path:, content:)
37
+ ::Architecture::Append.new(source: path, content: content, context: context).call
38
+ end
39
+
40
+ private def overwrite(path:, content:, context: {})
41
+ ::Architecture::Overwrite.new(source: path, content: content, context: context).call
42
+ end
43
+
44
+ private def within(path:, &block)
45
+ ::Architecture::DSL.new(source: source(path), destination: destination(path), &block).call
46
+ end
47
+
48
+ private def source(path)
49
+ join(@source, path)
50
+ end
51
+
52
+ private def destination(path)
53
+ join(@destination, path)
54
+ end
55
+
56
+ private def join(*paths)
57
+ ::File.join(*paths)
58
+ end
59
+ end
60
+ end
61
+
62
+ def architecture(source:, destination:, &block)
63
+ ::Architecture::DSL.new(source: source, destination: destination, &block)
64
+ end
@@ -0,0 +1,55 @@
1
+ module Architecture
2
+ class Entity
3
+ def initialize(path:)
4
+ @path
5
+ end
6
+
7
+ def location
8
+ ::File.expand_path(@location)
9
+ end
10
+
11
+ def content
12
+ if file?
13
+ ::File.read(location)
14
+ else
15
+ ""
16
+ end
17
+ end
18
+
19
+ def write(text:)
20
+ ::File.write(location, text)
21
+ end
22
+
23
+ def copy(entity:)
24
+ system("cp #{location} #{entity.location}")
25
+ end
26
+
27
+ def delete
28
+ system("rm -rf #{location}")
29
+ end
30
+
31
+ def move(entity:)
32
+ system("mv #{location} #{entity.location}")
33
+ end
34
+
35
+ private def path
36
+ @path
37
+ end
38
+
39
+ def file?
40
+ !directory?
41
+ end
42
+
43
+ def directory?
44
+ type == "application/x-directory"
45
+ end
46
+
47
+ private def type
48
+ system("file --mime-type --brief #{location}")
49
+ end
50
+
51
+ private def system(command)
52
+ `#{command}`
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,7 @@
1
+ module Architecture
2
+ module Entityable
3
+ private def entity
4
+ @entity
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module Architecture
2
+ class Move
3
+ include Replicatable
4
+
5
+ def initialize(source:, destination:)
6
+ @origin = Entity.new(path: source)
7
+ @clone = Entity.new(path: destination)
8
+ end
9
+
10
+ def call
11
+ origin.move(entity: clone)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ module Architecture
2
+ class Overwrite
3
+ include Entityable
4
+ include Contentable
5
+
6
+ def initialize(source:, content: "", context: {})
7
+ @entity = Entity.new(path: source)
8
+ @content = content
9
+ @context = context
10
+ end
11
+
12
+ def call
13
+ if entity.file?
14
+ entity.write(text: data)
15
+ else
16
+ raise ArgumentError, "Source wasn't a file"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ module Architecture
2
+ class Prepend
3
+ include Entityable
4
+ include Contentable
5
+
6
+ def initialize(source:, content: "", context: {})
7
+ @entity = Entity.new(path: source)
8
+ @content = content
9
+ @context = context
10
+ end
11
+
12
+ def call
13
+ if entity.file?
14
+ entity.write(text: data)
15
+ else
16
+ raise ArgumentError, "Source wasn't a file"
17
+ end
18
+ end
19
+
20
+ private def content
21
+ @content + entity.content
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ module Architecture
2
+ class Replace
3
+ include Entityable
4
+
5
+ def initialize(source:, search: "", content: "")
6
+ @entity = Entity.new(path: source)
7
+ @search = search
8
+ @content = content
9
+ end
10
+
11
+ def call
12
+ if entity.file?
13
+ entity.write(text: content)
14
+ else
15
+ raise ArgumentError, "Source wasn't a file"
16
+ end
17
+ end
18
+
19
+ private def content
20
+ entity.content.gsub(search, @content)
21
+ end
22
+
23
+ private def search
24
+ @search
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ module Architecture
2
+ module Replicatable
3
+ private def clone
4
+ @clone
5
+ end
6
+
7
+ private def origin
8
+ @origin
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Architecture
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Append do
4
+ let("entity") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("source") do
9
+ "path"
10
+ end
11
+
12
+ let("content") do
13
+ "end"
14
+ end
15
+
16
+ let("contexts") do
17
+ {}
18
+ end
19
+
20
+ let("append") do
21
+ described_class.new(source: source, content: content, context: contexts)
22
+ end
23
+
24
+ let("file") do
25
+ "start"
26
+ end
27
+
28
+ let("result") do
29
+ file + content
30
+ end
31
+
32
+ before("each") do
33
+ allow(entity).to receive("file?").and_return(true)
34
+ allow(entity).to receive("content").and_return(file)
35
+ allow(entity).to receive("write").and_return(false)
36
+ allow(append).to receive("entity").and_return(entity)
37
+ end
38
+
39
+ describe "#call" do
40
+ let("call") do
41
+ append.call
42
+ end
43
+
44
+ context "with a file as source" do
45
+ before("each") do
46
+ allow(entity).to receive("file?").and_return(true)
47
+ end
48
+
49
+ it "copies the file" do
50
+ expect(entity).to receive("write").with(text: result)
51
+ call
52
+ end
53
+ end
54
+
55
+ context "with a context" do
56
+ it "renders the context" do
57
+ # ...
58
+ end
59
+ end
60
+
61
+ context "with a directory as source" do
62
+ before("each") do
63
+ allow(entity).to receive("file?").and_return(false)
64
+ end
65
+
66
+ it "raises an exception" do
67
+ expect { call }.to raise_exception(ArgumentError, "Source wasn't a file")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,83 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Copy do
4
+ let("clone") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("origin") do
9
+ instance_double(Architecture::Entity)
10
+ end
11
+
12
+ let("source") do
13
+ "old"
14
+ end
15
+
16
+ let("destination") do
17
+ "new"
18
+ end
19
+
20
+ let("contexts") do
21
+ {}
22
+ end
23
+
24
+ let("content") do
25
+ "{{foo}}"
26
+ end
27
+
28
+ let("copy") do
29
+ described_class.new(source: source, destination: destination, context: contexts)
30
+ end
31
+
32
+ describe "#call" do
33
+ let("call") do
34
+ copy.call
35
+ end
36
+
37
+ before("each") do
38
+ allow(copy).to receive("origin").and_return(origin)
39
+ allow(copy).to receive("clone").and_return(clone)
40
+ allow(origin).to receive("location").and_return(source)
41
+ allow(origin).to receive("content").and_return(content)
42
+ allow(clone).to receive("location").and_return(destination)
43
+ end
44
+
45
+ after("each") do
46
+ call
47
+ end
48
+
49
+ context "with a file as source" do
50
+ before("each") do
51
+ allow(origin).to receive("file?").and_return(true)
52
+ end
53
+
54
+ context "without a context" do
55
+ it "copies the file" do
56
+ expect(origin).to receive("copy").with(entity: clone)
57
+ end
58
+ end
59
+
60
+ context "with a context" do
61
+ let("contexts") do
62
+ {
63
+ "foo" => "bar"
64
+ }
65
+ end
66
+
67
+ it "creates a file with the rendered content" do
68
+ expect(clone).to receive("write").with(text: "bar")
69
+ end
70
+ end
71
+ end
72
+
73
+ context "with a directory as source" do
74
+ before("each") do
75
+ allow(origin).to receive("file?").and_return(false)
76
+ end
77
+
78
+ it "copies the directory" do
79
+ expect(origin).to receive("copy").with(entity: clone)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Delete do
4
+ let("entity") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("source") do
9
+ "old"
10
+ end
11
+
12
+ let("delete") do
13
+ described_class.new(source: source)
14
+ end
15
+
16
+ describe "#call" do
17
+ let("call") do
18
+ delete.call
19
+ end
20
+
21
+ before("each") do
22
+ allow(delete).to receive("entity").and_return(entity)
23
+ allow(entity).to receive("location").and_return(source)
24
+ end
25
+
26
+ after("each") do
27
+ call
28
+ end
29
+
30
+ it "moves the file" do
31
+ expect(entity).to receive("delete")
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Move do
4
+ let("clone") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("origin") do
9
+ instance_double(Architecture::Entity)
10
+ end
11
+
12
+ let("source") do
13
+ "old"
14
+ end
15
+
16
+ let("destination") do
17
+ "new"
18
+ end
19
+
20
+ let("move") do
21
+ described_class.new(source: source, destination: destination)
22
+ end
23
+
24
+ describe "#call" do
25
+ let("call") do
26
+ move.call
27
+ end
28
+
29
+ before("each") do
30
+ allow(move).to receive("origin").and_return(origin)
31
+ allow(move).to receive("clone").and_return(clone)
32
+ allow(origin).to receive("location").and_return(source)
33
+ allow(clone).to receive("location").and_return(destination)
34
+ end
35
+
36
+ after("each") do
37
+ call
38
+ end
39
+
40
+ it "moves the file" do
41
+ expect(origin).to receive("move").with(entity: clone)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Overwrite do
4
+ let("entity") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("source") do
9
+ "path"
10
+ end
11
+
12
+ let("content") do
13
+ "end"
14
+ end
15
+
16
+ let("contexts") do
17
+ {}
18
+ end
19
+
20
+ let("overwrite") do
21
+ described_class.new(source: source, content: content, context: contexts)
22
+ end
23
+
24
+ let("file") do
25
+ "start"
26
+ end
27
+
28
+ let("result") do
29
+ content
30
+ end
31
+
32
+ before("each") do
33
+ allow(entity).to receive("file?").and_return(true)
34
+ allow(entity).to receive("content").and_return(file)
35
+ allow(entity).to receive("write").and_return(false)
36
+ allow(overwrite).to receive("entity").and_return(entity)
37
+ end
38
+
39
+ describe "#call" do
40
+ let("call") do
41
+ overwrite.call
42
+ end
43
+
44
+ context "with a file as source" do
45
+ before("each") do
46
+ allow(entity).to receive("file?").and_return(true)
47
+ end
48
+
49
+ it "copies the file" do
50
+ expect(entity).to receive("write").with(text: result)
51
+ call
52
+ end
53
+ end
54
+
55
+ context "with a context" do
56
+ it "renders the context" do
57
+ # ...
58
+ end
59
+ end
60
+
61
+ context "with a directory as source" do
62
+ before("each") do
63
+ allow(entity).to receive("file?").and_return(false)
64
+ end
65
+
66
+ it "raises an exception" do
67
+ expect { call }.to raise_exception(ArgumentError, "Source wasn't a file")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Prepend do
4
+ let("entity") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("source") do
9
+ "path"
10
+ end
11
+
12
+ let("content") do
13
+ "end"
14
+ end
15
+
16
+ let("contexts") do
17
+ {}
18
+ end
19
+
20
+ let("prepend") do
21
+ described_class.new(source: source, content: content, context: contexts)
22
+ end
23
+
24
+ let("file") do
25
+ "start"
26
+ end
27
+
28
+ let("result") do
29
+ content + file
30
+ end
31
+
32
+ before("each") do
33
+ allow(entity).to receive("file?").and_return(true)
34
+ allow(entity).to receive("content").and_return(file)
35
+ allow(entity).to receive("write").and_return(false)
36
+ allow(prepend).to receive("entity").and_return(entity)
37
+ end
38
+
39
+ describe "#call" do
40
+ let("call") do
41
+ prepend.call
42
+ end
43
+
44
+ context "with a file as source" do
45
+ before("each") do
46
+ allow(entity).to receive("file?").and_return(true)
47
+ end
48
+
49
+ it "copies the file" do
50
+ expect(entity).to receive("write").with(text: result)
51
+ call
52
+ end
53
+ end
54
+
55
+ context "with a context" do
56
+ it "renders the context" do
57
+ # ...
58
+ end
59
+ end
60
+
61
+ context "with a directory as source" do
62
+ before("each") do
63
+ allow(entity).to receive("file?").and_return(false)
64
+ end
65
+
66
+ it "raises an exception" do
67
+ expect { call }.to raise_exception(ArgumentError, "Source wasn't a file")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Architecture::Replace do
4
+ let("entity") do
5
+ instance_double(Architecture::Entity)
6
+ end
7
+
8
+ let("source") do
9
+ "path"
10
+ end
11
+
12
+ let("content") do
13
+ "tarten"
14
+ end
15
+
16
+ let("file") do
17
+ "sfood"
18
+ end
19
+
20
+ let("search") do
21
+ "foo"
22
+ end
23
+
24
+ let("replace") do
25
+ described_class.new(source: source, search: search, content: content)
26
+ end
27
+
28
+ let("result") do
29
+ "startend"
30
+ end
31
+
32
+ before("each") do
33
+ allow(entity).to receive("file?").and_return(true)
34
+ allow(entity).to receive("content").and_return(file)
35
+ allow(entity).to receive("write").and_return(false)
36
+ allow(replace).to receive("entity").and_return(entity)
37
+ end
38
+
39
+ describe "#call" do
40
+ let("call") do
41
+ replace.call
42
+ end
43
+
44
+ context "with a file as source" do
45
+ before("each") do
46
+ allow(entity).to receive("file?").and_return(true)
47
+ end
48
+
49
+ it "copies the file" do
50
+ expect(entity).to receive("write").with(text: result)
51
+ call
52
+ end
53
+ end
54
+
55
+ context "with a context" do
56
+ it "renders the context" do
57
+ # ...
58
+ end
59
+ end
60
+
61
+ context "with a directory as source" do
62
+ before("each") do
63
+ allow(entity).to receive("file?").and_return(false)
64
+ end
65
+
66
+ it "raises an exception" do
67
+ expect { call }.to raise_exception(ArgumentError, "Source wasn't a file")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,7 @@
1
+ require "spec_helper"
2
+
3
+ describe Architecture::VERSION do
4
+ it "should be a string" do
5
+ expect(Architecture::VERSION).to be_kind_of(String)
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ require "spec_helper"
2
+
3
+ describe Architecture do
4
+
5
+ end
@@ -0,0 +1,6 @@
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
3
+
4
+ require "pry"
5
+ require "rspec"
6
+ require "architecture"
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: architecture
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Kurtis Rainbolt-Greene
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mustache
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.99'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.99'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-doc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.6'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.6'
97
+ - !ruby/object:Gem::Dependency
98
+ name: codeclimate-test-reporter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.4'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.4'
111
+ description: A DSL and object space for handling scaffolding
112
+ email:
113
+ - me@kurtisrainboltgreene.name
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - lib/architecture.rb
119
+ - lib/architecture/append.rb
120
+ - lib/architecture/contentable.rb
121
+ - lib/architecture/copy.rb
122
+ - lib/architecture/delete.rb
123
+ - lib/architecture/dsl.rb
124
+ - lib/architecture/entity.rb
125
+ - lib/architecture/entityable.rb
126
+ - lib/architecture/move.rb
127
+ - lib/architecture/overwrite.rb
128
+ - lib/architecture/prepend.rb
129
+ - lib/architecture/replace.rb
130
+ - lib/architecture/replicatable.rb
131
+ - lib/architecture/version.rb
132
+ - spec/lib/architecture/append_spec.rb
133
+ - spec/lib/architecture/copy_spec.rb
134
+ - spec/lib/architecture/delete_spec.rb
135
+ - spec/lib/architecture/move_spec.rb
136
+ - spec/lib/architecture/overwrite_spec.rb
137
+ - spec/lib/architecture/prepend_spec.rb
138
+ - spec/lib/architecture/replace_spec.rb
139
+ - spec/lib/architecture/version_spec.rb
140
+ - spec/lib/architecture_spec.rb
141
+ - spec/spec_helper.rb
142
+ homepage: http://krainboltgreene.github.io/architecture
143
+ licenses:
144
+ - MIT
145
+ metadata: {}
146
+ post_install_message:
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubyforge_project:
162
+ rubygems_version: 2.4.3
163
+ signing_key:
164
+ specification_version: 4
165
+ summary: A DSL and object space for handling scaffolding
166
+ test_files:
167
+ - spec/lib/architecture/append_spec.rb
168
+ - spec/lib/architecture/copy_spec.rb
169
+ - spec/lib/architecture/delete_spec.rb
170
+ - spec/lib/architecture/move_spec.rb
171
+ - spec/lib/architecture/overwrite_spec.rb
172
+ - spec/lib/architecture/prepend_spec.rb
173
+ - spec/lib/architecture/replace_spec.rb
174
+ - spec/lib/architecture/version_spec.rb
175
+ - spec/lib/architecture_spec.rb
176
+ - spec/spec_helper.rb
177
+ has_rdoc: