tvml 0.0.0.pre → 0.0.1.pre
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 +4 -4
- data/.gitignore +1 -0
- data/lib/TVML/element/base.rb +49 -0
- data/lib/TVML/element/button.rb +7 -0
- data/lib/TVML/template/alert.rb +30 -0
- data/lib/TVML/template/base.rb +9 -0
- data/lib/TVML/template/catalog.rb +6 -0
- data/lib/TVML/template/descriptive_alert.rb +6 -0
- data/lib/TVML/template/div.rb +6 -0
- data/lib/TVML/template/form.rb +6 -0
- data/lib/TVML/template/list.rb +6 -0
- data/lib/TVML/template/loading.rb +6 -0
- data/lib/TVML/template/main.rb +6 -0
- data/lib/TVML/template/oneup.rb +6 -0
- data/lib/TVML/template/parade.rb +6 -0
- data/lib/TVML/template/product_bundle.rb +6 -0
- data/lib/TVML/template/rating.rb +6 -0
- data/lib/TVML/template/search.rb +6 -0
- data/lib/TVML/template/showcase.rb +6 -0
- data/lib/TVML/template/stack.rb +6 -0
- data/lib/TVML/version.rb +1 -1
- data/lib/tvml.rb +28 -2
- data/tvml.gemspec +7 -4
- metadata +65 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 697968941bc21b59c1a4ccf04ce9ee006549cfb3
|
4
|
+
data.tar.gz: 11a94e8193d2ae1f55a9ee5d5c6c162ac378dbd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fdc9797028daf0cc4bce4fc46f99611fc289d593d4dc2b24763f89f2f18a24b347afb64422804ef0cbd3589a1c10651900dc6bc1bf46d60afe282b8c7d6df55
|
7
|
+
data.tar.gz: 9c374ce2f82335b570b0ef9bc79ed0f6f34985b7b88ade0321be57f6481eb5ea821412c2c5f17b14817c442c45174e397db734cbd134f003734be4872c797c2c
|
data/.gitignore
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
module TVML
|
2
|
+
module Element
|
3
|
+
class Base
|
4
|
+
delegate :node_name, to: :class
|
5
|
+
|
6
|
+
def self.inherited(subclass)
|
7
|
+
subclass.cattr_accessor(:elements) { [] }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.element(*element_names)
|
11
|
+
element_names.each do |element_name|
|
12
|
+
attr_accessor element_name
|
13
|
+
elements << element_name.to_sym
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.node_name
|
18
|
+
name.demodulize.camelize :lower
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.build(&block)
|
22
|
+
new.build(&block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize_builder(&block)
|
26
|
+
Builder::XmlMarkup.new.__send__(node_name, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
def build(&block)
|
30
|
+
if block_given?
|
31
|
+
initialize_builder(&block)
|
32
|
+
else
|
33
|
+
initialize_builder { |b| marshal_elements b }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_tvml
|
38
|
+
@builder.to_s
|
39
|
+
end
|
40
|
+
|
41
|
+
def marshal_elements(node, *element_list)
|
42
|
+
element_list = self.class.elements if element_list.empty?
|
43
|
+
element_list.each do |ele|
|
44
|
+
node.__send__ ele, send(ele) if send(ele).present?
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module TVML
|
2
|
+
module Template
|
3
|
+
class Alert < Base
|
4
|
+
element :description, :title
|
5
|
+
attr_accessor :buttons
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
super
|
9
|
+
@buttons = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def collapse_button_list
|
13
|
+
@buttons = buttons.map do |button|
|
14
|
+
next button if button.is_a?(TVML::Element::Button)
|
15
|
+
btn = TVML::Element::Button.new
|
16
|
+
btn.text = button
|
17
|
+
btn
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
22
|
+
collapse_button_list
|
23
|
+
super do |node|
|
24
|
+
marshal_elements node
|
25
|
+
node << buttons.map(&:build).join
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/TVML/version.rb
CHANGED
data/lib/tvml.rb
CHANGED
@@ -1,5 +1,31 @@
|
|
1
|
-
require
|
1
|
+
require 'TVML/version'
|
2
|
+
require 'active_support/all'
|
3
|
+
require 'builder'
|
2
4
|
|
3
5
|
module TVML
|
4
|
-
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
module Element
|
9
|
+
autoload :Base, 'TVML/element/base'
|
10
|
+
autoload :Button, 'TVML/element/button'
|
11
|
+
end
|
12
|
+
|
13
|
+
module Template
|
14
|
+
autoload :Base, 'TVML/template/base'
|
15
|
+
autoload :Alert, 'TVML/template/alert'
|
16
|
+
autoload :Catalog, 'TVML/template/catalog'
|
17
|
+
autoload :DescriptiveAlert, 'TVML/template/descriptive_alert'
|
18
|
+
autoload :Div, 'TVML/template/div'
|
19
|
+
autoload :Form, 'TVML/template/form'
|
20
|
+
autoload :List, 'TVML/template/list'
|
21
|
+
autoload :Loading, 'TVML/template/loading'
|
22
|
+
autoload :Main, 'TVML/template/main'
|
23
|
+
autoload :Oneup, 'TVML/template/oneup'
|
24
|
+
autoload :Parade, 'TVML/template/parade'
|
25
|
+
autoload :ProductBundle, 'TVML/template/product_bundle'
|
26
|
+
autoload :Rating, 'TVML/template/rating'
|
27
|
+
autoload :Seach, 'TVML/template/search'
|
28
|
+
autoload :Showcase, 'TVML/template/showcase'
|
29
|
+
autoload :Stack, 'TVML/template/stack'
|
30
|
+
end
|
5
31
|
end
|
data/tvml.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["chris@shadow.io"]
|
11
11
|
|
12
12
|
spec.summary = "Ruby library for working with Apple's TVML"
|
13
|
-
spec.description = "Ruby library for working with Apple's TVML built with
|
13
|
+
spec.description = "Ruby library for working with Apple's TVML built with Builder."
|
14
14
|
spec.homepage = 'https://github.com/chrisb/tvml'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -19,8 +19,11 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
spec.licenses = %w(MIT)
|
21
21
|
|
22
|
-
spec.add_dependency '
|
22
|
+
spec.add_dependency 'builder', '~> 3.2'
|
23
|
+
spec.add_dependency 'activesupport', '>= 4.2'
|
23
24
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
25
|
+
spec.add_development_dependency 'rspec', '~> 3.3'
|
26
|
+
spec.add_development_dependency 'simplecov', '~> 0.10'
|
27
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
28
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tvml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Bielinski
|
@@ -11,19 +11,61 @@ cert_chain: []
|
|
11
11
|
date: 2015-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: builder
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.2'
|
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.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.10'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.10'
|
27
69
|
- !ruby/object:Gem::Dependency
|
28
70
|
name: bundler
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,7 +94,7 @@ dependencies:
|
|
52
94
|
- - "~>"
|
53
95
|
- !ruby/object:Gem::Version
|
54
96
|
version: '10.0'
|
55
|
-
description: Ruby library for working with Apple's TVML built with
|
97
|
+
description: Ruby library for working with Apple's TVML built with Builder.
|
56
98
|
email:
|
57
99
|
- chris@shadow.io
|
58
100
|
executables: []
|
@@ -66,6 +108,24 @@ files:
|
|
66
108
|
- Rakefile
|
67
109
|
- bin/console
|
68
110
|
- bin/setup
|
111
|
+
- lib/TVML/element/base.rb
|
112
|
+
- lib/TVML/element/button.rb
|
113
|
+
- lib/TVML/template/alert.rb
|
114
|
+
- lib/TVML/template/base.rb
|
115
|
+
- lib/TVML/template/catalog.rb
|
116
|
+
- lib/TVML/template/descriptive_alert.rb
|
117
|
+
- lib/TVML/template/div.rb
|
118
|
+
- lib/TVML/template/form.rb
|
119
|
+
- lib/TVML/template/list.rb
|
120
|
+
- lib/TVML/template/loading.rb
|
121
|
+
- lib/TVML/template/main.rb
|
122
|
+
- lib/TVML/template/oneup.rb
|
123
|
+
- lib/TVML/template/parade.rb
|
124
|
+
- lib/TVML/template/product_bundle.rb
|
125
|
+
- lib/TVML/template/rating.rb
|
126
|
+
- lib/TVML/template/search.rb
|
127
|
+
- lib/TVML/template/showcase.rb
|
128
|
+
- lib/TVML/template/stack.rb
|
69
129
|
- lib/TVML/version.rb
|
70
130
|
- lib/tvml.rb
|
71
131
|
- tvml.gemspec
|