alephant 0.0.9.1-java → 0.0.9.2-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c24d2103f3e0adabbcd97061f018466aefcb676b
4
- data.tar.gz: 6ec7568bfeec69d965f8dcada5ff5f50a9ce3b7f
3
+ metadata.gz: 6716ed6da6972be045f19e4ee574a719bbe637e3
4
+ data.tar.gz: 7e2c247eebaa860b20b2594451a922be357341e5
5
5
  SHA512:
6
- metadata.gz: ad2e5a77b52ec167642c212995c6996cd52fd903b694f9968a7dfcf55c67c8b5c19b50755fe040960b1959f4b7f56dbea0ab670da2805ceb5ca211a06e3b0a32
7
- data.tar.gz: a971cefb397f3ec3badaf4cb532b9b0798cd2a63b5976981047910cbe0b02ab65b7bde175b6b50b0e558169be7fe58b01f5e6233f71f254c844e0b444ccdb05f
6
+ metadata.gz: 11ccd5ae937a3e19cd6c31319dc7f922763fc129425c4102eb1513fbecf8fe5e6584187cdc9ca9e408ab1d520a0cd5ba4a725bc969e1e93a726b67b43be1336b
7
+ data.tar.gz: 79f418dcd1f62dd7d8b5360a176331d2e8c475c6e61260287c2e97bc9bf017487de442b2222b21fe459e0cd829b5a0b87d2ef1a2232658e3ce0364d9f44fd9c2
@@ -18,7 +18,6 @@ module Alephant
18
18
  attr_reader :sequencer, :queue, :cache, :renderer
19
19
 
20
20
  VALID_OPTS = [
21
- :model_file,
22
21
  :s3_bucket_id,
23
22
  :s3_object_path,
24
23
  :s3_object_id,
@@ -44,7 +43,7 @@ module Alephant
44
43
 
45
44
  @queue = Queue.new(@sqs_queue_id)
46
45
  @cache = Cache.new(@s3_bucket_id, @s3_object_path)
47
- @multi_renderer = MultiRenderer.new(@model_file, "#{@view_path}/#{@component_id}")
46
+ @multi_renderer = MultiRenderer.new(@component_id, @view_path)
48
47
  @parser = Parser.new
49
48
  end
50
49
 
@@ -2,9 +2,9 @@ module Alephant
2
2
  class MultiRenderer
3
3
  DEFAULT_LOCATION = 'components'
4
4
 
5
- def initialize(model_file, view_base_path=nil)
6
- self.base_path = view_base_path unless view_base_path.nil?
7
- @model_file = model_file
5
+ def initialize(component_id, view_base_path=nil)
6
+ self.base_path = "#{view_base_path}/#{component_id}" unless view_base_path.nil?
7
+ @component_id = component_id
8
8
  @logger = ::Alephant.logger
9
9
  end
10
10
 
@@ -17,63 +17,59 @@ module Alephant
17
17
  end
18
18
 
19
19
  def render(data)
20
- instance = create_instance(data)
21
-
22
20
  template_locations.reduce({}) do |obj, file|
23
21
  template_id = template_id_for file
22
+
24
23
  obj.tap do |o|
25
24
  o[template_id.to_sym] = render_template(
26
25
  template_id,
27
- data,
28
- instance
26
+ data
29
27
  )
30
28
  end
31
29
  end
32
30
  end
33
31
 
34
- def render_template(template_file, data, instance = nil)
32
+ def render_template(template_file, data)
35
33
  renderer(
36
34
  template_file,
37
35
  base_path,
38
- instance.nil? ? create_instance(data) : instance
39
- ).render.chomp!
36
+ data
37
+ ).render
40
38
  end
41
39
 
42
- def create_instance(data)
40
+ def renderer(template_file, base_path, data)
41
+ Renderer.new(template_file, base_path, create_instance(template_file, data))
42
+ end
43
+
44
+ def create_instance(template_file, data)
43
45
  begin
44
- create_model(klass, data)
46
+ create_model(template_file, data)
45
47
  rescue Exception => e
46
48
  @logger.error("Renderer.model: exeception #{e.message}")
47
49
  raise Errors::ViewModelNotFound
48
50
  end
49
51
  end
50
52
 
51
- def renderer(template_file, base_path, model_object)
52
- Renderer.new(template_file, base_path, model_object)
53
- end
54
-
55
53
  private
56
- def template_locations
57
- Dir.glob("#{base_path}/templates/*")
54
+ def create_model(template_file, data)
55
+ require model_location_for template_file
56
+ klass = Views.get_registered_class("#{@component_id}_#{template_file}")
57
+
58
+ @logger.info("Renderer.model: creating new klass #{klass}")
59
+ klass.new(data)
58
60
  end
