doc_repo 0.0.1 → 0.0.2

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: 30dd0cd755d3202ed2e493d13e43283ad50be7ae
4
- data.tar.gz: d87c1f901a3e3a63f165b8211b0e7049a48ea9be
3
+ metadata.gz: fc7d8c08c2b6224d86b67f6d1a3fbaa7eeba0c9d
4
+ data.tar.gz: b6d49db3309f95fe6dc30d97b2ae45dc02522242
5
5
  SHA512:
6
- metadata.gz: 18271a91e38f64eedfe8823d23fc0106953dc7e7c8f2ecb48c8f41dd54161fe46aaf164e09101c5486ad9fb8ae2a8f5a7bb2fa4ff85127d562a15eb8e0d46c97
7
- data.tar.gz: 9e34106363f55e04f7a8e9371b08bc2b18f7862a07b77db118986707592eacd9f0dbf5b8e4328ba11ab06cdcd5af4415c165f4e008ed2a23ed6860fbafb8a25d
6
+ metadata.gz: 19488fa0c31b900f1f679c309c9921627fa0a9963a312c2657323c5938ae425328701ebcdda02382c234f69c859a88c44c1c4bf852617247bf4d07141739a35f
7
+ data.tar.gz: aec5d27ab0a945616e4d08fd02ffcaca3c75e94da608dd20b0710d6589166125a769208e68301c9672eb39044744a3be27b62df055162371b4dd441e667c6484
data/.gitignore CHANGED
@@ -7,8 +7,14 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
- *.bundle
11
10
  *.so
12
11
  *.o
13
12
  *.a
14
13
  mkmf.log
14
+
15
+ # Ignore development related binstubs
16
+ /bin/
17
+
18
+ # Ignore bundler related files
19
+ /bundle/
20
+ *.bundle
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ sudo: false
3
+ bundler_args: --binstubs --standalone --without documentation debug
4
+ script: bin/rspec
5
+ rvm:
6
+ - 2.0
7
+ - 2.1
8
+ - ruby-head
9
+ - rbx-2
10
+ matrix:
11
+ allow_failures:
12
+ - rvm: ruby-head
13
+ - rvm: rbx-2
14
+ fast_finish: true
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in doc_repo.gemspec
4
4
  gemspec
