aweplug 1.0.0.a9 → 1.0.0.a10

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.
metadata CHANGED
@@ -1,68 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aweplug
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.a9
5
- prerelease: 6
4
+ version: 1.0.0.a10
6
5
  platform: ruby
7
6
  authors:
8
7
  - LightGuard
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2014-01-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: octokit
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.24.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.24.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: faraday
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 0.8.7
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ version: 0.9.0
38
37
  type: :runtime
39
38
  prerelease: false
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
40
  requirements:
43
- - - ! '>='
41
+ - - '>='
44
42
  - !ruby/object:Gem::Version
45
43
  version: 0.8.7
44
+ - - <
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.0
46
47
  - !ruby/object:Gem::Dependency
47
48
  name: faraday_middleware
48
49
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: 0.9.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
57
  requirements:
59
- - - ! '>='
58
+ - - '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: 0.9.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: curb
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 0.8.5
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: 0.8.5
75
+ - !ruby/object:Gem::Dependency
76
+ name: oauth
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: 0.3.6
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 0.3.6
62
89
  - !ruby/object:Gem::Dependency
63
90
  name: guard-rspec
64
91
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
92
  requirements:
67
93
  - - ~>
68
94
  - !ruby/object:Gem::Version
@@ -70,7 +96,6 @@ dependencies:
70
96
  type: :development
71
97
  prerelease: false
72
98
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
99
  requirements:
75
100
  - - ~>
76
101
  - !ruby/object:Gem::Version
@@ -78,7 +103,6 @@ dependencies:
78
103
  - !ruby/object:Gem::Dependency
79
104
  name: rake
80
105
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
106
  requirements:
83
107
  - - ~>
84
108
  - !ruby/object:Gem::Version
@@ -86,7 +110,6 @@ dependencies:
86
110
  type: :development
87
111
  prerelease: false
88
112
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
113
  requirements:
91
114
  - - ~>
92
115
  - !ruby/object:Gem::Version
@@ -94,7 +117,6 @@ dependencies:
94
117
  - !ruby/object:Gem::Dependency
95
118
  name: pry
96
119
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
120
  requirements:
99
121
  - - ~>
100
122
  - !ruby/object:Gem::Version
@@ -102,7 +124,6 @@ dependencies:
102
124
  type: :development
103
125
  prerelease: false
104
126
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
127
  requirements:
107
128
  - - ~>
108
129
  - !ruby/object:Gem::Version
@@ -125,55 +146,41 @@ files:
125
146
  - aweplug.gemspec
126
147
  - lib/aweplug.rb
127
148
  - lib/aweplug/extensions/asciidoc_example.rb
128
- - lib/aweplug/extensions/identities.rb
129
- - lib/aweplug/extensions/identity/confluence.rb
130
- - lib/aweplug/extensions/identity/github.rb
131
- - lib/aweplug/extensions/identity/gravatar.rb
132
- - lib/aweplug/extensions/identity/jbosscommunity.rb
133
149
  - lib/aweplug/extensions/kramdown_quickstart.rb
134
150
  - lib/aweplug/extensions/sections.rb
135
151
  - lib/aweplug/handlers/synthetic_handler.rb
136
152
  - lib/aweplug/helpers/.gitkeep
137
- - lib/aweplug/helpers/git_commit_metadata.rb
153
+ - lib/aweplug/helpers/git_metadata.rb
138
154
  - lib/aweplug/helpers/kramdown_metadata.rb
139
155
  - lib/aweplug/helpers/searchisko.rb
156
+ - lib/aweplug/helpers/vimeo.rb
140
157
  - lib/aweplug/transformers/.gitkeep
141
158
  - lib/aweplug/version.rb
142
- - spec/aweplug/extensions/identity/collector_spec.rb
143
- - spec/aweplug/extensions/identity/github_spec.rb
144
- - spec/aweplug/extensions/identity/storage_spec.rb
145
159
  - spec/spec_helper.rb
146
- - spec/support/aweplug/extensions/identity/crawler_examples.rb
147
160
  homepage: https://github.com/awestruct/aweplug
148
161
  licenses: []
162
+ metadata: {}
149
163
  post_install_message:
150
164
  rdoc_options: []
151
165
  require_paths:
152
166
  - lib
153
167
  required_ruby_version: !ruby/object:Gem::Requirement
154
- none: false
155
168
  requirements:
156
- - - ! '>='
169
+ - - '>='
157
170
  - !ruby/object:Gem::Version
158
171
  version: '0'
159
172
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
173
  requirements:
162
- - - ! '>'
174
+ - - '>'
163
175
  - !ruby/object:Gem::Version
164
176
  version: 1.3.1
165
177
  requirements: []
166
178
  rubyforge_project:
167
- rubygems_version: 1.8.25
179
+ rubygems_version: 2.1.10
168
180
  signing_key:
169
- specification_version: 3
181
+ specification_version: 4
170
182
  summary: This set of Awestruct extensions includes helpful tools, extensions and
171
183
  helpers for building a website using Awestruct. It includes extensions for accessing
172
184
  Github, JIRA, managing identities and others.
173
185
  test_files:
