pinpress 1.2.2 → 1.2.3
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.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/Gemfile +0 -2
- data/HISTORY.md +6 -1
- data/README.md +74 -30
- data/Rakefile +1 -1
- data/bin/pinpress +4 -4
- data/features/1.ui.feature +1 -1
- data/features/2.initialization.feature +19 -43
- data/features/3.templates.feature +9 -37
- data/features/step_definitions/pinpress_steps.rb +30 -5
- data/features/support/env.rb +1 -3
- data/lib/pinpress.rb +4 -5
- data/lib/pinpress/constants.rb +2 -2
- data/pinpress.gemspec +2 -4
- data/{res → support}/preference_prompts.yaml +0 -0
- data/{test/test_files/configuration.yaml → support/sample_config.yaml} +3 -5
- data/test/test_helper.rb +0 -1
- metadata +8 -25
- data/features/4.pins.feature +0 -19
- data/res/sample_config.yaml +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abf02d81f7239b623f70a4f4e047a765fb6603f2
|
4
|
+
data.tar.gz: 7c79e907be640f042376328614bee97aac71e3fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c14f1e6b344374440bb047e12e5f325da73f86fd7434c9e05c0bbd8b54d2bfa67f2aa82f873107ce224d0281b84712b29d68c4623685feb1a6b8e643a57fcd58
|
7
|
+
data.tar.gz: 3461ad458562a329b1234641d5b567c624367aacc704c7c13774f12aab85dcc930a337b2ed81cd545a213271c15ebfed029c19e035fa935e31c2e58d03d3a854
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/HISTORY.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# 1.2.3 (2014-05-04)
|
2
|
+
|
3
|
+
* Fixed a bug where error management failed
|
4
|
+
* Updated documentation
|
5
|
+
|
1
6
|
# 1.2.2 (2014-04-29)
|
2
7
|
|
3
8
|
* Fixed a bug in which the configuration wouldn't update as expected
|
@@ -37,4 +42,4 @@
|
|
37
42
|
|
38
43
|
# 1.0.0 (2014-04-16)
|
39
44
|
|
40
|
-
* Initial release
|
45
|
+
* Initial release
|
data/README.md
CHANGED
@@ -1,18 +1,26 @@
|
|
1
1
|
PinPress
|
2
2
|
========
|
3
|
+
[](https://travis-ci.org/bachya/pinpress)
|
3
4
|
[](http://badge.fury.io/rb/pinpress)
|
4
5
|
|
5
|
-
PinPress is a simple CLI to create templates (HTML, Markdown, or otherwise) of
|
6
|
+
PinPress is a simple CLI to create templates (HTML, Markdown, or otherwise) of
|
7
|
+
Pinboard pins and tags.
|
6
8
|
|
7
9
|
# Why?
|
8
10
|
|
9
|
-
Every week, I create a [link mash for my blog](#link-mash-config-file); this
|
11
|
+
Every week, I create a [link mash for my blog](#link-mash-config-file); this
|
12
|
+
link mash consists of URLs that I find interesting and want to share with my
|
13
|
+
readers. Previously, I would save those interesting URLs to an Evernote note
|
14
|
+
and, every week, manually create my link mash for use in Wordpress. `<barf/>`
|
10
15
|
|
11
|
-
When I began using [Pinboard](http://pinboard.in "Pinboard") to save
|
16
|
+
When I began using [Pinboard](http://pinboard.in "Pinboard") to save
|
17
|
+
interesting links, I knew I needed a better method. This tool is the result:
|
18
|
+
**Pin** board + Word **press**.
|
12
19
|
|
13
20
|
# Prerequisites
|
14
21
|
|
15
|
-
In addition to Git (which, given you being on this site, I'll assume you have),
|
22
|
+
In addition to Git (which, given you being on this site, I'll assume you have),
|
23
|
+
Ruby (v. 1.9.3 or greater) is needed.
|
16
24
|
|
17
25
|
# Installation
|
18
26
|
|
@@ -48,7 +56,8 @@ COMMANDS
|
|
48
56
|
templates - Work with templates for pin output
|
49
57
|
```
|
50
58
|
|
51
|
-
Note that each command's options can be revealed by adding the `--help` switch
|
59
|
+
Note that each command's options can be revealed by adding the `--help` switch
|
60
|
+
after the command. For example:
|
52
61
|
|
53
62
|
```bash
|
54
63
|
$ pinpress pins --help
|
@@ -71,7 +80,8 @@ COMMAND OPTIONS
|
|
71
80
|
$ pinpress init
|
72
81
|
```
|
73
82
|
|
74
|
-
Initialization will prompt you to enter your Pinboard API token. Once, entered,
|
83
|
+
Initialization will prompt you to enter your Pinboard API token. Once, entered,
|
84
|
+
this (and other pertinent data) will be stored in `~/.pinpress`.
|
75
85
|
|
76
86
|
# Getting Pins
|
77
87
|
|
@@ -79,9 +89,11 @@ Initialization will prompt you to enter your Pinboard API token. Once, entered,
|
|
79
89
|
$ pinpress pins
|
80
90
|
```
|
81
91
|
|
82
|
-
This simple command will return all pins from the user's account and output them
|
92
|
+
This simple command will return all pins from the user's account and output them
|
93
|
+
based on the [Pin Template](#pin-templates "Pin Templates") provided.
|
83
94
|
|
84
|
-
Pinpress also provides some flags that allow a user to define specific pins to
|
95
|
+
Pinpress also provides some flags that allow a user to define specific pins to
|
96
|
+
grab:
|
85
97
|
|
86
98
|
* `-s`: the start date to use (uses [Chronic](https://github.com/mojombo/chronic "Chronic"), which allows dates like "last Tuesday")
|
87
99
|
* `-e`: the end date to use (also uses [Chronic](https://github.com/mojombo/chronic "Chronic"))
|
@@ -126,7 +138,9 @@ $ pinpress pins -t "ruby,cli"
|
|
126
138
|
$ pinpress pins last
|
127
139
|
```
|
128
140
|
|
129
|
-
...will get all the pins created since you last ran that command (e.g., if you'd
|
141
|
+
...will get all the pins created since you last ran that command (e.g., if you'd
|
142
|
+
last run `pinpress pins` on 2014-01-01, this command would return all pins
|
143
|
+
created from 2014-01-02 onward).
|
130
144
|
|
131
145
|
# Getting Tags
|
132
146
|
|
@@ -136,9 +150,11 @@ Pinpress can also work with tags in a Pinboard account:
|
|
136
150
|
$ pinpress tags
|
137
151
|
```
|
138
152
|
|
139
|
-
This simple command will return all tags from the user's account and output them
|
153
|
+
This simple command will return all tags from the user's account and output them
|
154
|
+
based on the [Tag Template](#tag-templates "Tag Templates") provided.
|
140
155
|
|
141
|
-
Pinpress also provides some flags that allow a user to define specific tags to
|
156
|
+
Pinpress also provides some flags that allow a user to define specific tags to
|
157
|
+
grab:
|
142
158
|
|
143
159
|
* `-s`: the start date to use (uses [Chronic](https://github.com/mojombo/chronic "Chronic"), which allows dates like "last Tuesday")
|
144
160
|
* `-e`: the end date to use (also uses [Chronic](https://github.com/mojombo/chronic "Chronic"))
|
@@ -150,7 +166,9 @@ Pinpress also provides some flags that allow a user to define specific tags to g
|
|
150
166
|
$ pinpress tags -s 2014-01-01
|
151
167
|
```
|
152
168
|
|
153
|
-
...returns all tags used from January 1, 2014 to the current day. Note that for
|
169
|
+
...returns all tags used from January 1, 2014 to the current day. Note that for
|
170
|
+
each tag returned, the data includes both the tag name and the number of times
|
171
|
+
it was used.
|
154
172
|
|
155
173
|
## Getting Tags Until a Date
|
156
174
|
|
@@ -172,7 +190,8 @@ $ pinpress tags -s 2014-01-01 -e 2014-01-31
|
|
172
190
|
$ pinpress tags -t 'tag1,tag2' -s 2014-01-01
|
173
191
|
```
|
174
192
|
|
175
|
-
...returns all tags that have been used *alongside* `tag1` and `tag2`, starting
|
193
|
+
...returns all tags that have been used *alongside* `tag1` and `tag2`, starting
|
194
|
+
on Jarnuary 1, 2014.
|
176
195
|
|
177
196
|
## Getting Tags Used Since Last Run
|
178
197
|
|
@@ -180,11 +199,15 @@ $ pinpress tags -t 'tag1,tag2' -s 2014-01-01
|
|
180
199
|
$ pinpress tags last
|
181
200
|
```
|
182
201
|
|
183
|
-
...will get all the tags used since you last ran the command (e.g., if you'd
|
202
|
+
...will get all the tags used since you last ran the command (e.g., if you'd
|
203
|
+
last run `pinpress tags` on 2014-01-01, this command would return all tags used
|
204
|
+
from 2014-01-02 onward).
|
184
205
|
|
185
206
|
# Templates
|
186
207
|
|
187
|
-
Templates are used to define how data should be output to the terminal and are
|
208
|
+
Templates are used to define how data should be output to the terminal and are
|
209
|
+
defined in `~/.pinpress`. They come in two forms: **Pin Templates** and **Tag
|
210
|
+
Templates**.
|
188
211
|
|
189
212
|
## Pin Templates
|
190
213
|
|
@@ -192,7 +215,8 @@ Pin Templates define how a pin from Pinboard should be output.
|
|
192
215
|
|
193
216
|
### Schema
|
194
217
|
|
195
|
-
Pin Templates are placed under the `pin_templates` section of the `~/.pinpress`
|
218
|
+
Pin Templates are placed under the `pin_templates` section of the `~/.pinpress`
|
219
|
+
config file -- as an example:
|
196
220
|
|
197
221
|
```yaml
|
198
222
|
pin_templates:
|
@@ -216,7 +240,8 @@ A Pin Template can have several different sub-keys:
|
|
216
240
|
|
217
241
|
### Available Tokens
|
218
242
|
|
219
|
-
Additionally, a Pin Template can make use of several different tokens that are
|
243
|
+
Additionally, a Pin Template can make use of several different tokens that are
|
244
|
+
filled by a pin's values:
|
220
245
|
|
221
246
|
* `<%= href %>`: the URL of the pin
|
222
247
|
* `<%= description %>`: the description of the pin
|
@@ -284,7 +309,8 @@ $ pinpress pins pinpress_default
|
|
284
309
|
</ul>
|
285
310
|
```
|
286
311
|
|
287
|
-
(Note that the nice indenting is for Github's sake; the actual output will
|
312
|
+
(Note that the nice indenting is for Github's sake; the actual output will
|
313
|
+
conform to the formatting in `~/.pinpress`.)
|
288
314
|
|
289
315
|
## Tag Templates
|
290
316
|
|
@@ -312,7 +338,8 @@ A Tag Template makes use of the same sub-keys as Pin Template:
|
|
312
338
|
Additionally, like a Pin Template, a Tag Template can make use of a few tokens:
|
313
339
|
|
314
340
|
* `<%= tag %>`: the name of the tag
|
315
|
-
* `<%= count %>`: the number of times the tag has been used (depending on the
|
341
|
+
* `<%= count %>`: the number of times the tag has been used (depending on the
|
342
|
+
range used)
|
316
343
|
|
317
344
|
### Usage
|
318
345
|
|
@@ -357,7 +384,8 @@ link-mash (15),app (2),ios (3),productivity (1),launch-center-pro (1),drafts (2)
|
|
357
384
|
|
358
385
|
# Other Configuration Options
|
359
386
|
|
360
|
-
You can place special keys in the `pinpress` section of `~/.pinpress` to
|
387
|
+
You can place special keys in the `pinpress` section of `~/.pinpress` to
|
388
|
+
automate some actions:
|
361
389
|
|
362
390
|
```yaml
|
363
391
|
pinpress:
|
@@ -388,7 +416,8 @@ Do note:
|
|
388
416
|
|
389
417
|
# Link Mash Config File
|
390
418
|
|
391
|
-
For your reference, here's my `~/.pinpress` (which is used to generate a
|
419
|
+
For your reference, here's my `~/.pinpress` (which is used to generate a
|
420
|
+
[Link Mash on my blog](http://www.bachyaproductions.com/tag/link-mash/ "Bachya Productions Link Mash Archives")):
|
392
421
|
|
393
422
|
```yaml
|
394
423
|
---
|
@@ -400,7 +429,7 @@ pinpress:
|
|
400
429
|
ignored_tags: ['buffer']
|
401
430
|
log_level: WARN
|
402
431
|
version: 1.1.1
|
403
|
-
api_token: bachya:
|
432
|
+
api_token: bachya:1234567890987654321
|
404
433
|
last_pins_run: 2014-04-29
|
405
434
|
last_tags_run: 2014-04-29
|
406
435
|
pin_templates:
|
@@ -434,13 +463,16 @@ tag_templates:
|
|
434
463
|
|
435
464
|
# Known Issues & Future Releases
|
436
465
|
|
437
|
-
Check out the Pinpress roadmap via the
|
466
|
+
Check out the Pinpress roadmap via the
|
467
|
+
[Trello Board](https://trello.com/b/lmuC8TT0/pinpress "Pinpress Trello Board").
|
438
468
|
|
439
|
-
Bugs, issues, and enhancement requests can be submitted on the
|
469
|
+
Bugs, issues, and enhancement requests can be submitted on the
|
470
|
+
[Issues Page](https://github.com/bachya/Pinpress/issues "Open Items").
|
440
471
|
|
441
472
|
# Bugs and Feature Requests
|
442
473
|
|
443
|
-
To report bugs with or suggest features/changes for PinPress, please use the
|
474
|
+
To report bugs with or suggest features/changes for PinPress, please use the
|
475
|
+
[Issues Page](http://github.com/bachya/PinPress/issues).
|
444
476
|
|
445
477
|
Contributions are welcome and encouraged. To contribute:
|
446
478
|
|
@@ -456,8 +488,20 @@ Contributions are welcome and encouraged. To contribute:
|
|
456
488
|
|
457
489
|
Copyright © 2014 Aaron Bach <bachya1208@gmail.com>
|
458
490
|
|
459
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
491
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
492
|
+
this software and associated documentation files (the 'Software'), to deal in
|
493
|
+
the Software without restriction, including without limitation the rights to
|
494
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
495
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
496
|
+
subject to the following conditions:
|
497
|
+
|
498
|
+
The above copyright notice and this permission notice shall be included in all
|
499
|
+
copies or substantial portions of the Software.
|
500
|
+
|
501
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
502
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
503
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
504
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
505
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
506
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
507
|
+
SOFTWARE.
|
data/Rakefile
CHANGED
data/bin/pinpress
CHANGED
@@ -67,7 +67,7 @@ pre do |global, command, options, args|
|
|
67
67
|
|
68
68
|
# Compare the two versions and, if needed, update.
|
69
69
|
configuration.compare_version do |c, l|
|
70
|
-
messenger.debug
|
70
|
+
messenger.debug("Upgrading from #{ c } to #{ l }")
|
71
71
|
PinPress.update_config_file
|
72
72
|
exit!(0)
|
73
73
|
end
|
@@ -85,9 +85,9 @@ post do |global, command, options, args|
|
|
85
85
|
end
|
86
86
|
|
87
87
|
on_error do |exception|
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
messenger.error(exception.to_s)
|
89
|
+
exit!(1)
|
90
|
+
true
|
91
91
|
end
|
92
92
|
|
93
93
|
# ======================================================
|
data/features/1.ui.feature
CHANGED
@@ -10,60 +10,36 @@ Feature: Initialization
|
|
10
10
|
And I type ""
|
11
11
|
And I type "bachya:12345"
|
12
12
|
Then the exit status should be 0
|
13
|
-
And
|
14
|
-
| /tmp/pp/.pinpress |
|
13
|
+
And a valid configuration file should exist at "/tmp/pp/.pinpress"
|
15
14
|
|
16
15
|
Scenario: Reinitialization (refuse)
|
17
|
-
Given
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
config_location: "/tmp/pp/.pinpress"
|
22
|
-
default_pin_template: pinpress_default
|
23
|
-
default_tag_template: pinpress_default
|
24
|
-
log_level: WARN
|
25
|
-
version: 1.1.1
|
26
|
-
api_token: bachya:12345
|
27
|
-
"""
|
28
|
-
When I run `pinpress init` interactively
|
29
|
-
And I type ""
|
30
|
-
Then the exit status should be 0
|
16
|
+
Given an existing current configuration file located at "/tmp/pp/.pinpress"
|
17
|
+
When I run `pinpress init` interactively
|
18
|
+
And I type ""
|
19
|
+
Then the exit status should be 0
|
31
20
|
|
32
21
|
Scenario: Reinitialization (accept)
|
33
|
-
Given
|
34
|
-
"""
|
35
|
-
---
|
36
|
-
pinpress:
|
37
|
-
config_location: "/tmp/pp/.pinpress"
|
38
|
-
default_pin_template: pinpress_default
|
39
|
-
default_tag_template: pinpress_default
|
40
|
-
log_level: WARN
|
41
|
-
version: 1.1.1
|
42
|
-
api_token: bachya:12345
|
43
|
-
"""
|
22
|
+
Given an existing current configuration file located at "/tmp/pp/.pinpress"
|
44
23
|
When I run `pinpress init` interactively
|
45
24
|
And I type "y"
|
46
25
|
And I type ""
|
47
26
|
And I type "bachya:12345"
|
48
27
|
Then the exit status should be 0
|
49
|
-
And
|
50
|
-
| /tmp/pp/.pinpress |
|
28
|
+
And a valid configuration file should exist at "/tmp/pp/.pinpress"
|
51
29
|
|
52
|
-
Scenario: Reinitialization (
|
53
|
-
Given
|
54
|
-
"""
|
55
|
-
---
|
56
|
-
pinpress:
|
57
|
-
config_location: "/tmp/pp/.pinpress"
|
58
|
-
default_pin_template: pinpress_default
|
59
|
-
default_tag_template: pinpress_default
|
60
|
-
log_level: WARN
|
61
|
-
version: 1.1.1
|
62
|
-
api_token: bachya:12345
|
63
|
-
"""
|
30
|
+
Scenario: Reinitialization (accept)
|
31
|
+
Given an existing current configuration file located at "/tmp/pp/.pinpress"
|
64
32
|
When I run `pinpress init -s` interactively
|
65
33
|
And I type ""
|
66
34
|
And I type "bachya:12345"
|
67
35
|
Then the exit status should be 0
|
68
|
-
And
|
69
|
-
|
36
|
+
And a valid configuration file should exist at "/tmp/pp/.pinpress"
|
37
|
+
|
38
|
+
Scenario: Update out-of-date configuration file
|
39
|
+
Given an existing old configuration file located at "/tmp/pp/.pinpress"
|
40
|
+
When I run `pinpress init` interactively
|
41
|
+
And I type ""
|
42
|
+
And I type ""
|
43
|
+
And I type "bachya:12345"
|
44
|
+
Then the exit status should be 0
|
45
|
+
And a valid configuration file should exist at "/tmp/pp/.pinpress"
|
@@ -4,47 +4,19 @@ Feature: Templates
|
|
4
4
|
templates and choose one.
|
5
5
|
|
6
6
|
Scenario: List Templates (implicit)
|
7
|
-
Given
|
8
|
-
"""
|
9
|
-
---
|
10
|
-
pinpress:
|
11
|
-
config_location: "/tmp/pp/.pinpress"
|
12
|
-
default_pin_template: pinpress_default
|
13
|
-
default_tag_template: pinpress_default
|
14
|
-
log_level: WARN
|
15
|
-
version: 1.1.1
|
16
|
-
api_token: bachya:12345
|
17
|
-
pin_templates:
|
18
|
-
- name: pinpress_default
|
19
|
-
tag_templates:
|
20
|
-
- name: pinpress_default
|
21
|
-
"""
|
7
|
+
Given an existing current configuration file located at "/tmp/pp/.pinpress"
|
22
8
|
When I run `pinpress templates` interactively
|
23
9
|
Then the exit status should be 0
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
10
|
+
And the output should contain:
|
11
|
+
"""
|
12
|
+
---> AVAILABLE PIN TEMPLATES:
|
13
|
+
# 1. pinpress_default
|
14
|
+
---> AVAILABLE TAG TEMPLATES:
|
15
|
+
# 1. pinpress_default
|
16
|
+
"""
|
31
17
|
|
32
18
|
Scenario: List Templates (explicit)
|
33
|
-
Given
|
34
|
-
"""
|
35
|
-
---
|
36
|
-
pinpress:
|
37
|
-
config_location: "/tmp/pp/.pinpress"
|
38
|
-
default_pin_template: pinpress_default
|
39
|
-
default_tag_template: pinpress_default
|
40
|
-
log_level: WARN
|
41
|
-
version: 1.1.1
|
42
|
-
api_token: bachya:12345
|
43
|
-
pin_templates:
|
44
|
-
- name: pinpress_default
|
45
|
-
tag_templates:
|
46
|
-
- name: pinpress_default
|
47
|
-
"""
|
19
|
+
Given an existing current configuration file located at "/tmp/pp/.pinpress"
|
48
20
|
When I run `pinpress templates list` interactively
|
49
21
|
Then the exit status should be 0
|
50
22
|
And the output should contain:
|
@@ -1,12 +1,37 @@
|
|
1
|
+
def create_config_file(version)
|
2
|
+
config = YAML.load_file(File.join(LIB_DIR, '..', 'support/sample_config.yaml'))
|
3
|
+
config['pinpress'].merge!('version' => version)
|
4
|
+
File.open('/tmp/pp/.pinpress', 'w') { |f| f.write(config.to_yaml) }
|
5
|
+
end
|
6
|
+
|
7
|
+
Given(/^no file located at "(.*?)"$/) do |filepath|
|
8
|
+
step %(the file "#{ filepath }" should not exist)
|
9
|
+
end
|
10
|
+
|
11
|
+
Given(/^an existing current configuration file located at "(.*?)"$/) do |filepath|
|
12
|
+
create_config_file(PinPress::VERSION)
|
13
|
+
end
|
14
|
+
|
15
|
+
Given(/^an existing old configuration file located at "(.*?)"$/) do |filepath|
|
16
|
+
create_config_file('0.0.1')
|
17
|
+
end
|
18
|
+
|
1
19
|
When /^I get help for "([^"]*)"$/ do |app_name|
|
2
20
|
@app_name = app_name
|
3
21
|
step %(I run `#{app_name} help`)
|
4
22
|
end
|
5
23
|
|
6
|
-
|
7
|
-
|
24
|
+
Then(/^the following files should not be empty:$/) do |table|
|
25
|
+
table.cell_matrix.flatten.each do |file|
|
26
|
+
expect(File.file?(file.value)).to eq(true)
|
27
|
+
expect(File.read(file.value)).not_to be_empty
|
28
|
+
end
|
8
29
|
end
|
9
30
|
|
10
|
-
|
11
|
-
File.
|
12
|
-
|
31
|
+
Then(/^a valid configuration file should exist at "(.*?)"$/) do |filepath|
|
32
|
+
expect(File.file?(filepath)).to eq(true)
|
33
|
+
stub_data = YAML.load_file(File.join(LIB_DIR, '..', 'support/sample_config.yaml'))
|
34
|
+
config_data = YAML.load_file(filepath)
|
35
|
+
config_data['pinpress'].delete('version')
|
36
|
+
expect(config_data).to eq(stub_data)
|
37
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
|
-
require 'simplecov'
|
2
1
|
require 'aruba/cucumber'
|
3
|
-
|
2
|
+
require_relative '../../lib/pinpress/constants'
|
4
3
|
|
5
4
|
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
6
5
|
LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
|
7
6
|
|
8
7
|
Before do
|
9
|
-
# Using "announce" causes massive warnings on 1.9.2
|
10
8
|
@puts = true
|
11
9
|
@original_rubylib = ENV['RUBYLIB']
|
12
10
|
ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
|
data/lib/pinpress.rb
CHANGED
@@ -116,10 +116,10 @@ module PinPress
|
|
116
116
|
output += PinPress.generate_items(template_type, template, pins, opts)
|
117
117
|
output += template.closer if template.closer
|
118
118
|
end
|
119
|
+
|
119
120
|
configuration.save
|
120
121
|
return output
|
121
122
|
rescue StandardError => e
|
122
|
-
p e.to_s
|
123
123
|
messenger.debug(e.to_s)
|
124
124
|
raise "Pinboard API failed; are you sure you've run " \
|
125
125
|
" `pinpress init` (and that your API key is correct)?"
|
@@ -173,7 +173,7 @@ module PinPress
|
|
173
173
|
default_pin_template = {
|
174
174
|
name: 'pinpress_default',
|
175
175
|
opener: '<ul>',
|
176
|
-
item: '<li><b><a title="<%= description %>" href="<%= href %>" target="_blank"><%= description %></a>.</b
|
176
|
+
item: '<li><b><a title="<%= description %>" href="<%= href %>" target="_blank"><%= description %></a>.</b> <%= extended %></li>',
|
177
177
|
closer: '</ul>'
|
178
178
|
}
|
179
179
|
|
@@ -190,9 +190,8 @@ module PinPress
|
|
190
190
|
pm.ask
|
191
191
|
configuration.ingest_prefs(pm)
|
192
192
|
|
193
|
-
messenger.debug {
|
194
|
-
|
195
|
-
}
|
193
|
+
messenger.debug("Configuration values after pref collection: #{ configuration.data }")
|
194
|
+
|
196
195
|
configuration.save
|
197
196
|
@initialized = true
|
198
197
|
end
|
data/lib/pinpress/constants.rb
CHANGED
@@ -20,7 +20,7 @@ module PinPress
|
|
20
20
|
File.dirname(__FILE__),
|
21
21
|
'..',
|
22
22
|
'..',
|
23
|
-
'
|
23
|
+
'support/preference_prompts.yaml'
|
24
24
|
)
|
25
25
|
}
|
26
26
|
|
@@ -28,5 +28,5 @@ module PinPress
|
|
28
28
|
SUMMARY = 'A simple CLI to create HTML templates of Pinboard data.'
|
29
29
|
|
30
30
|
# The Gem's version
|
31
|
-
VERSION = '1.2.
|
31
|
+
VERSION = '1.2.3'
|
32
32
|
end
|
data/pinpress.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.email = ["bachya1208@googlemail.com"]
|
7
7
|
spec.summary = PinPress::SUMMARY
|
8
8
|
spec.description = PinPress::DESCRIPTION
|
9
|
-
spec.homepage = '
|
9
|
+
spec.homepage = 'https://github.com/bachya/pinpress'
|
10
10
|
spec.license = 'MIT'
|
11
11
|
|
12
12
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -17,11 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.add_development_dependency('aruba', '0.5.4')
|
18
18
|
spec.add_development_dependency('rake', '10.1.1')
|
19
19
|
spec.add_development_dependency('rdoc', '4.1.1')
|
20
|
-
spec.add_development_dependency('rspec', '2.14.1')
|
21
20
|
spec.add_development_dependency('yard', '0.8.7.4')
|
22
21
|
spec.add_runtime_dependency('chronic', '0.10.2')
|
23
|
-
spec.add_runtime_dependency('cliutils', '~> 2
|
22
|
+
spec.add_runtime_dependency('cliutils', '~> 2')
|
24
23
|
spec.add_runtime_dependency('gli', '2.9.0')
|
25
24
|
spec.add_runtime_dependency('pinboard', '0.1.1')
|
26
25
|
end
|
27
|
-
|
File without changes
|
@@ -1,17 +1,15 @@
|
|
1
1
|
---
|
2
2
|
pinpress:
|
3
|
-
config_location: "/tmp/
|
3
|
+
config_location: "/tmp/pp/.pinpress"
|
4
4
|
default_pin_template: pinpress_default
|
5
5
|
default_tag_template: pinpress_default
|
6
6
|
log_level: WARN
|
7
|
-
version: 1.1.1
|
8
7
|
api_token: bachya:12345
|
9
8
|
pin_templates:
|
10
9
|
- name: pinpress_default
|
11
10
|
opener: "<ul>"
|
12
|
-
item:
|
13
|
-
description %></a>.</b> <%= extended %></li>"
|
11
|
+
item: <li><b><a title="<%= description %>" href="<%= href %>" target="_blank"><%= description %></a>.</b> <%= extended %></li>
|
14
12
|
closer: "</ul>"
|
15
13
|
tag_templates:
|
16
14
|
- name: pinpress_default
|
17
|
-
item: "<%= tag
|
15
|
+
item: "<%= tag %> (<%= count %>),"
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pinpress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Bach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aruba
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 4.1.1
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.14.1
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 2.14.1
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: yard
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +86,14 @@ dependencies:
|
|
100
86
|
requirements:
|
101
87
|
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2
|
89
|
+
version: '2'
|
104
90
|
type: :runtime
|
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: '2
|
96
|
+
version: '2'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: gli
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -147,6 +133,7 @@ extensions: []
|
|
147
133
|
extra_rdoc_files: []
|
148
134
|
files:
|
149
135
|
- ".gitignore"
|
136
|
+
- ".travis.yml"
|
150
137
|
- Gemfile
|
151
138
|
- HISTORY.md
|
152
139
|
- LICENSE
|
@@ -156,7 +143,6 @@ files:
|
|
156
143
|
- features/1.ui.feature
|
157
144
|
- features/2.initialization.feature
|
158
145
|
- features/3.templates.feature
|
159
|
-
- features/4.pins.feature
|
160
146
|
- features/step_definitions/pinpress_steps.rb
|
161
147
|
- features/support/env.rb
|
162
148
|
- lib/pinpress.rb
|
@@ -165,14 +151,13 @@ files:
|
|
165
151
|
- lib/pinpress/templates/tag_template.rb
|
166
152
|
- lib/pinpress/templates/template.rb
|
167
153
|
- pinpress.gemspec
|
168
|
-
-
|
169
|
-
-
|
154
|
+
- support/preference_prompts.yaml
|
155
|
+
- support/sample_config.yaml
|
170
156
|
- test/pin_template_test.rb
|
171
157
|
- test/pinpress_template_test.rb
|
172
158
|
- test/tag_template_test.rb
|
173
|
-
- test/test_files/configuration.yaml
|
174
159
|
- test/test_helper.rb
|
175
|
-
homepage:
|
160
|
+
homepage: https://github.com/bachya/pinpress
|
176
161
|
licenses:
|
177
162
|
- MIT
|
178
163
|
metadata: {}
|
@@ -200,12 +185,10 @@ test_files:
|
|
200
185
|
- features/1.ui.feature
|
201
186
|
- features/2.initialization.feature
|
202
187
|
- features/3.templates.feature
|
203
|
-
- features/4.pins.feature
|
204
188
|
- features/step_definitions/pinpress_steps.rb
|
205
189
|
- features/support/env.rb
|
206
190
|
- test/pin_template_test.rb
|
207
191
|
- test/pinpress_template_test.rb
|
208
192
|
- test/tag_template_test.rb
|
209
|
-
- test/test_files/configuration.yaml
|
210
193
|
- test/test_helper.rb
|
211
194
|
has_rdoc:
|
data/features/4.pins.feature
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
@active
|
2
|
-
Feature: Templates
|
3
|
-
As a user, I should be able get pins from Pinboard
|
4
|
-
and have them inherit certain templates.
|
5
|
-
|
6
|
-
Scenario: Invalid API Key
|
7
|
-
Given a file located at "/tmp/pp/.pinpress" with the contents:
|
8
|
-
"""
|
9
|
-
---
|
10
|
-
pinpress:
|
11
|
-
config_location: "/tmp/pp/.pinpress"
|
12
|
-
default_pin_template: pinpress_default
|
13
|
-
default_tag_template: pinpress_default
|
14
|
-
log_level: WARN
|
15
|
-
version: 1.1.1
|
16
|
-
api_token: bachya:12345
|
17
|
-
"""
|
18
|
-
When I run `pinpress pins` interactively
|
19
|
-
Then the exit status should be 1
|
data/res/sample_config.yaml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
pinpress:
|
3
|
-
config_location: "/Users/abach/.pinpress"
|
4
|
-
default_template: pinpress_default
|
5
|
-
log_level: WARN
|
6
|
-
version: 1.0.1
|
7
|
-
api_token: bachya:b819312cf9ccee799b87
|
8
|
-
templates:
|
9
|
-
- name: pinpress_default
|
10
|
-
opener: "<ul>"
|
11
|
-
item: "<li><b><a title=\"<%= description %>\" href=\"<%= href %>\" target=\"_blank\"><%=
|
12
|
-
description %></a>.</b> <%= extended %></li>"
|
13
|
-
closer: "</ul>"
|
14
|
-
- name: secondary
|
15
|
-
opener: "<ul>"
|
16
|
-
item: "<li>TEST</li>"
|
17
|
-
closer: "</ul>"
|