ogp 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76a5e1d09ecf649ed6ae42c9210670fc975e97dc
4
- data.tar.gz: 5b3247e18f9d7dcbad25d56772fdf89da37c2ac0
3
+ metadata.gz: ca2fa62d7e09874c7999112994aa53385734c2b1
4
+ data.tar.gz: e44b5cb9f6eebf69a0a1e03f931f9502af687f10
5
5
  SHA512:
6
- metadata.gz: e7bad59e8dd573ab9ff01753c6f846be1faad91870162b90c924849694aff9f548aa6163e113e440e4703635c18eb53e4826548136e77e0e4ea7f7c92448845a
7
- data.tar.gz: b92431e1f01c0233bda839f3a3a165dc14c53c59ee1222109046a56e0e178359060a264c41b5fa6866191bdb8f23b8748d4c5ee54a5ce227ca6e9af186b3f698
6
+ metadata.gz: 824aee85a548ab9eb7cbcf46369567f238b01bac1a2d9969d82bad2b5b182a004e071c91a33bab8cb9045bc0a5052c91c5647362e666a7bf528f75e928fde6ae
7
+ data.tar.gz: 9b16c4795d015b03fe307dc98a0ce4830d8ae70c85de99a7072d2f5943f1f85ae1b0174926ce14a83d35c9bc910a9300224582f586dedaae1d929b4c28914bed
@@ -0,0 +1,120 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ Include:
4
+ - Rakefile
5
+ - config.ru
6
+ - Gemfile
7
+ - app/tasks/**/*.rake
8
+ Exclude:
9
+ - bin/**
10
+ - db/schema.rb
11
+ - db/migrate/**
12
+ - script/**
13
+ - vendor/**/*
14
+ - node_modules/**/*
15
+ TargetRubyVersion: 2.3
16
+
17
+ Rails:
18
+ Enabled: false
19
+
20
+ Documentation:
21
+ Enabled: false
22
+
23
+ Encoding:
24
+ Enabled: false
25
+
26
+ LineLength:
27
+ Max: 200
28
+
29
+ AccessModifierIndentation:
30
+ EnforcedStyle: outdent
31
+
32
+ IfUnlessModifier:
33
+ Enabled: false
34
+
35
+ CaseIndentation:
36
+ EnforcedStyle: end
37
+ IndentOneStep: true
38
+
39
+ MethodLength:
40
+ CountComments: false
41
+ Max: 25
42
+
43
+ SignalException:
44
+ Enabled: false
45
+
46
+ ColonMethodCall:
47
+ Enabled: false
48
+
49
+ AsciiComments:
50
+ Enabled: false
51
+
52
+ RegexpLiteral:
53
+ Enabled: false
54
+
55
+ AssignmentInCondition:
56
+ Enabled: false
57
+
58
+ ParameterLists:
59
+ CountKeywordArgs: false
60
+
61
+ SingleLineBlockParams:
62
+ Methods:
63
+ - reduce:
64
+ - memo
65
+ - item
66
+
67
+ MethodCalledOnDoEndBlock:
68
+ Enabled: true
69
+
70
+ Metrics/AbcSize:
71
+ Enabled: false
72
+
73
+ Style/CollectionMethods:
74
+ Enabled: true
75
+
76
+ Style/SymbolArray:
77
+ Enabled: true
78
+
79
+ Layout/ExtraSpacing:
80
+ Enabled: true
81
+
82
+ Layout/MultilineMethodCallIndentation:
83
+ Enabled: false
84
+
85
+ Layout/IndentArray:
86
+ Enabled: false
87
+
88
+ Layout/AlignHash:
89
+ Enabled: false
90
+
91
+ Layout/AlignParameters:
92
+ EnforcedStyle: with_fixed_indentation
93
+
94
+ Style/FrozenStringLiteralComment:
95
+ Enabled: false
96
+
97
+ Rails/SkipsModelValidations:
98
+ Enabled: false
99
+
100
+ Metrics/BlockLength:
101
+ Max: 200
102
+
103
+ Style/PercentLiteralDelimiters:
104
+ PreferredDelimiters:
105
+ '%i': '()'
106
+ '%I': '()'
107
+ '%w': '()'
108
+ '%W': '()'
109
+
110
+ Layout/SpaceInLambdaLiteral:
111
+ Enabled: false
112
+
113
+ Bundler/OrderedGems:
114
+ Enabled: false
115
+
116
+ Rails/OutputSafety:
117
+ Enabled: false
118
+
119
+ Performance/StringReplacement:
120
+ Enabled: false
@@ -0,0 +1,8 @@
1
+ sudo: false
2
+
3
+ language: ruby
4
+
5
+ rvm:
6
+ - 2.3
7
+
8
+ script: "bundle exec rake spec"
data/README.md CHANGED
@@ -1,6 +1,16 @@
1
- # OGP
1
+ <p align="center">
2
+ <a href="https://github.com/mirego/ogp">
3
+ <img src="https://i.imgur.com/qZrMsLq.png" alt="ogp" />
4
+ </a>
5
+ <br />
6
+ OGP is a minimalist Ruby library that does only one thing: parse Open Graph protocol information. For more information: <a href="http://ogp.me">http://ogp.me</a>.
7
+ <br /><br />
8
+ <a href="https://rubygems.org/gems/ogp"><img src="http://img.shields.io/gem/v/ogp.svg" /></a>
9
+ <a href="https://codeclimate.com/github/jcouture/ogp"><img src="http://img.shields.io/codeclimate/github/jcouture/ogp.svg" /></a>
10
+ <a href="https://gemnasium.com/jcouture/ogp"><img src="http://img.shields.io/gemnasium/jcouture/ogp.svg" /></a>
11
+ <a href="https://travis-ci.org/jcouture/ogp"><img src="http://img.shields.io/travis/jcouture/ogp.svg" /></a>
12
+ </p>
2
13
 