174
- - spec/aweplug/extensions/identity/collector_spec.rb
175
- - spec/aweplug/extensions/identity/github_spec.rb
176
- - spec/aweplug/extensions/identity/storage_spec.rb
177
186
  - spec/spec_helper.rb
178
- - spec/support/aweplug/extensions/identity/crawler_examples.rb
179
- has_rdoc:
@@ -1,187 +0,0 @@
1
- require 'json'
2
- require 'aweplug/extensions/restclient_extensions'
3
- require 'aweplug/extensions/identity/github'
4
- require 'aweplug/extensions/identity/gravatar'
5
- require 'aweplug/extensions/identity/confluence'
6
- require 'aweplug/extensions/identity/jbosscommunity'
7
-
8
- module Aweplug
9
- module Extensions
10
- module Identities
11
- # QUESTION should we call this Initializer or Loader instead?
12
- class Storage
13
- def initialize(opts = {})
14
- @use_data_cache = opts[:use_data_cache] || true
15
- end
16
-
17
- # Internal: Awestruct calls this method during site generation.
18
- # Iterates through all the different identity in the site and finds
19
- # information about them.
20
- #
21
- # site - This must be the site object provided by awestruct
22
- #
23
- # Returns nothing
24
- def execute(site)
25
- data_file = File.join(site.tmp_dir, 'datacache', 'identity.yml')
26
- loaded = false
27
- identities = []
28
- if @use_data_cache and File.exist? data_file
29
- identities = YAML.load_file data_file
30
- loaded = true
31
- else
32
- if site.identities
33
- identities = site.identities.map { |i| OpenStruct.new i }
34
- end
35
- end
36
- identities.extend(Locators)
37
- identities.loaded = loaded
38
- site.identities = identities
39
- end
40
-
41
- module Locators
42
- attr_accessor :loaded
43
-
44
- def lookup(username, create = false)
45
- identity = self.find { |e| username.eql? e.username } ||
46
- self.find { |e| username.eql? e.jboss_username }
47
- if create and identity.nil?
48
- identity = OpenStruct.new({:username => username})
49
- if block_given?
50
- yield identity
51
- end
52
- self << identity
53
- end
54
- identity
55
- end
56
-
57
- def lookup_by_name(name, create = false)
58
- search = name.downcase
59
- identity = self.find { |e| search.eql? e.name.to_s.downcase }
60
- if create and identity.nil?
61
- identity = OpenStruct.new({:name => name})
62
- if block_given?
63
- yield identity
64
- end
65
- self << identity
66
- end
67
- identity
68
- end
69
-
70
- def lookup_by_contributor(contributor)
71
- identity = self.find { |e| e.contributor and e.contributor.emails and e.contributor.emails.include? contributor.email }
72
- if identity.nil?
73
- # Indication that we have a mismatched account
74
- puts "Could not find contributor with e-mail " + contributor.email
75
- end
76
- identity
77
- end
78
-
79
- def lookup_by_email(email, create = false)
80
- identity = self.find { |e| email.eql? e.email or !e.emails.nil? and e.emails.include? email }
81
- if create and identity.nil?
82
- identity = OpenStruct.new({:email => email})
83
- if block_given?
84
- yield identity
85
- end
86
- self << identity
87
- end
88
- identity
89
- end
90
-
91
- def lookup_by_github_id(github_id, create = false)
92
- identity = self.find { |e| github_id.eql? e.github_id }
93
- if create and identity.nil?
94
- identity = OpenStruct.new({:github_id => github_id})
95
- if block_given?
96
- yield identity
97
- end
98
- self << identity
99
- end
100
- identity
101
- end
102
-
103
- def lookup_by_twitter_username(username)
104
- self.find { |e| !e.twitter.nil? and username.eql? e.twitter.username }
105
- end
106
-
107
- def locate(*query)
108
- query.map! { |e| e.downcase }
109
- self.find { |e| not ([e.username, e.name.to_s.downcase, e.email] & query).empty? }
110
- end
111
-
112
- def core_team()
113
- self.select { |e| e.core }
114
- end
115
-
116
- def contributors()
117
- self.select { |e| e.contributor }
118
- end
119
-
120
- def speakers()
121
- self.select { |e| e.speaker }
122
- end
123
-
124
- def translators()
125
- self.select { |e| e.translator }
126
- end
127
- end
128
- end
129
-
130
- module IdentityHelper
131
- # SEMI-HACK this should received contributions from crawlers
132
- def url
133
- self.jbosscommunity ? self.jbosscommunity.profile_url : self.github.profile_url
134
- end
135
-
136
- # TODO support for CSS class, or just attributes in general
137
- def to_link
138
- "<a href=\"#{self.url}\">#{self.name}</a>"
139
- end
140
-
141
- def to_s
142
- self.name
143
- end
144
- end
145
-
146
- class Collect
147
- def initialize(*collectors)
148
- @collectors = collectors
149
- end
150
-
151
- def execute(site)
152
- if !site.identities.loaded
153
- @collectors.each do |c|
154
- c.collect(site.identities)
155
- end
156
- end
157
- end
158
- end
159
-
160
- class Crawl
161
- def initialize(*crawlers)
162
- @crawlers = crawlers
163
- end
164
-
165
- def execute(site)
166
- site.identities.each do |i|
167
- @crawlers.each do |c|
168
- c.crawl(i) if !site.identities.loaded
169
- i.extend(IdentityHelper)
170
- c.enhance(i) if c.respond_to? 'enhance'
171
- end
172
- end
173
- end
174
- end
175
-
176
- class Cache
177
- def execute(site)
178
- data_file = File.join(site.tmp_dir, 'datacache', 'identity.yml')
179
- FileUtils.mkdir_p File.dirname data_file
180
- File.open(data_file, 'w') do |out|
181
- YAML.dump site.identities, out
182
- end
183
- end
184
- end
185
- end
186
- end
187
- end
@@ -1,107 +0,0 @@
1
- require 'pathname'
2
-
3
- module Aweplug
4
- module Extensions
5
- module Identity
6
- module Confluence
7
- class Crawler
8
- SESSION_PATH = '/rest/prototype/1/session'
9
- SEARCH_PATH = '/rest/prototype/1/search/user'
10
- SEARCH_PARAM = 'query'
11
-
12
- # Public: Initialize a Crawler
13
- #
14
- # base_url - The String of the base confluence url, no trailing slash
15
- # opts[:assign_to] - The String OpenStruct keys to send the data
16
- # opts[:identity_search_keys] - The String OpenStruct keys to use to locate the search query
17
- # opts[:assign_username_to] - The String OpenStruct key to which to assign the username
18
- # opts[:auth_file] - The File containing the authentication credentials for secure requests
19
- def initialize(base_url, opts = {})
20
- @base_url = base_url
21
- @identity_search_keys = opts[:identity_search_keys] || ['name']
22
- @assign_to = opts[:assign_to] || 'confluence'
23
- @assign_username_to = opts[:assign_username_to]
24
- @auth_file = opts[:auth_file]
25
- @session_cookie = nil
26
- end
27
-
28
- def crawl(identity)
29
- search = nil
30
- queries = []
31
- data = nil
32
- @identity_search_keys.each do |k|
33
- search = identity.send(k)
34
- next if search.nil?
35
- # lowercase and remove middle names (shouldn't affect usernames)
36
- search = search.downcase.gsub(/^([^ ]+ ?).*?([^ ]+)$/, '\1\2')
37
- # don't search on same string twice
38
- next if queries.include? search
39
- queries << search
40
- cleansed_query = search.gsub(' ', '-')
41
- url = File.join(@base_url, SEARCH_PATH) + '?query=' + URI.encode(search)
42
- data = RestClient.get(url, :cache_key => "confluence/query-#{cleansed_query}.json", :accept => 'application/json')
43
- if data['totalSize'].to_i == 0
44
- #puts "No results, advancing confluence user crawler to next query string for #{search}"
45
- data = nil
46
- #elsif data['totalSize'] > 1
47
- # puts "Too many results, skipping confluence user crawler for #{search}."
48
- # data = nil
49
- else
50
- break
51
- end
52
- end
53
-
54
- if data.nil?
55
- if queries.empty?
56
- puts "No property found to search, skipping confluence user crawler for #{identity.name}"
57
- else
58
- puts "No results, skipping confluence user crawler for #{queries.join ' / '}"
59
- end
60
- return
61
- end
62
-
63
- user = data['result'].first
64
- username = user['username']
65
- url = user['link'].select{|l| l['href'].end_with? "~#{username}" }.first['href']
66
- identity.send(@assign_to + '=', OpenStruct.new({:username => username, :profile_url => url}))
67
- if !@assign_username_to.nil?
68
- identity.send(@assign_username_to + '=', username)
69
- end
70
-
71
- get_session_cookie()
72
- if @session_cookie
73
- profile = RestClient.get(url, :cache_key => "confluence/user-#{username}.html", :cookie => @session_cookie)
74
- if profile.match(/ id="email".*?>(.+?)</)
75
- replace = {' dot ' => '.', ' at ' => '@'}
76
- email = $1.gsub(/ (dot|at) /) {|m| replace[m]}
77
- identity.email = email if identity.email.nil?
78
- identity.emails ||= []
79
- identity.emails |= [identity.email, email]
80
- end
81
- end
82
-
83
- end
84
-
85
- def get_session_cookie()
86
- if @session_cookie.nil?
87
- @session_cookie = false
88
- credentials = nil
89
- if !@auth_file.nil?
90
- if File.exist? @auth_file
91
- credentials = File.read(@auth_file)
92
- elsif Pathname.new(@auth_file).relative? and File.exist? File.join(ENV['HOME'], @auth_file)
93
- credentials = File.read(File.join(ENV['HOME'], @auth_file))
94
- end
95
- end
96
- if !credentials.nil?
97
- url = @base_url.gsub(/^(https?:\/\/)/, '\1' + credentials.chomp + '@') + SESSION_PATH
98
- response = RestClient.head(url)
99
- @session_cookie = response.headers[:set_cookie].first.split(';').first
100
- end
101
- end
102
- end
103
- end
104
- end
105
- end
106
- end
107
- end