apple-news 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +138 -0
- data/Rakefile +6 -0
- data/apple-news.gemspec +28 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/apple-news.rb +41 -0
- data/lib/apple-news/addition.rb +7 -0
- data/lib/apple-news/additions/base.rb +15 -0
- data/lib/apple-news/additions/link.rb +9 -0
- data/lib/apple-news/animation.rb +7 -0
- data/lib/apple-news/animations/appear.rb +7 -0
- data/lib/apple-news/animations/base.rb +17 -0
- data/lib/apple-news/animations/fade_in.rb +8 -0
- data/lib/apple-news/animations/move_in.rb +8 -0
- data/lib/apple-news/animations/scale_fade.rb +8 -0
- data/lib/apple-news/article.rb +33 -0
- data/lib/apple-news/behavior.rb +7 -0
- data/lib/apple-news/behaviors/background_motion.rb +7 -0
- data/lib/apple-news/behaviors/background_parallax.rb +7 -0
- data/lib/apple-news/behaviors/base.rb +15 -0
- data/lib/apple-news/behaviors/motion.rb +7 -0
- data/lib/apple-news/behaviors/parallax.rb +8 -0
- data/lib/apple-news/behaviors/springy.rb +7 -0
- data/lib/apple-news/channel.rb +40 -0
- data/lib/apple-news/component.rb +28 -0
- data/lib/apple-news/component_layout.rb +9 -0
- data/lib/apple-news/components/audio.rb +16 -0
- data/lib/apple-news/components/author.rb +8 -0
- data/lib/apple-news/components/banner_advertisement.rb +14 -0
- data/lib/apple-news/components/base.rb +17 -0
- data/lib/apple-news/components/body.rb +8 -0
- data/lib/apple-news/components/byline.rb +8 -0
- data/lib/apple-news/components/caption.rb +8 -0
- data/lib/apple-news/components/chapter.rb +10 -0
- data/lib/apple-news/components/container.rb +8 -0
- data/lib/apple-news/components/divider.rb +8 -0
- data/lib/apple-news/components/embed_web_video.rb +12 -0
- data/lib/apple-news/components/figure.rb +8 -0
- data/lib/apple-news/components/gallery.rb +8 -0
- data/lib/apple-news/components/header.rb +7 -0
- data/lib/apple-news/components/heading.rb +8 -0
- data/lib/apple-news/components/illustrator.rb +8 -0
- data/lib/apple-news/components/image.rb +14 -0
- data/lib/apple-news/components/instagram.rb +9 -0
- data/lib/apple-news/components/intro.rb +8 -0
- data/lib/apple-news/components/logo.rb +8 -0
- data/lib/apple-news/components/medium_rectangle_advertisement.rb +7 -0
- data/lib/apple-news/components/mosaic.rb +8 -0
- data/lib/apple-news/components/music.rb +8 -0
- data/lib/apple-news/components/photo.rb +8 -0
- data/lib/apple-news/components/photographer.rb +8 -0
- data/lib/apple-news/components/portrait.rb +8 -0
- data/lib/apple-news/components/pullquote.rb +8 -0
- data/lib/apple-news/components/quote.rb +8 -0
- data/lib/apple-news/components/scalable_image.rb +14 -0
- data/lib/apple-news/components/section.rb +8 -0
- data/lib/apple-news/components/text.rb +13 -0
- data/lib/apple-news/components/title.rb +8 -0
- data/lib/apple-news/components/tweet.rb +9 -0
- data/lib/apple-news/components/video.rb +12 -0
- data/lib/apple-news/configuration.rb +12 -0
- data/lib/apple-news/document.rb +22 -0
- data/lib/apple-news/document/attachments.rb +24 -0
- data/lib/apple-news/document/metadata.rb +43 -0
- data/lib/apple-news/document/persistence.rb +42 -0
- data/lib/apple-news/layout.rb +8 -0
- data/lib/apple-news/links.rb +19 -0
- data/lib/apple-news/metadata.rb +15 -0
- data/lib/apple-news/multipart_post_patch.rb +29 -0
- data/lib/apple-news/properties.rb +87 -0
- data/lib/apple-news/properties/advertising_layout.rb +7 -0
- data/lib/apple-news/properties/advertising_settings.rb +7 -0
- data/lib/apple-news/properties/anchor.rb +15 -0
- data/lib/apple-news/properties/base.rb +7 -0
- data/lib/apple-news/properties/caption_descriptor.rb +8 -0
- data/lib/apple-news/properties/color_stop.rb +8 -0
- data/lib/apple-news/properties/content_inset.rb +7 -0
- data/lib/apple-news/properties/gallery_item.rb +7 -0
- data/lib/apple-news/properties/margin.rb +7 -0
- data/lib/apple-news/properties/offset.rb +7 -0
- data/lib/apple-news/property.rb +7 -0
- data/lib/apple-news/request.rb +6 -0
- data/lib/apple-news/requests/get.rb +28 -0
- data/lib/apple-news/requests/post.rb +57 -0
- data/lib/apple-news/resource.rb +25 -0
- data/lib/apple-news/scene.rb +7 -0
- data/lib/apple-news/scenes/base.rb +15 -0
- data/lib/apple-news/scenes/fading_sticky_header.rb +8 -0
- data/lib/apple-news/scenes/parallax_scale_header.rb +7 -0
- data/lib/apple-news/section.rb +27 -0
- data/lib/apple-news/security.rb +46 -0
- data/lib/apple-news/style.rb +10 -0
- data/lib/apple-news/styles/base.rb +7 -0
- data/lib/apple-news/styles/border.rb +7 -0
- data/lib/apple-news/styles/component.rb +7 -0
- data/lib/apple-news/styles/component_text.rb +9 -0
- data/lib/apple-news/styles/document.rb +7 -0
- data/lib/apple-news/styles/drop_cap.rb +9 -0
- data/lib/apple-news/styles/fill.rb +11 -0
- data/lib/apple-news/styles/gradient_fill.rb +12 -0
- data/lib/apple-news/styles/image_fill.rb +11 -0
- data/lib/apple-news/styles/inline_text.rb +7 -0
- data/lib/apple-news/styles/linear_gradient_fill.rb +9 -0
- data/lib/apple-news/styles/shadow.rb +8 -0
- data/lib/apple-news/styles/stroke.rb +7 -0
- data/lib/apple-news/styles/text.rb +8 -0
- data/lib/apple-news/styles/text_stroke.rb +8 -0
- data/lib/apple-news/styles/video_fill.rb +12 -0
- data/lib/apple-news/version.rb +3 -0
- metadata +241 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Request
|
3
|
+
class Get
|
4
|
+
attr_reader :url
|
5
|
+
|
6
|
+
def initialize(url)
|
7
|
+
@config = AppleNews.config
|
8
|
+
@url = URI::parse(File.join(@config.api_base, url))
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(params = {})
|
12
|
+
http = Net::HTTP.new(@url.hostname, @url.port)
|
13
|
+
http.use_ssl = true
|
14
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
15
|
+
|
16
|
+
res = http.get(@url, headers)
|
17
|
+
JSON.parse(res.body)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def headers
|
23
|
+
security = AppleNews::Security.new('GET', @url.to_s)
|
24
|
+
{ 'Authorization' => security.authorization }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Request
|
3
|
+
class Post
|
4
|
+
attr_reader :url
|
5
|
+
attr_accessor :fields
|
6
|
+
|
7
|
+
def initialize(url)
|
8
|
+
@config = AppleNews.config
|
9
|
+
@url = URI::parse(File.join(@config.api_base, url))
|
10
|
+
@fields = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def call
|
14
|
+
http = Net::HTTP.new(@url.hostname, @url.port)
|
15
|
+
http.use_ssl = true
|
16
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
17
|
+
# http.set_debug_output $stderr
|
18
|
+
|
19
|
+
res = http.post(@url, content_body, headers)
|
20
|
+
JSON.parse(res.body)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def multipart
|
26
|
+
@multipart ||= Net::HTTP::Post::Multipart.new(@url.path, @fields, {
|
27
|
+
parts: {
|
28
|
+
'metadata' => {
|
29
|
+
'Content-Type' => 'application/json'
|
30
|
+
}
|
31
|
+
}
|
32
|
+
})
|
33
|
+
end
|
34
|
+
|
35
|
+
def content_body
|
36
|
+
body = multipart.body_stream.read
|
37
|
+
multipart.body_stream.rewind
|
38
|
+
body
|
39
|
+
end
|
40
|
+
|
41
|
+
def authorization
|
42
|
+
security = AppleNews::Security.new('POST', @url)
|
43
|
+
security.content_type = "multipart/form-data; boundary=#{Net::HTTP::Post::Multipart::DEFAULT_BOUNDARY}"
|
44
|
+
security.content_body = content_body
|
45
|
+
|
46
|
+
security.authorization
|
47
|
+
end
|
48
|
+
|
49
|
+
def headers
|
50
|
+
{
|
51
|
+
'Authorization' => authorization,
|
52
|
+
'Content-Type' => "multipart/form-data; boundary=#{Net::HTTP::Post::Multipart::DEFAULT_BOUNDARY}"
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Resource
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
def update_with_data(data)
|
7
|
+
process_data(data)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def hydrate!
|
13
|
+
request = AppleNews::Request::Get.new(@url)
|
14
|
+
resp = request.call
|
15
|
+
process_data(resp['data'])
|
16
|
+
end
|
17
|
+
|
18
|
+
def process_data(data)
|
19
|
+
data.each do |k, v|
|
20
|
+
instance_variable_set("@#{k.underscore}", v)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module AppleNews
|
2
|
+
class Section
|
3
|
+
include Resource
|
4
|
+
include Links
|
5
|
+
|
6
|
+
attr_reader :id, :type, :name, :is_default, :links, :created_at, :modified_at
|
7
|
+
|
8
|
+
def initialize(id, data = nil)
|
9
|
+
@id = id
|
10
|
+
@url = "/sections/#{id}"
|
11
|
+
|
12
|
+
data.nil? ? hydrate! : process_data(data)
|
13
|
+
end
|
14
|
+
|
15
|
+
def channel
|
16
|
+
Channel.new(channel_link_id('channel'))
|
17
|
+
end
|
18
|
+
|
19
|
+
def articles(params = {})
|
20
|
+
request = Request::Get.new("/sections/#{id}/articles")
|
21
|
+
resp = request.call(params)
|
22
|
+
resp['data'].map do |article|
|
23
|
+
Article.new(article['id'], article)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module AppleNews
|
2
|
+
class Security
|
3
|
+
attr_accessor :method, :url, :content_type, :content_body
|
4
|
+
|
5
|
+
def initialize(method, url)
|
6
|
+
@config = AppleNews.config
|
7
|
+
|
8
|
+
@method = method.upcase
|
9
|
+
@url = url
|
10
|
+
@date = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
11
|
+
@content_type = nil
|
12
|
+
@content_body = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def authorization
|
16
|
+
if @method == 'POST' && (@content_type.nil? || @content_body.nil?)
|
17
|
+
raise "POST requests require the content type and body to be included in the signature generation"
|
18
|
+
end
|
19
|
+
|
20
|
+
"HHMAC; key=#{@config.api_key_id}; signature=#{signature}; date=#{@date}"
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def hash_content
|
26
|
+
[@method, @url, @date, @content_type, @content_body].compact
|
27
|
+
end
|
28
|
+
|
29
|
+
def canonical_request
|
30
|
+
hash_content.join('')
|
31
|
+
end
|
32
|
+
|
33
|
+
def key
|
34
|
+
Base64.strict_decode64(@config.api_key_secret)
|
35
|
+
end
|
36
|
+
|
37
|
+
def digest
|
38
|
+
sha256 = OpenSSL::Digest.new('sha256')
|
39
|
+
OpenSSL::HMAC.digest(sha256, key, canonical_request)
|
40
|
+
end
|
41
|
+
|
42
|
+
def signature
|
43
|
+
Base64.strict_encode64(digest)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'apple-news/styles/base'
|
2
|
+
require 'apple-news/styles/fill'
|
3
|
+
require 'apple-news/styles/gradient_fill'
|
4
|
+
require 'apple-news/styles/text'
|
5
|
+
Dir["#{File.dirname(__FILE__)}/styles/*.rb"].each { |path| require path }
|
6
|
+
|
7
|
+
module AppleNews
|
8
|
+
module Style
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Style
|
3
|
+
class ComponentText < Text
|
4
|
+
optional_properties :drop_cap_style, :first_line_indent, :hanging_punctuation, :hyphenation,
|
5
|
+
:line_height, :link_style, :paragraph_spacing_before, :paragraph_spacing_after,
|
6
|
+
:text_alignment
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Style
|
3
|
+
class ImageFill < Base
|
4
|
+
include Fill
|
5
|
+
required_property :type, "image"
|
6
|
+
required_property :url
|
7
|
+
optional_properties :fill_mode, :horizontal_alignment, :vertical_alignment
|
8
|
+
property_inflection :url, 'URL'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module AppleNews
|
2
|
+
module Style
|
3
|
+
class VideoFill < Base
|
4
|
+
required_property :type, "video"
|
5
|
+
required_properties :url, :still_url
|
6
|
+
optional_properties :fill_mode, :loop, :vertical_alignment, :horizontal_alignment
|
7
|
+
|
8
|
+
property_inflection :url, 'URL'
|
9
|
+
property_inflection :still_url, 'stillURL'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,241 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: apple-news
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ryan LeFevre
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
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: activesupport
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: multipart-post
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
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: mime-types
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
description: Fully-featured library for fetching and creating content with the Apple
|
98
|
+
News API.
|
99
|
+
email:
|
100
|
+
- ryan@hodinkee.com
|
101
|
+
executables: []
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- ".rspec"
|
107
|
+
- ".travis.yml"
|
108
|
+
- Gemfile
|
109
|
+
- README.md
|
110
|
+
- Rakefile
|
111
|
+
- apple-news.gemspec
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- lib/apple-news.rb
|
115
|
+
- lib/apple-news/addition.rb
|
116
|
+
- lib/apple-news/additions/base.rb
|
117
|
+
- lib/apple-news/additions/link.rb
|
118
|
+
- lib/apple-news/animation.rb
|
119
|
+
- lib/apple-news/animations/appear.rb
|
120
|
+
- lib/apple-news/animations/base.rb
|
121
|
+
- lib/apple-news/animations/fade_in.rb
|
122
|
+
- lib/apple-news/animations/move_in.rb
|
123
|
+
- lib/apple-news/animations/scale_fade.rb
|
124
|
+
- lib/apple-news/article.rb
|
125
|
+
- lib/apple-news/behavior.rb
|
126
|
+
- lib/apple-news/behaviors/background_motion.rb
|
127
|
+
- lib/apple-news/behaviors/background_parallax.rb
|
128
|
+
- lib/apple-news/behaviors/base.rb
|
129
|
+
- lib/apple-news/behaviors/motion.rb
|
130
|
+
- lib/apple-news/behaviors/parallax.rb
|
131
|
+
- lib/apple-news/behaviors/springy.rb
|
132
|
+
- lib/apple-news/channel.rb
|
133
|
+
- lib/apple-news/component.rb
|
134
|
+
- lib/apple-news/component_layout.rb
|
135
|
+
- lib/apple-news/components/audio.rb
|
136
|
+
- lib/apple-news/components/author.rb
|
137
|
+
- lib/apple-news/components/banner_advertisement.rb
|
138
|
+
- lib/apple-news/components/base.rb
|
139
|
+
- lib/apple-news/components/body.rb
|
140
|
+
- lib/apple-news/components/byline.rb
|
141
|
+
- lib/apple-news/components/caption.rb
|
142
|
+
- lib/apple-news/components/chapter.rb
|
143
|
+
- lib/apple-news/components/container.rb
|
144
|
+
- lib/apple-news/components/divider.rb
|
145
|
+
- lib/apple-news/components/embed_web_video.rb
|
146
|
+
- lib/apple-news/components/figure.rb
|
147
|
+
- lib/apple-news/components/gallery.rb
|
148
|
+
- lib/apple-news/components/header.rb
|
149
|
+
- lib/apple-news/components/heading.rb
|
150
|
+
- lib/apple-news/components/illustrator.rb
|
151
|
+
- lib/apple-news/components/image.rb
|
152
|
+
- lib/apple-news/components/instagram.rb
|
153
|
+
- lib/apple-news/components/intro.rb
|
154
|
+
- lib/apple-news/components/logo.rb
|
155
|
+
- lib/apple-news/components/medium_rectangle_advertisement.rb
|
156
|
+
- lib/apple-news/components/mosaic.rb
|
157
|
+
- lib/apple-news/components/music.rb
|
158
|
+
- lib/apple-news/components/photo.rb
|
159
|
+
- lib/apple-news/components/photographer.rb
|
160
|
+
- lib/apple-news/components/portrait.rb
|
161
|
+
- lib/apple-news/components/pullquote.rb
|
162
|
+
- lib/apple-news/components/quote.rb
|
163
|
+
- lib/apple-news/components/scalable_image.rb
|
164
|
+
- lib/apple-news/components/section.rb
|
165
|
+
- lib/apple-news/components/text.rb
|
166
|
+
- lib/apple-news/components/title.rb
|
167
|
+
- lib/apple-news/components/tweet.rb
|
168
|
+
- lib/apple-news/components/video.rb
|
169
|
+
- lib/apple-news/configuration.rb
|
170
|
+
- lib/apple-news/document.rb
|
171
|
+
- lib/apple-news/document/attachments.rb
|
172
|
+
- lib/apple-news/document/metadata.rb
|
173
|
+
- lib/apple-news/document/persistence.rb
|
174
|
+
- lib/apple-news/layout.rb
|
175
|
+
- lib/apple-news/links.rb
|
176
|
+
- lib/apple-news/metadata.rb
|
177
|
+
- lib/apple-news/multipart_post_patch.rb
|
178
|
+
- lib/apple-news/properties.rb
|
179
|
+
- lib/apple-news/properties/advertising_layout.rb
|
180
|
+
- lib/apple-news/properties/advertising_settings.rb
|
181
|
+
- lib/apple-news/properties/anchor.rb
|
182
|
+
- lib/apple-news/properties/base.rb
|
183
|
+
- lib/apple-news/properties/caption_descriptor.rb
|
184
|
+
- lib/apple-news/properties/color_stop.rb
|
185
|
+
- lib/apple-news/properties/content_inset.rb
|
186
|
+
- lib/apple-news/properties/gallery_item.rb
|
187
|
+
- lib/apple-news/properties/margin.rb
|
188
|
+
- lib/apple-news/properties/offset.rb
|
189
|
+
- lib/apple-news/property.rb
|
190
|
+
- lib/apple-news/request.rb
|
191
|
+
- lib/apple-news/requests/get.rb
|
192
|
+
- lib/apple-news/requests/post.rb
|
193
|
+
- lib/apple-news/resource.rb
|
194
|
+
- lib/apple-news/scene.rb
|
195
|
+
- lib/apple-news/scenes/base.rb
|
196
|
+
- lib/apple-news/scenes/fading_sticky_header.rb
|
197
|
+
- lib/apple-news/scenes/parallax_scale_header.rb
|
198
|
+
- lib/apple-news/section.rb
|
199
|
+
- lib/apple-news/security.rb
|
200
|
+
- lib/apple-news/style.rb
|
201
|
+
- lib/apple-news/styles/base.rb
|
202
|
+
- lib/apple-news/styles/border.rb
|
203
|
+
- lib/apple-news/styles/component.rb
|
204
|
+
- lib/apple-news/styles/component_text.rb
|
205
|
+
- lib/apple-news/styles/document.rb
|
206
|
+
- lib/apple-news/styles/drop_cap.rb
|
207
|
+
- lib/apple-news/styles/fill.rb
|
208
|
+
- lib/apple-news/styles/gradient_fill.rb
|
209
|
+
- lib/apple-news/styles/image_fill.rb
|
210
|
+
- lib/apple-news/styles/inline_text.rb
|
211
|
+
- lib/apple-news/styles/linear_gradient_fill.rb
|
212
|
+
- lib/apple-news/styles/shadow.rb
|
213
|
+
- lib/apple-news/styles/stroke.rb
|
214
|
+
- lib/apple-news/styles/text.rb
|
215
|
+
- lib/apple-news/styles/text_stroke.rb
|
216
|
+
- lib/apple-news/styles/video_fill.rb
|
217
|
+
- lib/apple-news/version.rb
|
218
|
+
homepage: https://github.com/hodinkee/apple-news-rb
|
219
|
+
licenses: []
|
220
|
+
metadata: {}
|
221
|
+
post_install_message:
|
222
|
+
rdoc_options: []
|
223
|
+
require_paths:
|
224
|
+
- lib
|
225
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0'
|
235
|
+
requirements: []
|
236
|
+
rubyforge_project:
|
237
|
+
rubygems_version: 2.5.1
|
238
|
+
signing_key:
|
239
|
+
specification_version: 4
|
240
|
+
summary: Fully-featured library for working with the Apple News API.
|
241
|
+
test_files: []
|