zenpush 0.1.0 → 0.1.1

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zenpush (0.1.0)
4
+ zenpush (0.1.1)
5
5
  awesome_print (~> 1.0.0)
6
6
  boson (~> 1.0)
7
7
  httparty (~> 0.8.0)
@@ -18,7 +18,7 @@ GEM
18
18
  multi_xml
19
19
  json_pure (1.5.4)
20
20
  spruz (~> 0.2.8)
21
- multi_json (1.1.0)
21
+ multi_json (1.4.0)
22
22
  multi_xml (0.4.1)
23
23
  rake (0.9.2.2)
24
24
  redcarpet (2.1.0)
data/README.markdown CHANGED
@@ -21,15 +21,19 @@ Try:
21
21
 
22
22
  ## Configuration
23
23
 
24
- Create a `zenpush.yml` file in your home directory. Here is an example:
24
+ Create a `.zenpush.yml` file in your home directory. Here is an example:
25
25
 
26
26
  ---
27
- uri: https://myproduct.zendesk.com
28
- user: email@address.com/token
29
- password: LoDsQlEtBXSd8clW87DgWi0VNFod3U9xQggzwJEH
27
+ :uri: https://myproduct.zendesk.com
28
+ :user: email@address.com/token
29
+ :password: LoDsQlEtBXSd8clW87DgWi0VNFod3U9xQggzwJEH
30
30
 
31
31
  You can find your API token at https://myproduct.zendesk.com/settings/api.
32
32
 
33
+ Additional configuration (optional):
34
+
35
+ :filenames_use_dashes_instead_of_spaces: false
36
+
33
37
  ## Usage
34
38
 
35
39
  ### Listing categories
@@ -43,7 +47,6 @@ You can find your API token at https://myproduct.zendesk.com/settings/api.
43
47
  ### Listing entries in a forum
44
48
 
45
49
  $ zp entries -f <forum_id>
46
- $ zp entries -F <forum_name>
47
50
 
48
51
  ### Creating/updating an entry
49
52
 
@@ -70,4 +73,4 @@ The gem will automatically discover the category and forum name of a given entry
70
73
 
71
74
  ## Contributors
72
75
 
73
- * @nfo
76
+ * @nfo
@@ -52,4 +52,4 @@ module ZenPush
52
52
  end
53
53
  end
54
54
  end
55
- end
55
+ end
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module ZenPush
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
@@ -7,19 +7,34 @@ module ZenPush
7
7
  class Zendesk
8
8
  include HTTParty
9
9
 
10
+ attr_accessor :options
11
+
10
12
  headers 'Content-Type' => 'application/json'
11
13
  # debug_output
12
14
 
13
- def initialize(b = nil, u = nil, p = nil)
14
- if b.nil? || u.nil? || p.nil?
15
- creds = YAML.load_file(File.join(ENV['HOME'], '.zenpush.yml'))
16
- b ||= creds['uri']
17
- u ||= creds['user']
18
- p ||= creds['password']
15
+ def initialize(options = {})
16
+
17
+ default_options = {
18
+ :uri => nil,
19
+ :user => nil,
20
+ :password => nil,
21
+ :filenames_use_dashes_instead_of_spaces => false,
22
+ }
23
+
24
+ zenpush_yml = File.join(ENV['HOME'], '.zenpush.yml')
25
+
26
+ if File.readable?(zenpush_yml)
27
+ zenpush_yml_opts = YAML.load_file(zenpush_yml)
28
+ default_options.merge!(zenpush_yml_opts)
19
29
  end
20
30
 
21
- self.class.base_uri b + '/api/v1'
22
- self.class.basic_auth u, p
31
+ opts = default_options.merge!(options)
32
+ opts.each_pair { |k,v| raise "#{k} is nil" if v.nil? }
33
+
34
+ @options = opts
35
+
36
+ self.class.base_uri opts[:uri] + '/api/v1'
37
+ self.class.basic_auth opts[:user], opts[:password]
23
38
  end
24
39
 
25
40
  def get(uri, options = {})
@@ -108,4 +123,4 @@ module ZenPush
108
123
  end
109
124
 
110
125
  end
111
- end
126
+ end
data/lib/zenpush.rb CHANGED
@@ -11,13 +11,20 @@ module ZenPush
11
11
  @z ||= ZenPush::Zendesk.new
12
12
  end
13
13
 
14
- #
15
14
  def file_to_category_forum_entry(file)