59
61
 
60
- def klass
61
- require model_location
62
- Views.get_registered_class(@model_file)
62
+ def model_location_for(template_file)
63
+ File.join(base_path, 'models', "#{template_file}.rb")
63
64
  end
64
65
 
65
- def create_model(klass, data)
66
- @logger.info("Renderer.model: creating new klass #{klass}")
67
- klass.new(data)
66
+ def template_locations
67
+ Dir.glob("#{base_path}/templates/*")
68
68
  end
69
69
 
70
70
  def template_id_for(template_location)
71
71
  template_location.split('/').last.sub(/\.mustache/, '')
72
72
  end
73
73
 
74
- def model_location
75
- File.join(base_path, 'models', "#{@model_file}.rb")
76
- end
77
-
78
74
  end
79
75
  end
@@ -60,11 +60,11 @@ module Alephant
60
60
  end
61
61
 
62
62
  def base_path
63
- "#{Dir.pwd}/components/#{id}"
63
+ "#{Dir.pwd}/components"
64
64
  end
65
65
 
66
66
  def fixture_location
67
- "#{base_path}/fixtures/#{fixture}.json"
67
+ "#{base_path}/#{id}/fixtures/#{fixture}.json"
68
68
  end
69
69
 
70
70
  def preview_template_location
@@ -1,3 +1,3 @@
1
1
  module Alephant
2
- VERSION = "0.0.9.1"
2
+ VERSION = "0.0.9.2"
3
3
  end
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Alephant::Alephant do
4
- let(:model_file) { 'foo' }
5
4
  subject { Alephant::Alephant }
6
5
 
7
6
  describe "initialize(opts = {})" do
@@ -19,7 +18,6 @@ describe Alephant::Alephant do
19
18
 
20
19
  it "sets specified options" do
21
20
  instance = subject.new({
22
- :model_file => :model_file,
23
21
  :s3_bucket_id => :s3_bucket_id,
24
22
  :s3_object_path => :s3_object_path,
25
23
  :s3_object_id => :s3_object_id,
@@ -30,7 +28,6 @@ describe Alephant::Alephant do
30
28
  :component_id => :component_id
31
29
  })
32
30
 
33
- expect(instance.model_file).to eq(:model_file);
34
31
  expect(instance.s3_bucket_id).to eq(:s3_bucket_id);
35
32
  expect(instance.s3_object_path).to eq(:s3_object_path);
36
33
  expect(instance.s3_object_id).to eq(:s3_object_id);
@@ -44,7 +41,6 @@ describe Alephant::Alephant do
44
41
  it "sets unspecified options to nil" do
45
42
  instance = subject.new
46
43
 
47
- expect(instance.model_file).to eq(nil);
48
44
  expect(instance.s3_bucket_id).to eq(nil);
49
45
  expect(instance.s3_object_path).to eq(nil);
50
46
  expect(instance.s3_object_id).to eq(nil);
@@ -90,10 +86,11 @@ describe Alephant::Alephant do
90
86
 
91
87
  context "initializes @multi_renderer" do
92
88
  it "MultiRenderer class to be initialized" do
93
- Alephant::MultiRenderer.should_receive(:new).with(model_file, 'components/foo')
89
+ Alephant::MultiRenderer
90
+ .should_receive(:new)
91
+ .with('foo', 'components')
94
92
 
95
93
  instance = subject.new({
96
- :model_file => model_file,
97
94
  :view_path => 'components',
98
95
  :component_id => 'foo'
99
96
  })
@@ -1,5 +1,5 @@
1
1
  module MyApp
2
- class Foo < ::Alephant::Views::Base
2
+ class FooFoo < ::Alephant::Views::Base
3
3
  def content
4
4
  "content"
5
5
  end
@@ -1,95 +1,103 @@
1
+
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Alephant::MultiRenderer do
4
- let(:model_file) { 'foo' }
5
+ let(:component_id) { :foo }
5
6
  subject { Alephant::MultiRenderer }
6
7
 
7
- before(:each) do
8
- @instance = subject.new(model_file)
9
- @instance.base_path = File.join(
10
- File.dirname(__FILE__),
11
- 'fixtures',
12
- 'components',
13
- 'foo'
14
- )
15
- end
16
-
17
- describe ".initialize(view_base_path)" do
18
- context "view_base_path = nil" do
19
- it "sets base_path" do
20
- expect(subject.new(model_file).base_path).to eq(Alephant::MultiRenderer::DEFAULT_LOCATION)
8
+ describe "initialize(view_base_path)" do
9
+ context "view_base_path = invalid_path" do
10
+ it "should raise InvalidViewPath" do
11
+ expect {
12
+ instance = subject.new(component_id, './invalid_path')
13
+ }.to raise_error(
14
+ Alephant::Errors::InvalidViewPath
15
+ )
21
16
  end