5
+
6
+ group :debug do
7
+ gem "pry-nav"
8
+ gem "travis-lint", require: false
9
+ end
data/README.md CHANGED
@@ -43,7 +43,8 @@ Create a controller to render the documentation pages. In Rails you might use so
43
43
  ```ruby
44
44
  class DocsController < ApplicationController
45
45
  def index
46
- # If you don't want to store the index view in the app, just redirect to one of the documentation pages:
46
+ # If you don't want to store the index view in the app, just redirect to
47
+ # one of the documentation pages:
47
48
  redirect_to doc_path('index')
48
49
  end
49
50
 
@@ -9,21 +9,22 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Christopher Sexton"]
10
10
  spec.email = ["github@codeography.com"]
11
11
  spec.summary = "Doc Repo: Load in app documentation via an external Github repo"
12
- spec.description = ""
13
- spec.homepage = ""
12
+ spec.description = "Doc Repo: Load in app documentation via an external Github repo"
13
+ spec.homepage = "https://github.com/RadiusNetworks/doc_repo"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.executables = %w[ ]
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rouge", "~> 1.6"
22
- spec.add_dependency "redcarpet", "~> 3.1"
21
+ spec.required_ruby_version = '~> 2.0'
22
+
23
+ spec.add_dependency "rouge", "~> 1.8"
24
+ spec.add_dependency "redcarpet", "~> 3.2"
23
25
 
24
26
  spec.add_development_dependency "bundler", "~> 1.6"
25
27
  spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "webmock", "~> 1.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.0"
28
- spec.add_development_dependency "pry"
29
+ spec.add_development_dependency "webmock", "~> 1.0"
29
30
  end
@@ -1,13 +1,12 @@
1
1
  require "doc_repo/version"
2
2
 
3
- require "doc_repo/configuration"
4
- require "doc_repo/github_file"
5
- require "doc_repo/page"
6
- require "doc_repo/repository"
7
- require "doc_repo/response"
8
- require "doc_repo/converters/markdown_parser"
9
-
10
3
  module DocRepo
4
+ autoload :Configuration, "doc_repo/configuration"
5
+ autoload :GithubFile, "doc_repo/github_file"
6
+ autoload :Page, "doc_repo/page"
7
+ autoload :Repository, "doc_repo/repository"
8
+ autoload :Response, "doc_repo/response"
9
+
11
10
  BadPageFormat = Class.new(StandardError)
12
11
  NotFound = Class.new(StandardError)
13
12
 
@@ -3,8 +3,9 @@ module DocRepo
3
3
  attr_accessor :org, :repo, :branch
4
4
 
5
5
  def initialize
6
- @org = "RadiusNetworks"
7
- @branch = "master"
6
+ @org = ENV['DOC_REPO_ORG']
7
+ @repo = ENV['DOC_REPO_REPONAME']
8
+ @branch = ENV['DOC_REPO_BRANCH'] || "master"
8
9
  end
9
10
  end
10
11
  end
@@ -25,11 +25,12 @@ module DocRepo
25
25
  "<div class=\"highlight\">#{add_code_tags(code, lang)}</div>"
26
26
  end
27
27
 
28
- protected
28
+ protected
29
29
 
30
- def rouge_formatter(opts = {})
31
- Rouge::Formatters::HTML.new(opts.merge(wrap: false))
30
+ def rouge_formatter(lexer)
31
+ Rouge::Formatters::HTML.new(wrap: false)
32
32
  end
33
+
33
34
  end
34
35
 
35
36
  def initialize(config)
@@ -51,8 +52,8 @@ module DocRepo
51
52
  markdown.render(content)
52
53
  end
53
54
 
54
- private
55
55
  attr_reader :config, :extensions, :renderer
56
+ private :config, :extensions, :renderer
56
57
  end
57
58
  end
58
59
  end
@@ -20,7 +20,7 @@ module DocRepo
20
20
 
21
21
  def read_remote_file
22
22
  open(url(file), headers).read
23
- rescue OpenURI::HTTPError => e
23
+ rescue OpenURI::HTTPError => _ignore
24
24
  raise DocRepo::NotFound
25
25
  end
26
26
 
@@ -1,3 +1,5 @@
1
+ require "doc_repo/converters/markdown_parser"
2
+
1
3
  module DocRepo
2
4
  class Page
3
5
  attr_accessor :body
@@ -14,11 +14,11 @@ module DocRepo
14
14
  end
15
15
 
16
16
  def html
17
- yield *params if type == :html
17
+ yield(*params) if type == :html
18
18
  end
19
19
 
20
20
  def redirect
21
- yield *params if type == :redirect
21
+ yield(*params) if type == :redirect
22
22
  end
23
23
  end
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module DocRepo
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,55 @@
1
+ require 'support/using_env'
2
+
3
+ RSpec.describe DocRepo::Configuration do
4
+
5
+ context "without environment variables configured" do
6
+ subject(:default_config) { DocRepo::Configuration.new }
7
+
8
+ around do |example|
9
+ env = {
10
+ 'DOC_REPO_ORG' => nil,
11
+ 'DOC_REPO_REPONAME' => nil,
12
+ 'DOC_REPO_BRANCH' => nil,
13
+ }
14
+ using_env(env, &example)
15
+ end
16
+
17
+ it "has no org" do
18
+ expect(default_config.org).to be nil
19
+ end
20
+
21
+ it "has no repo" do
22
+ expect(default_config.repo).to be nil
23
+ end
24
+
25
+ it "use the 'master' branch" do
26
+ expect(default_config.branch).to eq 'master'
27
+ end
28
+ end
29
+
30
+ context "with environment variables configured" do
31
+ subject(:default_env_config) { DocRepo::Configuration.new }
32
+
33
+ around do |example|
34
+ env = {
35
+ 'DOC_REPO_ORG' => 'the-silence',
36
+ 'DOC_REPO_REPONAME' => 'falls',
37
+ 'DOC_REPO_BRANCH' => 'ask_the_question',
38
+ }
39
+ using_env(env, &example)
40
+ end
41
+
42
+ it "uses DOC_REPO_ORG for the default org" do
43
+ expect(default_env_config.org).to eq 'the-silence'
44
+ end
45
+
46
+ it "uses DOC_REPO_REPONAME for the default repo" do
47
+ expect(default_env_config.repo).to eq 'falls'
48
+ end
49
+
50
+ it "uses DOC_REPO_BRANCH for the default branch" do
51
+ expect(default_env_config.branch).to eq 'ask_the_question'
52
+ end
53
+ end
54
+
55
+ end
@@ -1,11 +1,12 @@
1
- require 'spec_helper'
1
+ require 'support/string'
2
+ require 'webmock/rspec'
2
3
 
3
4
  RSpec.describe DocRepo::Page do
4
- def tempfile(body)
5
- Tempfile.open("spec") do |f|
6
- f.puts body
7
- f.rewind
8
- yield f
5
+ before do
6
+ DocRepo.configure do |c|
7
+ c.org = 'RadiusNetworks'
8
+ c.repo = 'doc_spec'
9
+ c.branch = 'master'
9
10
  end
10
11
  end
11
12
 
@@ -19,7 +20,6 @@ RSpec.describe DocRepo::Page do
19
20
  stub_request(:get, "https://api.github.com/repos/RadiusNetworks/doc_spec/contents/docs/page.md?ref=master")
20
21
  .to_return(body: body)
21
22
 
22
-
23
23
  page = DocRepo::Page.new("page")
24
24
  expect(page.to_html).to eq <<-END.strip_heredoc
25
25
  <h1 id=\"a-heading\">A heading</h1>
@@ -3,17 +3,17 @@ require 'spec_helper'
3
3
  RSpec.describe DocRepo::Page do
4
4
  it "calls html block with 1 param" do
5
5
  resp = DocRepo::Response.html 1
6
- expect { |b| resp.html &b }.to yield_with_args(1)
6
+ expect { |b| resp.html(&b) }.to yield_with_args(1)
7
7
  end
8
8
 
9
9
  it "calls html block with 2 params" do
10
10
  resp = DocRepo::Response.html 1, 2
11
- expect { |b| resp.html &b }.to yield_with_args(1, 2)
11
+ expect { |b| resp.html(&b) }.to yield_with_args(1, 2)
12
12
  end
13
13
 
14
14
  it "calls file block with 1 param" do
15
15
  resp = DocRepo::Response.html "/path/to/file"
16
- expect { |b| resp.html &b }.to yield_with_args("/path/to/file")
16
+ expect { |b| resp.html(&b) }.to yield_with_args("/path/to/file")
17
17
  end
18
18
  end
19
19
 
@@ -1,17 +1,7 @@
1
- require 'webmock/rspec'
2
- require 'pry'
3
- require 'doc_repo'
4
-
5
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
1
+ # This is a very warning riddled gem, load it before we enable warnings
2
+ require 'rouge'
6
3
 
7
4
  RSpec.configure do |config|
8
-
9
- config.before do
10
- DocRepo.configure do |c|
11
- c.org = 'RadiusNetworks'
12
- c.repo = 'doc_spec'
13
- end
14
- end
15
5
  config.expect_with :rspec do |expectations|
16
6
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
17
7
  end
@@ -27,3 +17,6 @@ RSpec.configure do |config|
27
17
  end
28
18
  Kernel.srand config.seed
29
19
  end
20
+
21
+ # Load our lib after warnings are enabled so we can fix them
22
+ require 'doc_repo'
@@ -0,0 +1,26 @@
1
+ module DocRepo
2
+ module RSpec
3
+ module Helpers
4
+
5
+ # By forcing the use of a block, this makes working within the context of
6
+ # a single spec much easier. If this needs to be wrapped around multiple
7
+ # specs, then an appropriate #around(:example) hook may be used.
8
+ def using_env(env_stubs, &lifetime)
9
+ keys_to_delete = env_stubs.keys - ENV.keys
10
+ original_values = env_stubs.each_with_object({}) { |(k, v), env|
11
+ env[k] = ENV[k] if ENV.has_key?(k)
12
+ ENV[k] = v
13
+ }
14
+ lifetime.call
15
+ ensure
16
+ keys_to_delete.each{ |k| ENV.delete(k) }
17
+ original_values.each{ |k, v| ENV[k] = v }
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+
24
+ RSpec.configure do |config|
25
+ config.include DocRepo::RSpec::Helpers
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doc_repo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Sexton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-06 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rouge
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.8'
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: '1.6'
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: redcarpet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.1'
33
+ version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.1'
40
+ version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: webmock
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,20 +81,20 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '3.0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: pry
84
+ name: webmock
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: '1.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
111
- description: ''
96
+ version: '1.0'
97
+ description: 'Doc Repo: Load in app documentation via an external Github repo'
112
98
  email:
113
99
  - github@codeography.com
114
100
  executables: []
@@ -117,6 +103,7 @@ extra_rdoc_files: []
117
103
  files:
118
104
  - ".gitignore"
119
105
  - ".rspec"
106
+ - ".travis.yml"
120
107
  - Gemfile
121
108
  - LICENSE.txt
122
109
  - README.md
@@ -130,13 +117,15 @@ files:
130
117
  - lib/doc_repo/repository.rb
131
118
  - lib/doc_repo/response.rb
132
119
  - lib/doc_repo/version.rb
120
+ - spec/doc_repo/configuration_spec.rb
133
121
  - spec/doc_repo/page_spec.rb
134
122
  - spec/doc_repo/repository_spec.rb
135
123
  - spec/doc_repo/response_spec.rb
136
124
  - spec/doc_repo_spec.rb
137
125
  - spec/spec_helper.rb
138
126
  - spec/support/string.rb
139
- homepage: ''
127
+ - spec/support/using_env.rb
128
+ homepage: https://github.com/RadiusNetworks/doc_repo
140
129
  licenses:
141
130
  - MIT
142
131
  metadata: {}
@@ -146,9 +135,9 @@ require_paths:
146
135
  - lib
147
136
  required_ruby_version: !ruby/object:Gem::Requirement
148
137
  requirements:
149
- - - ">="
138
+ - - "~>"
150
139
  - !ruby/object:Gem::Version
151
- version: '0'
140
+ version: '2.0'
152
141
  required_rubygems_version: !ruby/object:Gem::Requirement
153
142
  requirements:
154
143
  - - ">="
@@ -156,14 +145,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
145
  version: '0'
157
146
  requirements: []
158
147
  rubyforge_project:
159
- rubygems_version: 2.2.2
148
+ rubygems_version: 2.4.5
160
149
  signing_key:
161
150
  specification_version: 4
162
151
  summary: 'Doc Repo: Load in app documentation via an external Github repo'
163
152
  test_files:
153
+ - spec/doc_repo/configuration_spec.rb
164
154
  - spec/doc_repo/page_spec.rb
165
155
  - spec/doc_repo/repository_spec.rb
166
156
  - spec/doc_repo/response_spec.rb
167
157
  - spec/doc_repo_spec.rb
168
158
  - spec/spec_helper.rb
169
159
  - spec/support/string.rb
160
+ - spec/support/using_env.rb