16
15
  absolute_path = File.realpath(file)
16
+ file_extension = File.extname(file)
17
+
17
18
  parts = absolute_path.split('/')
18
- entry_name = File.basename(absolute_path, '.md') # TODO support .markdown and make it case insensitive
19
+
20
+ if ZenPush.z.options[:filenames_use_dashes_instead_of_spaces]
21
+ parts.each { |el| el.gsub!(/-/, ' ') }
22
+ end
23
+
24
+ entry_name = File.basename(parts[-1], file_extension)
19
25
  forum_name = parts[-2]
20
26
  category_name = parts[-3]
27
+
21
28
  return category_name, forum_name, entry_name
22
29
  end
23
- end
30
+ end
metadata CHANGED
@@ -1,82 +1,112 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zenpush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
4
  prerelease:
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nicolas Fouché
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-08 00:00:00.000000000 Z
12
+ date: 2012-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: boson
16
- requirement: &70100188010080 !ruby/object:Gem::Requirement
15
+ type: :runtime
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '1.0'
22
- type: :runtime
22
+ name: boson
23
23
  prerelease: false
24
- version_requirements: *70100188010080
24
+ requirement: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
25
30
  - !ruby/object:Gem::Dependency
26
- name: httparty
27
- requirement: &70100188008860 !ruby/object:Gem::Requirement
31
+ type: :runtime
32
+ version_requirements: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
31
36
  - !ruby/object:Gem::Version
32
37
  version: 0.8.0
33
- type: :runtime
38
+ name: httparty
34
39
  prerelease: false
35
- version_requirements: *70100188008860
40
+ requirement: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.8.0
36
46
  - !ruby/object:Gem::Dependency
37
- name: redcarpet
38
- requirement: &70100187769000 !ruby/object:Gem::Requirement
47
+ type: :runtime
48
+ version_requirements: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
43
53
  version: 2.1.0
44
- type: :runtime
54
+ name: redcarpet
45
55
  prerelease: false
46
- version_requirements: *70100187769000
56
+ requirement: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.0
47
62
  - !ruby/object:Gem::Dependency
48
- name: awesome_print
49
- requirement: &70100187768300 !ruby/object:Gem::Requirement
63
+ type: :runtime
64
+ version_requirements: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
53
68
  - !ruby/object:Gem::Version
54
69
  version: 1.0.0
55
- type: :runtime
70
+ name: awesome_print
56
71
  prerelease: false
57
- version_requirements: *70100187768300
72
+ requirement: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
58
78
  - !ruby/object:Gem::Dependency
59
- name: json_pure
60
- requirement: &70100187767540 !ruby/object:Gem::Requirement
79
+ type: :runtime
80
+ version_requirements: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
64
84
  - !ruby/object:Gem::Version
65
85
  version: 1.5.1
66
- type: :runtime
86
+ name: json_pure
67
87
  prerelease: false
68
- version_requirements: *70100187767540
88
+ requirement: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.5.1
69
94
  - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: &70100187766900 !ruby/object:Gem::Requirement
95
+ type: :development
96
+ version_requirements: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
75
100
  - !ruby/object:Gem::Version
76
101
  version: '0'
77
- type: :development
102
+ name: rake
78
103
  prerelease: false
79
- version_requirements: *70100187766900
104
+ requirement: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  description: Push your markdown files to your Zendesk knowledge base
81
111
  email:
82
112
  - nicolas.fouche@cleverscale.com
@@ -113,22 +143,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
143
  requirements:
114
144
  - - ! '>='
115
145
  - !ruby/object:Gem::Version
116
- version: '0'
117
146
  segments:
118
147
  - 0
119
- hash: -3134286403274189971
148
+ hash: 1242870539657681757
149
+ version: '0'
120
150
  required_rubygems_version: !ruby/object:Gem::Requirement
121
151
  none: false
122
152
  requirements:
123
153
  - - ! '>='
124
154
  - !ruby/object:Gem::Version
125
- version: '0'
126
155
  segments:
127
156
  - 0
128
- hash: -3134286403274189971
157
+ hash: 1242870539657681757
158
+ version: '0'
129
159
  requirements: []
130
160
  rubyforge_project:
131
- rubygems_version: 1.8.17
161
+ rubygems_version: 1.8.23
132
162
  signing_key:
133
163
  specification_version: 3
134
164
  summary: Push your markdown files to your Zendesk knowledge base