3
- OGP is a minimalist Ruby library that does only one thing: parse Open Graph protocol information from web sites. For more information: http://ogp.me.
4
14
 
5
15
  ## Installation
6
16
 
@@ -44,3 +54,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/jcoutu
44
54
 
45
55
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
46
56
 
57
+ The OGP pirate logo is based on [this icon](https://thenounproject.com/term/pirate/9414/) by [Simon Child](https://thenounproject.com/Simon%20Child/), from the Noun Project. Used under a [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/) license.
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new('spec')
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -1,14 +1,14 @@
1
1
  require 'oga'
2
2
  require 'ostruct'
3
3
 
4
- REQUIRED_ATTRIBUTES = %w(title type image url)
4
+ REQUIRED_ATTRIBUTES = %w(title type image url).freeze
5
5
 
6
6
  module OGP
7
7
  class OpenGraph
8
8
  # Required Accessors
9
9
  attr_accessor :title, :type, :url
10
10
  attr_accessor :images
11
-
11
+
12
12
  # Optional Accessors
13
13
  attr_accessor :description, :determiner, :site_name
14
14
  attr_accessor :audios
@@ -17,12 +17,10 @@ module OGP
17
17
 
18
18
  def initialize(source)
19
19
  if source.nil? || source.empty?
20
- raise ArgumentError.new('`source` cannot be nil or empty.')
20
+ raise ArgumentError, '`source` cannot be nil or empty.'
21
21
  end
22
22
 
23
- if !source.include?('</html>')
24
- raise MalformedSourceError
25
- end
23
+ raise MalformedSourceError unless source.include?('</html>')
26
24
 
27
25
  self.images = []
28
26
  self.audios = []
@@ -35,17 +33,15 @@ module OGP
35
33
  end
36
34
 
37
35
  def image
38
- return if self.images.nil?
39
- return self.images.first
36
+ return if images.nil?
37
+ images.first
40
38
  end
41
39
 
42
- private
40
+ private
43
41
 
44
42
  def check_required_attributes(document)
45
43
  REQUIRED_ATTRIBUTES.each do |attribute_name|
46
- if !attribute_exists(document, attribute_name)
47
- raise MissingAttributeError.new("Missing required attribute: #{attribute_name}")
48
- end
44
+ raise MissingAttributeError, "Missing required attribute: #{attribute_name}" unless attribute_exists(document, attribute_name)
49
45
  end
50
46
  end
51
47
 
@@ -53,22 +49,22 @@ module OGP
53
49
  document.xpath('//head/meta[starts-with(@property, \'og:\')]').each do |attribute|
54
50
  attribute_name = attribute.get('property').downcase.gsub('og:', '')
55
51
  case attribute_name
56
- when /^image$/i
57
- self.images << OpenStruct.new(url: attribute.get('content').to_s)
58
- when /^image:(.+)/i
59
- self.images.last[$1.gsub('-','_')] = attribute.get('content').to_s
60
- when /^audio$/i
61
- self.audios << OpenStruct.new(url: attribute.get('content').to_s)
62
- when /^audio:(.+)/i
63
- self.audios.last[$1.gsub('-','_')] = attribute.get('content').to_s
64
- when /^locale/i
65
- self.locales << attribute.get('content').to_s
66
- when /^video$/i
67
- self.videos << OpenStruct.new(url: attribute.get('content').to_s)
68
- when /^video:(.+)/i
69
- self.videos.last[$1.gsub('-','_')] = attribute.get('content').to_s
70
- else
71
- instance_variable_set("@#{attribute_name}", attribute.get('content'))
52
+ when /^image$/i
53
+ images << OpenStruct.new(url: attribute.get('content').to_s)
54
+ when /^image:(.+)/i
55
+ images.last[Regexp.last_match[1].gsub('-', '_')] = attribute.get('content').to_s
56
+ when /^audio$/i
57
+ audios << OpenStruct.new(url: attribute.get('content').to_s)
58
+ when /^audio:(.+)/i
59
+ audios.last[Regexp.last_match[1].gsub('-', '_')] = attribute.get('content').to_s
60
+ when /^locale/i
61
+ locales << attribute.get('content').to_s
62
+ when /^video$/i
63
+ videos << OpenStruct.new(url: attribute.get('content').to_s)
64
+ when /^video:(.+)/i
65
+ videos.last[Regexp.last_match[1].gsub('-', '_')] = attribute.get('content').to_s
66
+ else
67
+ instance_variable_set("@#{attribute_name}", attribute.get('content'))
72
68
  end
73
69
  end
74
70
  end
@@ -1,3 +1,3 @@
1
1
  module OGP
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'ogp/version'
@@ -9,13 +10,13 @@ Gem::Specification.new do |spec|
9
10
  spec.authors = ['Jean-Philippe Couture']
10
11
  spec.email = ['jcouture@gmail.com']
11
12
 
12
- spec.summary = spec.description
13
- spec.description = %q{Simple Ruby library for parsing Open Graph prototocol information from websites. See http://ogp.me for more information.}
13
+ spec.summary = 'Simple Ruby library for parsing Open Graph prototocol information.'
14
+ spec.description = 'Simple Ruby library for parsing Open Graph prototocol information. See http://ogp.me for more information.'
14
15
  spec.homepage = 'https://github.com/jcouture/ogp'
15
16
  spec.license = 'MIT'
16
17
 
17
18
  spec.files = `git ls-files`.split("\n")
18
- spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
20
  spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
21
  spec.require_paths = ['lib']
21
22
 
@@ -24,4 +25,5 @@ Gem::Specification.new do |spec|
24
25
  spec.add_development_dependency 'bundler', '~> 1.13'
25
26
  spec.add_development_dependency 'rake', '~> 10.0'
26
27
  spec.add_development_dependency 'rspec', '~> 3.6'
28
+ spec.add_development_dependency 'rubocop', '~> 0.49.1'
27
29
  end
@@ -17,26 +17,26 @@ describe OGP::OpenGraph do
17
17
  context 'with missing one of the required attributes' do
18
18
  it 'should raise an error' do
19
19
  content = File.read("#{File.dirname(__FILE__)}/../fixtures/missing_required_attributes.html")
20
-
21
- expect{OGP::OpenGraph.new(content)}.to raise_error(OGP::MissingAttributeError)
20
+
21
+ expect { OGP::OpenGraph.new(content) }.to raise_error(OGP::MissingAttributeError)
22
22
  end
23
23
  end
24
24
 
25
25
  context 'with nil source' do
26
26
  it 'should raise an error' do
27
- expect{OGP::OpenGraph.new(nil)}.to raise_error(ArgumentError)
27
+ expect { OGP::OpenGraph.new(nil) }.to raise_error(ArgumentError)
28
28
  end
29
29
  end
30
30
 
31
31
  context 'with empty source' do
32
32
  it 'should raise an error' do
33
- expect{OGP::OpenGraph.new('')}.to raise_error(ArgumentError)
33
+ expect { OGP::OpenGraph.new('') }.to raise_error(ArgumentError)
34
34
  end
35
35
  end
36
36
 
37
37
  context 'with malformed source' do
38
38
  it 'should raise an error' do
39
- expect{OGP::OpenGraph.new('Lorem ipsum dolor sit amet, consectetur adipiscing elit.')}.to raise_error(OGP::MalformedSourceError)
39
+ expect { OGP::OpenGraph.new('Lorem ipsum dolor sit amet, consectetur adipiscing elit.') }.to raise_error(OGP::MalformedSourceError)
40
40
  end
41
41
  end
42
42
 
@@ -1,7 +1,3 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'ogp'
4
-
5
- RSpec.configure do |config|
6
-
7
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ogp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Couture
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-13 00:00:00.000000000 Z
11
+ date: 2017-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oga
@@ -66,8 +66,22 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.6'
69
- description: Simple Ruby library for parsing Open Graph prototocol information from
70
- websites. See http://ogp.me for more information.
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.49.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.49.1
83
+ description: Simple Ruby library for parsing Open Graph prototocol information. See
84
+ http://ogp.me for more information.
71
85
  email:
72
86
  - jcouture@gmail.com
73
87
  executables: []
@@ -76,6 +90,8 @@ extra_rdoc_files: []
76
90
  files:
77
91
  - ".gitignore"
78
92
  - ".rspec"
93
+ - ".rubocop.yml"
94
+ - ".travis.yml"
79
95
  - CODE_OF_CONDUCT.md
80
96
  - Gemfile
81
97
  - LICENSE.txt
@@ -117,7 +133,7 @@ rubyforge_project:
117
133
  rubygems_version: 2.5.1
118
134
  signing_key:
119
135
  specification_version: 4
120
- summary: ''
136
+ summary: Simple Ruby library for parsing Open Graph prototocol information.
121
137
  test_files:
122
138
  - spec/fixtures/audio_structured_attributes.html
123
139
  - spec/fixtures/image_structured_attributes.html