22
17
  end
23
18
 
24
19
  context "view_base_path = '.'" do
25
20
  it "sets base_path" do
26
- expect(subject.new(model_file, '.').base_path).to eq('.')
21
+ File.stub(:directory?).and_return(true)
22
+ expect(subject.new(component_id, '.').base_path).to eq("./#{component_id}")
27
23
  end
28
24
  end
29
25
 
30
- context "view_base_path = invalid_path" do
31
- it "should raise InvalidViewPath" do
32
- expect {
33
- instance = subject.new(model_file, './invalid_path')
34
- }.to raise_error(
35
- Alephant::Errors::InvalidViewPath
36
- )
26
+ context "view_base_path = nil" do
27
+ it "sets base_path" do
28
+ expect(subject.new(component_id).base_path).to eq(Alephant::MultiRenderer::DEFAULT_LOCATION)
37
29
  end
38
30
  end
39
31
  end
40
32
 
41
- describe "#render_template(template_file, data, instance = nil)" do
33
+ describe "render_template(template_file, data, instance = nil)" do
34
+ before(:each) do
35
+ File.stub(:directory?).and_return(true)
36
+ end
37
+
42
38
  context "instance is not nil" do
43
- let(:data) { { :foo => :bar } }
44
- let(:model_instance) { @instance.create_instance(data) }
39
+ let(:data) {{ :foo => :bar }}
40
+
45
41
  it "renders the specified template" do
42
+ Alephant::MultiRenderer.any_instance.stub(:create_instance)
43
+ Alephant::Renderer.any_instance.stub(:render).and_return('content')
44
+
46
45
  expect(
47
- @instance.render_template('foo', data, model_instance)
46
+ subject.new(component_id, '.')
47
+ .render_template('foo', data)
48
48
  ).to eq('content')
49
49
  end
50
50
  end
51
+ end
51
52
 
52
- context "instance is nil" do
53
- let(:data) { { :foo => :bar } }
54
- it "renders the specified template" do
55
- expect(
56
- @instance.render_template('foo', data, nil)
57
- ).to eq('content')
58
- end
53
+ describe "render(data)" do
54
+ before(:each) do
55
+ File.stub(:directory?).and_return(true)
59
56
  end
60
57
 
58
+ it "calls ::Alephant::renderer.render() for each template found" do
59
+ Alephant::MultiRenderer.any_instance.stub(:create_instance)
60
+ Alephant::Renderer.any_instance.stub(:render).and_return('content')
61
61
 
62
- end
62
+ Dir.stub(:glob).and_return(['/some/path/foo.mustache', '/some/path/bar.mustache'])
63
63
 
64
- describe "#render(data)" do
65
- it "calls ::Alephant::renderer.render() for each template found" do
66
64
  templates = {
67
65
  :foo => 'content',
68
66
  :bar => 'content'
69
67
  }
70
68
 
71
- content = @instance.render({ :foo => :bar })
69
+ instance = subject.new(component_id, '.')
70
+
71
+ content = instance.render({ :foo => :bar })
72
+
73
+ expect(content.size).to eq(2)
74
+
72
75
  content.each do |template_type, rendered_content|
73
76
  expect(rendered_content).to eq(templates[template_type])
74
77
  end
75
78
  end
76
79
  end
77
80
 
78
- describe "#create_instance(data)" do
81
+ describe "create_instance(template_file, data)" do
82
+ before(:each) do
83
+ File.stub(:directory?).and_return(true)
84
+ end
85
+
79
86
  let(:data) {{ :key => :value }}
80
87
 
81
88
  it "returns the model" do
82
- model = @instance.create_instance(data)
89
+ instance = subject.new(component_id, 'fixtures/components')
90
+ model = instance.create_instance('foo', data)
83
91
  model.should be_an Alephant::Views::Base
84
92
  expect(model.data).to eq(data)
85
93
  end
86
94
 
87
95
  context "invalid model" do
88
96
  it 'should raise ViewModelNotFound' do
89
- instance = subject.new('invalid_model_file', @base_path)
97
+ instance = subject.new(component_id, @base_path)
90
98
 
91
99
  expect {
92
- instance.create_instance(data)
100
+ instance.create_instance('invalid_model', data)
93
101
  }.to raise_error(
94
102
  Alephant::Errors::ViewModelNotFound
95
103
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.1
4
+ version: 0.0.9.2
5
5
  platform: java
6
6
  authors:
7
7
  - Robert Kenny
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-04 00:00:00.000000000 Z
11
+ date: 2014-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec